X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=7d0abd0145108fe104678de2c4627a79279c3d4a;hb=76557d2eb3dedc1f1d362e61fb51d7ba65137450;hp=49da7c460cc76aeee3702eac2e4c464058dc0dce;hpb=92b1e038c16be50d9b67d2bb72bb473ab8d2d753;p=openjpeg.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 49da7c46..7d0abd01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -180,16 +180,29 @@ if(CMAKE_COMPILER_IS_GNUCC) endif() #----------------------------------------------------------------------------- -# opj_config.h generation +# opj_config.h generation (1/2) + +# Check if some include files are provided by the system +include(EnsureFileInclude) +# These files are mandatory +ensure_file_include("string.h" HAVE_STRING_H YES) +ensure_file_include("memory.h" HAVE_MEMORY_H YES) +ensure_file_include("stdlib.h" HAVE_STDLIB_H YES) +ensure_file_include("stdio.h" HAVE_STDIO_H YES) +ensure_file_include("math.h" HAVE_MATH_H YES) +ensure_file_include("float.h" HAVE_FLOAT_H YES) +ensure_file_include("time.h" HAVE_TIME_H YES) +ensure_file_include("stdarg.h" HAVE_STDARG_H YES) +ensure_file_include("ctype.h" HAVE_CTYPE_H YES) +ensure_file_include("assert.h" HAVE_ASSERT_H YES) + +# For the following files, we provide an alternative, they are not mandatory +ensure_file_include("stdint.h" OPJ_HAVE_STDINT_H NO) +ensure_file_include("inttypes.h" OPJ_HAVE_INTTYPES_H NO) + +# why check this one ? for openjpip ? include (${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake) -CHECK_INCLUDE_FILE("stdint.h" OPJ_HAVE_STDINT_H) -CHECK_INCLUDE_FILE("inttypes.h" OPJ_HAVE_INTTYPES_H) - CHECK_INCLUDE_FILE("strings.h" HAVE_STRINGS_H) -CHECK_INCLUDE_FILE("memory.h" HAVE_MEMORY_H) -CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_H) -CHECK_INCLUDE_FILE("stdio.h" HAVE_STDIO_H) -CHECK_INCLUDE_FILE("string.h" HAVE_STRING_H) CHECK_INCLUDE_FILE("sys/stat.h" HAVE_SYS_STAT_H) CHECK_INCLUDE_FILE("sys/types.h" HAVE_SYS_TYPES_H) CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H) @@ -198,15 +211,17 @@ CHECK_INCLUDE_FILE("unistd.h" HAVE_UNISTD_H) include(TestLargeFiles) OPJ_TEST_LARGE_FILES(OPJ_HAVE_LARGEFILES) -configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp2/opj_config.h.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/src/lib/openjp2/opj_config.h - @ONLY - ) - #----------------------------------------------------------------------------- # Build Library -add_subdirectory(src) +if(BUILD_JPIP_SERVER) + find_package(CURL REQUIRED) + find_package(FCGI REQUIRED) + find_package(Threads REQUIRED) + if(NOT CMAKE_USE_PTHREADS_INIT) + message(FATAL_ERROR "Only pthread are supported") + endif() +endif() +add_subdirectory(src/lib) #----------------------------------------------------------------------------- # Build Applications @@ -233,6 +248,20 @@ if(BUILD_CODEC OR BUILD_MJ2) endif () add_subdirectory(wrapping) +#----------------------------------------------------------------------------- +# opj_config.h generation (2/2) +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp2/opj_config.h.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/src/lib/openjp2/opj_config.h + @ONLY + ) + + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp2/opj_config_private.h.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/src/lib/openjp2/opj_config_private.h + @ONLY + ) + #----------------------------------------------------------------------------- # Build DOCUMENTATION (not in ALL target and only if Doxygen is found) option(BUILD_DOC "Build the HTML documentation (with doxygen if available)." OFF) @@ -252,9 +281,8 @@ if(BUILD_TESTING) # They could be found via svn on the OpenJPEG google code project # svn checkout http://openjpeg.googlecode.com/svn/data (about 70 Mo) find_path(OPJ_DATA_ROOT README-OPJ-Data - PATHS - $ENV{OPJ_DATA_ROOT} - ${CMAKE_SOURCE_DIR}/../data + PATHS $ENV{OPJ_DATA_ROOT} ${CMAKE_SOURCE_DIR}/../data + NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH ) # Add repository where to find tests @@ -293,5 +321,30 @@ if(UNIX) ${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc @ONLY) install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjp2.pc DESTINATION ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig ) +# + if(BUILD_JPWL) + # install in lib and not share (see multi-arch note above) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjpwl/libopenjpwl.pc.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/libopenjpwl.pc @ONLY) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpwl.pc DESTINATION + ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig ) + endif() +# + if(BUILD_JPIP) + # install in lib and not share (see multi-arch note above) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjpip/libopenjpip.pc.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/libopenjpip.pc @ONLY) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjpip.pc DESTINATION + ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig ) + endif() +# + if(BUILD_JP3D) + # install in lib and not share (see multi-arch note above) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/lib/openjp3d/libopenjp3d.pc.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/libopenjp3d.pc @ONLY) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libopenjp3d.pc DESTINATION + ${OPENJPEG_INSTALL_LIB_DIR}/pkgconfig ) + endif() endif() -#----------------------------------------------------------------------------- \ No newline at end of file + +#-----------------------------------------------------------------------------