diff --git a/CMakeLists.txt b/CMakeLists.txt index efd101a..9c1c69f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -222,6 +222,12 @@ option(ENABLE_SHARED "Build shared libraries" TRUE) boolean_number(ENABLE_SHARED) option(ENABLE_STATIC "Build static libraries" TRUE) boolean_number(ENABLE_STATIC) +option(ENABLE_EXECUTABLES "Build executables" TRUE) +boolean_number(ENABLE_EXECUTABLES) +option(INSTALL_DOCS "Install doc files" TRUE) +boolean_number(INSTALL_DOCS) +option(INSTALL_HEADERS "Install header files" TRUE) +boolean_number(INSTALL_HEADERS) option(REQUIRE_SIMD "Generate a fatal error if SIMD extensions are not available for this platform (default is to fall back to a non-SIMD build)" FALSE) boolean_number(REQUIRE_SIMD) option(WITH_ARITH_DEC "Include arithmetic decoding support when emulating the libjpeg v6b API/ABI" TRUE) @@ -690,6 +696,7 @@ if(WITH_TURBOJPEG) LINK_FLAGS "${TJMAPFLAG}${TJMAPFILE}") endif() + if(ENABLE_EXECUTABLES) add_executable(tjunittest tjunittest.c tjutil.c md5/md5.c md5/md5hl.c) target_link_libraries(tjunittest turbojpeg) @@ -701,6 +708,7 @@ if(WITH_TURBOJPEG) add_executable(tjexample tjexample.c) target_link_libraries(tjexample turbojpeg) + endif() endif() if(ENABLE_STATIC) @@ -721,6 +729,7 @@ if(WITH_TURBOJPEG) set_target_properties(turbojpeg-static PROPERTIES OUTPUT_NAME turbojpeg) endif() + if(ENABLE_EXECUTABLES) add_executable(tjunittest-static tjunittest.c tjutil.c md5/md5.c md5/md5hl.c) target_link_libraries(tjunittest-static turbojpeg-static) @@ -730,6 +739,7 @@ if(WITH_TURBOJPEG) if(UNIX) target_link_libraries(tjbench-static m) endif() + endif() endif() endif() @@ -748,13 +758,15 @@ if(ENABLE_STATIC) add_library(cjpeg16-static OBJECT rdgif.c rdppm.c) set_property(TARGET cjpeg16-static PROPERTY COMPILE_FLAGS "-DBITS_IN_JSAMPLE=16 -DGIF_SUPPORTED -DPPM_SUPPORTED") + if(ENABLE_EXECUTABLES) add_executable(cjpeg-static cjpeg.c cdjpeg.c rdbmp.c rdgif.c rdppm.c rdswitch.c rdtarga.c $ $) set_property(TARGET cjpeg-static PROPERTY COMPILE_FLAGS ${CDJPEG_COMPILE_FLAGS}) target_link_libraries(cjpeg-static jpeg-static) - + endif() + # Compile a separate version of these source files with 12-bit and 16-bit # data precision. add_library(djpeg12-static OBJECT rdcolmap.c wrgif.c wrppm.c) @@ -763,6 +775,7 @@ if(ENABLE_STATIC) add_library(djpeg16-static OBJECT wrppm.c) set_property(TARGET djpeg16-static PROPERTY COMPILE_FLAGS "-DBITS_IN_JSAMPLE=16 -DPPM_SUPPORTED") + if(ENABLE_EXECUTABLES) add_executable(djpeg-static djpeg.c cdjpeg.c rdcolmap.c rdswitch.c wrbmp.c wrgif.c wrppm.c wrtarga.c $ $) @@ -776,11 +789,14 @@ if(ENABLE_STATIC) add_executable(example-static example.c) target_link_libraries(example-static jpeg-static) + endif() endif() +if(ENABLE_EXECUTABLES) add_executable(rdjpgcom rdjpgcom.c) add_executable(wrjpgcom wrjpgcom.c) +endif() ############################################################################### @@ -1687,8 +1703,10 @@ if(WITH_TURBOJPEG) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + if(ENABLE_EXECUTABLES) install(TARGETS tjbench RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND CMAKE_C_LINKER_SUPPORTS_PDB) install(FILES "$" @@ -1699,7 +1717,7 @@ if(WITH_TURBOJPEG) install(TARGETS turbojpeg-static EXPORT ${CMAKE_PROJECT_NAME}Targets INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - if(NOT ENABLE_SHARED) + if(NOT ENABLE_SHARED AND ENABLE_EXECUTABLES) if(GENERATOR_IS_MULTI_CONFIG) set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}") else() @@ -1709,15 +1727,17 @@ if(WITH_TURBOJPEG) DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME tjbench${EXE}) endif() endif() + if(INSTALL_HEADERS) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/turbojpeg.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + endif() endif() if(ENABLE_STATIC) install(TARGETS jpeg-static EXPORT ${CMAKE_PROJECT_NAME}Targets INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) - if(NOT ENABLE_SHARED) + if(NOT ENABLE_SHARED AND ENABLE_EXECUTABLES) if(GENERATOR_IS_MULTI_CONFIG) set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}") else() @@ -1732,8 +1752,11 @@ if(ENABLE_STATIC) endif() endif() +if(ENABLE_EXECUTABLES) install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() +if(INSTALL_DOCS) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg ${CMAKE_CURRENT_SOURCE_DIR}/README.md ${CMAKE_CURRENT_SOURCE_DIR}/example.c ${CMAKE_CURRENT_SOURCE_DIR}/tjexample.c @@ -1745,8 +1768,9 @@ if(WITH_JAVA) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJExample.java DESTINATION ${CMAKE_INSTALL_DOCDIR}) endif() +endif() -if(UNIX OR MINGW) +if((UNIX OR MINGW) AND INSTALL_DOCS) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/cjpeg.1 ${CMAKE_CURRENT_SOURCE_DIR}/djpeg.1 ${CMAKE_CURRENT_SOURCE_DIR}/jpegtran.1 ${CMAKE_CURRENT_SOURCE_DIR}/rdjpgcom.1 @@ -1767,11 +1791,12 @@ install(EXPORT ${CMAKE_PROJECT_NAME}Targets NAMESPACE ${CMAKE_PROJECT_NAME}:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}) +if(INSTALL_HEADERS) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h ${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - +endif() include(cmakescripts/BuildPackages.cmake) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmakescripts/cmake_uninstall.cmake.in" diff --git a/sharedlib/CMakeLists.txt b/sharedlib/CMakeLists.txt index 8e94256..8a16497 100644 --- a/sharedlib/CMakeLists.txt +++ b/sharedlib/CMakeLists.txt @@ -76,11 +76,13 @@ set_property(TARGET cjpeg12 PROPERTY COMPILE_FLAGS add_library(cjpeg16 OBJECT ../rdgif.c ../rdppm.c) set_property(TARGET cjpeg16 PROPERTY COMPILE_FLAGS "-DBITS_IN_JSAMPLE=16 -DGIF_SUPPORTED -DPPM_SUPPORTED") +if(ENABLE_EXECUTABLES) add_executable(cjpeg ../cjpeg.c ../cdjpeg.c ../rdbmp.c ../rdgif.c ../rdppm.c ../rdswitch.c ../rdtarga.c $ $) set_property(TARGET cjpeg PROPERTY COMPILE_FLAGS ${CDJPEG_COMPILE_FLAGS}) target_link_libraries(cjpeg jpeg) +endif() # Compile a separate version of these source files with 12-bit and 16-bit data # precision. @@ -111,8 +113,10 @@ install(TARGETS jpeg EXPORT ${CMAKE_PROJECT_NAME}Targets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +if(ENABLE_EXECUTABLES) install(TARGETS cjpeg djpeg jpegtran RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +endif() if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND CMAKE_C_LINKER_SUPPORTS_PDB) install(FILES "$"