diff --git a/CMake/elxCompilerFlags.cmake b/CMake/elxCompilerFlags.cmake index 171a36b1bdafb1f2d1b939e3708e1203f8642dcf..8728ded6e8665a0d4b18741e224da9f64ceca865 100644 --- a/CMake/elxCompilerFlags.cmake +++ b/CMake/elxCompilerFlags.cmake @@ -9,4 +9,4 @@ set( CompilerFlags CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO -) +) \ No newline at end of file diff --git a/CMake/elxRequiredITKModules.cmake b/CMake/elxITKRequiredModules.cmake similarity index 100% rename from CMake/elxRequiredITKModules.cmake rename to CMake/elxITKRequiredModules.cmake diff --git a/CMake/elxWinConfig.cmake b/CMake/elxWinConfig.cmake index 35dab0a369545509c13b3c700128cca062457c88..c9a8eb734b8260f259e95fa5be4f6dd3605ea79d 100644 --- a/CMake/elxWinConfig.cmake +++ b/CMake/elxWinConfig.cmake @@ -1,3 +1,5 @@ +# Visual Studio complains if paths are too long + string( LENGTH "${CMAKE_CURRENT_SOURCE_DIR}" n ) if( n GREATER 50 ) message( diff --git a/CMake/elxGoogleTestWinConfig.cmake b/CMake/elxWinConfigGoogleTest.cmake similarity index 72% rename from CMake/elxGoogleTestWinConfig.cmake rename to CMake/elxWinConfigGoogleTest.cmake index 4b1198035cc6b283ab067a7a7990ca27ef2adb36..75a5ac06f7db5c2020b3c4e11e85b572e07abf3f 100644 --- a/CMake/elxGoogleTestWinConfig.cmake +++ b/CMake/elxWinConfigGoogleTest.cmake @@ -1,5 +1,6 @@ # GoogleTest needs static linking -include( ${CMAKE_SOURCE_DIR}/CMake/elxCompilerFlags.cmake ) + +include( elxCompilerFlags.cmake ) foreach( CompilerFlag ${CompilerFlags} ) string( REPLACE "/MD" "/MT" ${CompilerFlag} "${${CompilerFlag}}" ) endforeach() diff --git a/CMakeLists.txt b/CMakeLists.txt index d15c9c47aba0ea77ad0cb26bddd574c42b6d6af8..c5a3e96f42343649c90a9bd5889ca4b03d978616 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,10 @@ cmake_minimum_required( VERSION 2.8 ) +# Include SuperElastix CMake scripts +list( APPEND CMAKE_MODULE_PATH + "${CMAKE_CURRENT_SOURCE_DIR}/CMake" +) + if( CMAKE_HOST_WIN32 ) include( elxWinConfig.cmake ) endif() @@ -13,7 +18,7 @@ project( Elastix ) find_package( ITK REQUIRED ) set( ITK_NO_IO_FACTORY_REGISTER_MANAGER 1 ) include( ${ITK_USE_FILE} ) -include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxRequiredITKModules.cmake" ) +include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxITKRequiredModules.cmake" ) #--------------------------------------------------------------------- # Build Elastix @@ -21,14 +26,16 @@ include( "${CMAKE_CURRENT_SOURCE_DIR}/CMake/elxRequiredITKModules.cmake" ) #--------------------------------------------------------------------- # Testing -# Do not build tests by default since this requires GoogleTest submodule -# to be initialized. Otherwise users may see FATAL_ERRORs out of the box. -# The SuperBuild will correctly initialize the GoogleTest submodule and -# build tests by default. -option( ELASTIX_BUILD_TESTING "Enable building tests." OFF ) +# Build tests by default +option( ELASTIX_BUILD_TESTING "Enable building tests." ON ) + +# ExternalData module requires newer CMake versions +if( CMAKE_VERSION VERSION_LESS 2.8.11 ) + set( ELASTIX_BUILD_TESTING OFF FORCE ) + message( STATUS "ELASTIX_BUILD_TESTING was set to OFF because CMake version is less than 2.8.11") +endif() if( ELASTIX_BUILD_TESTING ) - option( ELASTIX_BUILD_BENCHMARKING "Enable building benchmarks." OFF ) enable_testing() add_subdirectory( Testing ) endif() @@ -40,5 +47,5 @@ mark_as_advanced( ELASTIX_BUILD_DOXYGEN ) option( ELASTIX_BUILD_DOXYGEN "Enable building Doxygen documentation." OFF ) mark_as_advanced( ELASTIX_BUILD_READTHEDOCS ) -option( ELASTX_BUILD_READTHEDOCS "Enable building readthedocs.org documentation." OFF ) +option( ELASTIX_BUILD_READTHEDOCS "Enable building readthedocs.org documentation." OFF ) diff --git a/SuperBuild/CMakeLists.txt b/SuperBuild/CMakeLists.txt index 15dd3d89cc2f18552308fb78f3b85534d2485a52..cff7bb5aec197b58bc119bf198014d2991bd6f36 100644 --- a/SuperBuild/CMakeLists.txt +++ b/SuperBuild/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required( VERSION 2.8 ) #--------------------------------------------------------------------- -project( elastixSuperBuild ) +project( ElastixSuperBuild ) find_package( Git REQUIRED ) @@ -13,6 +13,8 @@ set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ) +set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR} CACHE PATH "SuperBuild install directory" FORCE) + #--------------------------------------------------------------------- # Elastix SuperBuild configuration @@ -30,10 +32,11 @@ option( ELASTIX_BUILD_TESTING "Enable building tests." ON ) if( ELASTIX_BUILD_TESTING ) option( ELASTIX_BUILD_BENCHMARKING "Enable building benchmarks." ON ) + option( ELASTIX_BUILD_DASHBOARD "Enable building benchmarks." ON ) endif() #--------------------------------------------------------------------- -# Build ITK as external project +# Build ITK set( ITK_VERSION_MAJOR "4" ) set( ITK_VERSION_MINOR "7" ) @@ -52,7 +55,7 @@ else() endif() #--------------------------------------------------------------------- -# Build Elastix as an external project +# Build Elastix include( Elastix ) diff --git a/SuperBuild/Elastix.cmake b/SuperBuild/Elastix.cmake index 6afad9403207d2074137c492e6a54bb2d37c28d7..d6bf55178d1d5674f14c9a5bd3f3fc7a93dcb3bd 100644 --- a/SuperBuild/Elastix.cmake +++ b/SuperBuild/Elastix.cmake @@ -4,11 +4,11 @@ ExternalProject_Add( ${proj} DOWNLOAD_COMMAND "" SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/.. BINARY_DIR ${proj}-build - INSTALL_DIR ${CMAKE_INSTALL_PREFIX} CMAKE_ARGS --no-warn-unused-cli -DELASTIX_BUILD_TESTING:BOOL=${ELASTIX_BUILD_TESTING} -DELASTIX_BUILD_BENCHMARKING:BOOL=${ELASTIX_BUILD_BENCHMARKING} + -DELASTIX_BUILD_DASHBOARD:BOOL=${ELASTIX_BUILD_DASHBOARD} -DITK_DIR:PATH=${ITK_DIR} DEPENDS ${ELASTIX_DEPENDENCIES} INSTALL_COMMAND ""