diff --git a/sharedlib/CMakeLists.txt b/sharedlib/CMakeLists.txt index e4bf35d0b..2be5ab33d 100644 --- a/sharedlib/CMakeLists.txt +++ b/sharedlib/CMakeLists.txt @@ -89,17 +89,24 @@ endif() set(CDJPEG_COMPILE_FLAGS "-DBMP_SUPPORTED -DGIF_SUPPORTED -DPPM_SUPPORTED -DTARGA_SUPPORTED ${USE_SETMODE}") +set(CJPEG_PNG_SOURCES "") +if(PNG_SUPPORTED) + set(CDJPEG_COMPILE_FLAGS "${CDJPEG_COMPILE_FLAGS} -DPNG_SUPPORTED") + set(CJPEG_PNG_SOURCES ../rdpng.c) +endif() + # Compile a separate version of these source files with 12-bit and 16-bit data # precision. -add_library(cjpeg12 OBJECT ../rdgif.c ../rdppm.c) +add_library(cjpeg12 OBJECT ../rdgif.c ../rdppm.c ${CJPEG_PNG_SOURCES}) set_property(TARGET cjpeg12 PROPERTY COMPILE_FLAGS "-DBITS_IN_JSAMPLE=12 -DGIF_SUPPORTED -DPPM_SUPPORTED") -add_library(cjpeg16 OBJECT ../rdgif.c ../rdppm.c) +add_library(cjpeg16 OBJECT ../rdgif.c ../rdppm.c ${CJPEG_PNG_SOURCES}) set_property(TARGET cjpeg16 PROPERTY COMPILE_FLAGS "-DBITS_IN_JSAMPLE=16 -DGIF_SUPPORTED -DPPM_SUPPORTED") add_executable(cjpeg ../cjpeg.c ../cdjpeg.c ../rdbmp.c ../rdgif.c ../rdppm.c ../rdjpeg.c - ../rdswitch.c ../rdtarga.c $ + ../rdswitch.c ../rdtarga.c ${CJPEG_PNG_SOURCES} + $ $) set_property(TARGET cjpeg PROPERTY COMPILE_FLAGS ${CDJPEG_COMPILE_FLAGS}) target_link_libraries(cjpeg jpeg) @@ -114,20 +121,6 @@ set_property(TARGET djpeg16 PROPERTY COMPILE_FLAGS "-DBITS_IN_JSAMPLE=16 -DPPM_SUPPORTED") if(PNG_SUPPORTED) - report_option(PNG_SUPPORTED "PNG reading support") - set(COMPILE_FLAGS "${COMPILE_FLAGS} -DPNG_SUPPORTED") - set(CJPEG_BMP_SOURCES ${CJPEG_BMP_SOURCES} ../rdpng.c) -endif() - -if(PNG_SUPPORTED) - # to avoid finding static library from CMake cache - unset(PNG_LIBRARY CACHE) - unset(PNG_LIBRARY_RELEASE CACHE) - unset(PNG_LIBRARY_DEBUG CACHE) - unset(ZLIB_LIBRARY CACHE) - unset(ZLIB_LIBRARY_RELEASE CACHE) - unset(ZLIB_LIBRARY_DEBUG CACHE) - find_package(PNG 1.6 REQUIRED) find_package(ZLIB REQUIRED) target_include_directories(cjpeg PUBLIC ${PNG_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR})