IF(NOT FSO_BUILD_INCLUDED_LIBS) FIND_PACKAGE(PNG QUIET) ENDIF(NOT FSO_BUILD_INCLUDED_LIBS) IF (FSO_BUILD_INCLUDED_LIBS OR NOT PNG_FOUND) MESSAGE(STATUS "Building libpng from source") SET(PNG_SOURCES png.c pngerror.c pngget.c pngmem.c pngpread.c pngread.c pngrio.c pngrtran.c pngrutil.c pngset.c pngtrans.c pngwio.c pngwrite.c pngwtran.c pngwutil.c png.h pngconf.h pngdebug.h pnginfo.h pnglibconf.h pngpriv.h pngstruct.h) ADD_LIBRARY(png ${PNG_SOURCES}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) set_target_properties(png PROPERTIES DEFINE_SYMBOL PNG_BUILD_DLL # This will only be defined if we are building a shared library ) target_include_directories(png SYSTEM PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(png PRIVATE "_CRT_SECURE_NO_WARNINGS;$<$:PNG_DEBUG=1>") target_compile_definitions(png PRIVATE PNG_ARM_NEON_IMPLEMENTATION=0) target_compile_definitions(png PRIVATE PNG_ARM_NEON_OPT=0) IF(BUILD_SHARED_LIBS) target_compile_definitions(png INTERFACE PNG_BUILD_DLL) ENDIF(BUILD_SHARED_LIBS) set_target_properties(png PROPERTIES FOLDER "3rdparty" ) # Disable warnings if building from source suppress_warnings(png) target_link_libraries(png PUBLIC ${ZLIB_LIBS}) target_link_libraries(png PUBLIC compiler) SET(PNG_LIBS png CACHE INTERNAL "PNG library") IF(FSO_COPY_EXE AND BUILD_SHARED_LIBS) INSTALL( TARGETS png RUNTIME DESTINATION ${BINARY_DESTINATION} LIBRARY DESTINATION ${BINARY_DESTINATION} ) ENDIF(FSO_COPY_EXE AND BUILD_SHARED_LIBS) ELSE(FSO_BUILD_INCLUDED_LIBS OR NOT PNG_FOUND) INCLUDE(util) ADD_IMPORTED_LIB(png "${PNG_INCLUDE_DIRS}" "${PNG_LIBRARIES}") set_target_properties(png PROPERTIES INTERFACE_COMPILE_DEFINITIONS "${PNG_DEFINITIONS}" ) SET(PNG_LIBS png CACHE INTERNAL "png library" FORCE) ENDIF(FSO_BUILD_INCLUDED_LIBS OR NOT PNG_FOUND)