• CMakeLists.txt
  • cmake_minimum_required(VERSION 3.25)
    
    set(PNGLIB_MAJOR 1)
    set(PNGLIB_MINOR 6)
    set(PNGLIB_REVISION 47)
    set(PNGLIB_SUBREVISION 0)
    #set(PNGLIB_SUBREVISION "git")
    set(PNGLIB_VERSION ${PNGLIB_MAJOR}.${PNGLIB_MINOR}.${PNGLIB_REVISION})
    set(PNGLIB_ABI_VERSION ${PNGLIB_MAJOR}${PNGLIB_MINOR})
    set(PNGLIB_SHARED_VERSION ${PNGLIB_ABI_VERSION}.${PNGLIB_REVISION}.${PNGLIB_SUBREVISION})
    
    include_directories(include)
    include_directories(src)
    
    set(Local
        src/png.c
        src/pngerror.c
        src/pngget.c
        src/pngmem.c
        src/pngpread.c
        src/pngread.c
        src/pngrio.c
        src/pngrtran.c
        src/pngrutil.c
        src/pngset.c
        src/pngtrans.c
        src/pngwio.c
        src/pngwrite.c
        src/pngwtran.c
        src/pngwutil.c
    
        src/pngpriv.h
        src/pngdebug.h
        src/pnginfo.h
        src/pngstruct.h
    
        src/png.h
        src/pngconf.h
    )
    
    add_library(png STATIC
        ${Local}
    )
    
    IF(WIN32)
        set_target_properties(png PROPERTIES
            DEBUG_OUTPUT_NAME png_d
            RELWITHDEBINFO_OUTPUT_NAME  png_rd
            MINSIZEREL_OUTPUT_NAME  png_min
        )
    ENDIF()
    
    if(MSVC OR (WIN32 AND (CMAKE_C_COMPILER_ID MATCHES "Clang")))
      add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
      add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
    endif()
    
    install(TARGETS png
        EXPORT GorgonTargets
        ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
        PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}/Gorgon"
    )
    
    export(TARGETS png APPEND FILE "${PROJECT_PACKAGE_DIR}/GorgonTargets.cmake")