diff --git a/CMakeLists.txt b/CMakeLists.txt index 31a798f52a0cb3f885c939cecb3209129ff7306f..4dfd552b8dc38a2628a8dd4bdcd1688a4ecf0088 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,61 +124,6 @@ macro(otb_download_attempt_check _name) endif() endmacro() -#----------------------------------------------------------------------------- -# OTB wrapper for add_test that automatically sets the test's LABELS property -# to the value of its containing module. -# -function(otb_add_test) - set(largeinput_regex "LARGEINPUT{([^;{}\r\n]*)}") - - set(_depends_on_largeinput OFF) - foreach(arg IN LISTS ARGN) - if("x${arg}" MATCHES "${largeinput_regex}") - string(REGEX REPLACE "${largeinput_regex}" "\\1" largeinput_relative_path "${arg}") - set(_fullpath "${OTB_DATA_LARGEINPUT_ROOT}/${largeinput_relative_path}") - list(APPEND _out_arg ${_fullpath}) - set(_depends_on_largeinput ON) - else() - list(APPEND _out_arg ${arg}) - endif() - endforeach() - - if (_depends_on_largeinput AND NOT OTB_DATA_LARGEINPUT_ROOT) - return() - endif() - - add_test(${_out_arg}) - - if("NAME" STREQUAL "${ARGV0}") - set(_iat_testname ${ARGV1}) - else() - set(_iat_testname ${ARGV0}) - endif() - - if(otb-module) - set(_label ${otb-module}) - else() - set(_label ${main_project_name}) - endif() - - set_property(TEST ${_iat_testname} PROPERTY LABELS ${_label}) - -endfunction() - -#----------------------------------------------------------------------------- -# OTB function to ignore a test -# -function(otb_tests_ignore) - set_property(GLOBAL APPEND PROPERTY CTEST_CUSTOM_TESTS_IGNORE ${ARGN}) -endfunction() - -#----------------------------------------------------------------------------- -# OTB function to ignore a test during MemCheck -# -function(otb_memcheck_ignore) - set_property(GLOBAL APPEND PROPERTY CTEST_CUSTOM_MEMCHECK_IGNORE ${ARGN}) -endfunction() - # TODO : handle shared libs on windows option(BUILD_SHARED_LIBS "Build OTB with shared libraries." ON) set(OTB_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) @@ -245,6 +190,32 @@ option(BUILD_EXAMPLES "Build the Examples directory." ON) #---------------------------------------------------------------------------- set(OTB_TEST_OUTPUT_DIR "${OTB_BINARY_DIR}/Testing/Temporary") +#----------------------------------------------------------------------------- +# Configure the default OTB_DATA_ROOT for the location of OTB Data. +find_path(OTB_DATA_ROOT README-OTB-Data PATHS $ENV{OTB_DATA_ROOT} ${OTB_SOURCE_DIR}/../OTB-Data) +mark_as_advanced(OTB_DATA_ROOT) + +option(OTB_DATA_USE_LARGEINPUT "Use Large inputs images test." OFF) +mark_as_advanced(OTB_DATA_USE_LARGEINPUT) +if(OTB_DATA_USE_LARGEINPUT) + find_path(OTB_DATA_LARGEINPUT_ROOT OTBData.readme $ENV{OTB_DATA_LARGEINPUT_ROOT}) + mark_as_advanced(OTB_DATA_LARGEINPUT_ROOT) +endif() + +option(OTB_DATA_USE_SPOTPHRINPUT "Use PHR data provided by SPOT." OFF) +mark_as_advanced(OTB_DATA_USE_SPOTPHRINPUT) +if(OTB_DATA_USE_SPOTPHRINPUT) + find_path(OTB_DATA_SPOTPHRINPUT_ROOT OTB_PHR_Data.readme $ENV{OTB_DATA_SPOTPHRINPUT_ROOT}) + mark_as_advanced(OTB_DATA_SPOTPHRINPUT_ROOT) +endif() + +option(OTB_DATA_USE_CNESPHRINPUT "Use PHR data provided by CNES." OFF) +mark_as_advanced(OTB_DATA_USE_CNESPHRINPUT) +if(OTB_DATA_USE_CNESPHRINPUT) + find_path(OTB_DATA_CNESPHRINPUT_ROOT OTB_PHR_Data.readme $ENV{OTB_DATA_CNESPHRINPUT_ROOT}) + mark_as_advanced(OTB_DATA_CNESPHRINPUT_ROOT) +endif() + set(BASELINE ${OTB_DATA_ROOT}/Baseline/OTB/Images) set(BASELINE_FILES ${OTB_DATA_ROOT}/Baseline/OTB/Files) set(INPUTDATA ${OTB_DATA_ROOT}/Input) @@ -272,6 +243,60 @@ set(EPSILON_13 0.0000000000001) set(EPSILON_14 0.00000000000001) set(EPSILON_15 0.000000000000001) +#----------------------------------------------------------------------------- +# OTB wrapper for add_test that automatically sets the test's LABELS property +# to the value of its containing module. +# +function(otb_add_test) + set(largeinput_regex "LARGEINPUT{([^;{}\r\n]*)}") + + set(_depends_on_largeinput OFF) + foreach(arg IN LISTS ARGN) + if("x${arg}" MATCHES "${largeinput_regex}") + string(REGEX REPLACE "${largeinput_regex}" "\\1" largeinput_relative_path "${arg}") + set(_fullpath "${OTB_DATA_LARGEINPUT_ROOT}/${largeinput_relative_path}") + list(APPEND _out_arg ${_fullpath}) + set(_depends_on_largeinput ON) + else() + list(APPEND _out_arg ${arg}) + endif() + endforeach() + + if (_depends_on_largeinput AND NOT OTB_DATA_USE_LARGEINPUT) + return() + endif() + + add_test(${_out_arg}) + + if("NAME" STREQUAL "${ARGV0}") + set(_iat_testname ${ARGV1}) + else() + set(_iat_testname ${ARGV0}) + endif() + + if(otb-module) + set(_label ${otb-module}) + else() + set(_label ${main_project_name}) + endif() + + set_property(TEST ${_iat_testname} PROPERTY LABELS ${_label}) + +endfunction() + +#----------------------------------------------------------------------------- +# OTB function to ignore a test +# +function(otb_tests_ignore) + set_property(GLOBAL APPEND PROPERTY CTEST_CUSTOM_TESTS_IGNORE ${ARGN}) +endfunction() + +#----------------------------------------------------------------------------- +# OTB function to ignore a test during MemCheck +# +function(otb_memcheck_ignore) + set_property(GLOBAL APPEND PROPERTY CTEST_CUSTOM_MEMCHECK_IGNORE ${ARGN}) +endfunction() # Location of OTB Example Data. # set(OTB_EXAMPLE_DATA_ROOT "${OTB_SOURCE_DIR}/Examples/Data")