X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=CMakeLists.txt;h=bc048b2e2bfb63d0d3d21c27773c6f7c0ed088cb;hb=a600d8f4e2c21ea0532d4af3dc6374b60b93c583;hp=d88594144a7c112d6909ab65c17ed27c8ad34682;hpb=b09051fd79da1101185a73198aac2d65cf2b2450;p=openjpeg.git diff --git a/CMakeLists.txt b/CMakeLists.txt index d8859414..bc048b2e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +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) @@ -102,12 +109,9 @@ ENDIF(NOT OPENJPEG_INSTALL_PACKAGE_DIR) #----------------------------------------------------------------------------- # Test for some required system information. +# For example this macro test the endianness (CMAKE_WORDS_BIGENDIAN) INCLUDE (${CMAKE_ROOT}/Modules/CMakeBackwardCompatibilityC.cmake) -#----------------------------------------------------------------------------- -# Test for getopt being available in this system -INCLUDE (${OPENJPEG_SOURCE_DIR}/CMake/CheckHaveGetopt.cmake ) - #----------------------------------------------------------------------------- # Setup file for setting custom ctest vars CONFIGURE_FILE( @@ -150,7 +154,7 @@ IF(CMAKE_COMPILER_IS_GNUCC) ENDIF(CMAKE_COMPILER_IS_GNUCC) #----------------------------------------------------------------------------- -# opj_config.h generation +# 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) @@ -196,18 +200,6 @@ 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() -CONFIGURE_FILE("${OPENJPEG_SOURCE_DIR}/opj_configh.cmake.in" - "${OPENJPEG_BINARY_DIR}/opj_config.h" - @ONLY - ) - -#----------------------------------------------------------------------------- -# CDash+CMake : to be updated -OPTION(BUILD_TESTING "Build the tests." OFF) -IF(BUILD_TESTING) - ENABLE_TESTING() - INCLUDE(CTest) -ENDIF(BUILD_TESTING) #----------------------------------------------------------------------------- # Build Library @@ -218,7 +210,20 @@ ADD_SUBDIRECTORY(libopenjpeg) # Build Applications OPTION(BUILD_CODEC "Build the CODEC executables" ON) OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF) -ADD_SUBDIRECTORY(applications) +OPTION(BUILD_JPIP "Build the JPIP library and executables." OFF) + +IF(BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP) + OPTION(BUILD_THIRDPARTY "Build the thirdparty executables if it is needed" OFF) + ADD_SUBDIRECTORY(thirdparty) + ADD_SUBDIRECTORY(applications) +ENDIF (BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP) + +#----------------------------------------------------------------------------- +# opj_config.h generation (2/2) +CONFIGURE_FILE("${OPENJPEG_SOURCE_DIR}/opj_configh.cmake.in" + "${OPENJPEG_BINARY_DIR}/opj_config.h" + @ONLY + ) #----------------------------------------------------------------------------- # Build JPWL-flavoured library and executables @@ -229,17 +234,29 @@ OPTION(BUILD_JPWL "Build the JPWL library and executables" OFF) ADD_SUBDIRECTORY(doc) #----------------------------------------------------------------------------- -# Tests data +# Buld Testing +OPTION(BUILD_TESTING "Build the tests." OFF) IF(BUILD_TESTING) -# Adding test with dataset from: -# http://www.openjpeg.org/conformance/j2kp4files_v1_5.zip -# -> wget http://www.openjpeg.org/conformance/j2kp4files_v1_5.zip -# http://www.jpeg.org/jpeg2000guide/testimages/testimages.html -# Adding JPEG2000_CONFORMANCE_DATA_ROOT -FIND_PATH(JPEG2000_CONFORMANCE_DATA_ROOT testimages.html - ${OPENJPEG_SOURCE_DIR}/../jpeg2000testimages - $ENV{JPEG2000_CONFORMANCE_DATA_ROOT} -) + IF(BUILD_CODEC) + ENABLE_TESTING() + INCLUDE(CTest) + + # 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) + + # For encoding tests we need the path to the ref decoder exe/lib (kakadu) + SET (REF_DECODER_BIN_PATH "NOTFOUND" CACHE PATH "Single directory where find the reference decoder binaries to enable encoding test suite.") + MARK_AS_ADVANCED(REF_DECODER_BIN_PATH) + + # 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) ENDIF(BUILD_TESTING) #-----------------------------------------------------------------------------