[trunk] WIP: fix some warnings about a static function and j2k_read_unk_v2
[openjpeg.git] / CMakeLists.txt
index 032b8ab44a18b2689c9e33d3d192d7bc57e8a04a..bc048b2e2bfb63d0d3d21c27773c6f7c0ed088cb 100644 (file)
@@ -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)
@@ -108,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(
@@ -203,14 +201,6 @@ IF(NOT HAVE_UNISTD_H_FOUND STREQUAL "HAVE_UNISTD_H_FOUND-NOTFOUND")
   SET(HAS_UNISTD_H 1)
 ENDIF()
 
-#-----------------------------------------------------------------------------
-# CDash+CMake : to be updated
-OPTION(BUILD_TESTING "Build the tests." OFF)
-IF(BUILD_TESTING)
-  ENABLE_TESTING()
-  INCLUDE(CTest)
-ENDIF(BUILD_TESTING)
-
 #-----------------------------------------------------------------------------
 # Build Library
 INCLUDE_DIRECTORIES(BEFORE ${OPENJPEG_BINARY_DIR})
@@ -220,12 +210,13 @@ ADD_SUBDIRECTORY(libopenjpeg)
 # Build Applications
 OPTION(BUILD_CODEC "Build the CODEC executables" ON)
 OPTION(BUILD_MJ2 "Build the MJ2 executables." OFF)
+OPTION(BUILD_JPIP "Build the JPIP library and executables." OFF)
 
-IF(BUILD_CODEC OR BUILD_MJ2)
+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)
+ENDIF (BUILD_CODEC OR BUILD_MJ2 OR BUILD_JPIP)
 
 #-----------------------------------------------------------------------------
 # opj_config.h generation (2/2)
@@ -243,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)
 
 #-----------------------------------------------------------------------------