X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=09a0a100557d42f5a3f4ce49ea1b07ccaf9cb693;hb=5c363b76eeeea843967103f839d2ef68c8cc2499;hp=513e9cdd1bd4bb091125dfd6baa79fe9db210ba4;hpb=c025f363f55d387cd797f5b8b2a37f97c8d8f50d;p=openjpeg.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 513e9cdd..09a0a100 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ INCLUDE_REGULAR_EXPRESSION("^.*$") #----------------------------------------------------------------------------- # OPENJPEG version number, useful for packaging and doxygen doc: SET(OPENJPEG_VERSION_MAJOR 1) -SET(OPENJPEG_VERSION_MINOR 4) +SET(OPENJPEG_VERSION_MINOR 99) SET(OPENJPEG_VERSION_BUILD 0) SET(OPENJPEG_VERSION "${OPENJPEG_VERSION_MAJOR}.${OPENJPEG_VERSION_MINOR}.${OPENJPEG_VERSION_BUILD}") @@ -39,12 +39,13 @@ SET(OPENJPEG_LIBRARY_PROPERTIES SOVERSION "${OPENJPEG_VERSION_MAJOR}" ) - +# -------------------------------------------------------------------------- # Path to additional CMake modules SET(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake ${CMAKE_MODULE_PATH}) +# -------------------------------------------------------------------------- # On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security # warnings IF(WIN32) @@ -110,9 +111,9 @@ ENDIF(NOT OPENJPEG_INSTALL_PACKAGE_DIR) # Test for some required system information. INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake) -#----------------------------------------------------------------------------- -# Test for getopt being available in this system -INCLUDE (${OPENJPEG_SOURCE_DIR}/CMake/CheckHaveGetopt.cmake ) +# Big endian test: +INCLUDE (${CMAKE_ROOT}/Modules/TestBigEndian.cmake) +TEST_BIG_ENDIAN(OPJ_BIG_ENDIAN) #----------------------------------------------------------------------------- # Setup file for setting custom ctest vars @@ -136,7 +137,7 @@ IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in) SET(MANGLE_PREFIX ${OPENJPEG_LIBRARY_NAME}) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in ${CMAKE_CURRENT_BINARY_DIR}/openjpeg_mangle.h - @ONLY IMMEDIATE) + @ONLY) ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/openjpeg_mangle.h.in) #----------------------------------------------------------------------------- @@ -157,51 +158,19 @@ ENDIF(CMAKE_COMPILER_IS_GNUCC) #----------------------------------------------------------------------------- # opj_config.h generation (1/2) -FIND_FILE(HAVE_STRINGS_H_FOUND strings.h) -IF(NOT HAVE_STRINGS_H_FOUND STREQUAL "HAVE_STRINGS_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_STRINGS_H strings.h) - SET(HAS_STRINGS_H 1) -ENDIF() -FIND_FILE(HAVE_INTTYPES_H_FOUND inttypes.h) -IF(NOT HAVE_INTTYPES_H_FOUND STREQUAL "HAVE_INTTYPES_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_INTTYPES_H inttypes.h) - SET(HAS_INTTYPES_H 1) -ENDIF() -FIND_FILE(HAVE_MEMORY_H_FOUND memory.h) -IF(NOT HAVE_MEMORY_H_FOUND STREQUAL "HAVE_MEMORY_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_MEMORY_H memory.h) - SET(HAS_MEMORY_H 1) -ENDIF() -FIND_FILE(HAVE_STDINT_H_FOUND stdint.h) -IF(NOT HAVE_STDINT_H_FOUND STREQUAL "HAVE_STDINT_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_STDINT_H stdint.h) - SET(HAS_STDINT_H 1) -ENDIF() -FIND_FILE(HAVE_STDLIB_H_FOUND stdlib.h) -IF(NOT HAVE_STDLIB_H_FOUND STREQUAL "HAVE_STDLIB_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_STDLIB_H stdlib.h) - SET(HAS_STDLIB_H 1) -ENDIF() -FIND_FILE(HAVE_STRING_H_FOUND string.h) -IF(NOT HAVE_STRING_H_FOUND STREQUAL "HAVE_STRING_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_STRING_H string.h) - SET(HAS_STRING_H 1) -ENDIF() -FIND_FILE(HAVE_SYS_STAT_H_FOUND sys/stat.h) -IF(NOT HAVE_SYS_STAT_H_FOUND STREQUAL "HAVE_SYS_STAT_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_SYS_STAT_H sys/stat.h) - SET(HAS_SYS_STAT_H 1) -ENDIF() -FIND_FILE(HAVE_SYS_TYPES_H_FOUND sys/types.h) -IF(NOT HAVE_SYS_TYPES_H_FOUND STREQUAL "HAVE_SYS_TYPES_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_SYS_TYPES_H sys/types.h) - SET(HAS_SYS_TYPES_H 1) -ENDIF() -FIND_FILE(HAVE_UNISTD_H_FOUND unistd.h) -IF(NOT HAVE_UNISTD_H_FOUND STREQUAL "HAVE_UNISTD_H_FOUND-NOTFOUND") - FIND_FILE(HAVE_UNISTD_H unistd.h) - SET(HAS_UNISTD_H 1) -ENDIF() +CHECK_INCLUDE_FILE("strings.h" HAVE_STRINGS_H) +CHECK_INCLUDE_FILE("inttypes.h" HAVE_INTTYPES_H) +CHECK_INCLUDE_FILE("memory.h" HAVE_MEMORY_H) +CHECK_INCLUDE_FILE("stdint.h" HAVE_STDINT_H) +CHECK_INCLUDE_FILE("stdlib.h" HAVE_STDLIB_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) + +# Enable Large file support +INCLUDE(TestLargeFiles) +OPJ_TEST_LARGE_FILES(OPJ_HAVE_LARGEFILES) #----------------------------------------------------------------------------- # Build Library @@ -222,7 +191,7 @@ ENDIF (BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP) #----------------------------------------------------------------------------- # opj_config.h generation (2/2) -CONFIGURE_FILE("${OPENJPEG_SOURCE_DIR}/opj_configh.cmake.in" +CONFIGURE_FILE("${OPENJPEG_SOURCE_DIR}/opj_config.h.cmake.in" "${OPENJPEG_BINARY_DIR}/opj_config.h" @ONLY ) @@ -233,7 +202,10 @@ OPTION(BUILD_JPWL "Build the JPWL library and executables" OFF) #----------------------------------------------------------------------------- # Build DOCUMENTATION (not in ALL target and only if Doxygen is found) -ADD_SUBDIRECTORY(doc) +OPTION(BUILD_DOC "Build the HTML documentation (with doxygen if available)." OFF) +IF(BUILD_DOC) + ADD_SUBDIRECTORY(doc) +ENDIF(BUILD_DOC) #----------------------------------------------------------------------------- # Buld Testing @@ -243,18 +215,27 @@ IF(BUILD_TESTING) ENABLE_TESTING() INCLUDE(CTest) - # Add repository where to find tests - ADD_SUBDIRECTORY(tests) - # Search openjpeg data needed for the tests # 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) - - SET (REF_DECODER_BIN_PATH "NOT-FOUND" CACHE PATH "Single directory where find the reference encoder binaries to enable encoding test suite.") - MARK_AS_ADVANCED(REF_DECODER_BIN_PATH) - + FIND_PATH(OPJ_DATA_ROOT README-OPJ-Data + PATHS + $ENV{OPJ_DATA_ROOT} + ${CMAKE_SOURCE_DIR}/../data + ) + + # For encoding tests we need the path to the ref decoder exe/lib (kakadu) + FIND_PROGRAM(REF_DECODER_BIN + NAMES kdu_expand + DOC "Kakadu kdu_expand program used in encoder non-regression testing") + IF(REF_DECODER_BIN) + GET_FILENAME_COMPONENT(REF_DECODER_BIN_PATH ${REF_DECODER_BIN} PATH CACHE) + MARK_AS_ADVANCED(REF_DECODER_BIN_PATH) + ENDIF(REF_DECODER_BIN) + + # Add repository where to find tests + ADD_SUBDIRECTORY(tests) + ELSE(BUILD_CODEC) message(FATAL_ERROR "You need build codec to run the tests") ENDIF(BUILD_CODEC)