#----------------------------------------------------------------------------- # Update CMake module path #------------------------------------------------------------------------------ set(CMAKE_MODULE_PATH ${${PROJECT_NAME}_SOURCE_DIR}/CMake ${${PROJECT_NAME}_BINARY_DIR}/CMake ${CMAKE_MODULE_PATH} ) #----------------------------------------------------------------------------- # Sanity checks #------------------------------------------------------------------------------ include(PreventInSourceBuilds) include(PreventInBuildInstalls) #include(itkCheckSourceTree) include(CMakeDependentOption) #----------------------------------------------------------------------------- # Build option(s) #----------------------------------------------------------------------------- #----------------------------------------------------------------------------- option(ANTS_BUILD_WITH_CCACHE "Build ${LOCAL_PROJECT_NAME} using ccache if available." ON) mark_as_advanced(ANTS_BUILD_WITH_CCACHE) if(ANTS_BUILD_WITH_CCACHE) include(CCache) endif() option(BUILD_SHARED_LIBS "Build ITK with shared libraries." OFF) set(ANTS_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) option(ITK_USE_SYSTEM_PNG "Use system png library if found" OFF) mark_as_advanced(ITK_USE_SYSTEM_PNG) ###################################################################################################### # BA - add this stuff to help installation of ANTsR # set(CMAKE_SKIP_BUILD_RPATH FALSE) # set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) # set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") # set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) # list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) # if("${isSystemDir}" STREQUAL "-1") # set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") # endif() ##################################################################################################### set(USE_ITKv5 ON) set(ITK_VERSION_MAJOR 5 CACHE STRING "Choose the expected ITK major version to build ANTS only version 5 allowed.") # Set the possible values of ITK major version for cmake-gui set_property(CACHE ITK_VERSION_MAJOR PROPERTY STRINGS "5") set(expected_ITK_VERSION_MAJOR ${ITK_VERSION_MAJOR}) if(${ITK_VERSION_MAJOR} VERSION_LESS ${expected_ITK_VERSION_MAJOR}) # Note: Since ITKv3 doesn't include a ITKConfigVersion.cmake file, let's check the version # explicitly instead of passing the version as an argument to find_package() command. message(FATAL_ERROR "Could not find a configuration file for package \"ITK\" that is compatible " "with requested version \"${expected_ITK_VERSION_MAJOR}\".\n" "The following configuration files were considered but not accepted:\n" " ${ITK_CONFIG}, version: ${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_PATCH}\n") endif() if(${ITK_VERSION_MAJOR} STREQUAL "3") message(FATAL_ERROR "ITKv3 is no longer supported") endif() #----------------------------------------------------------------------------- # Set a default build type if none was specified if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) message(STATUS "Setting build type to 'Release' as none was specified.") set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE) # Set the possible values of build type for cmake-gui set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo") endif() #----------------------------------------------------------------------------- # CMake Function(s) and Macro(s) #----------------------------------------------------------------------------- # With CMake 2.8.9 or later, the UPDATE_COMMAND is required for updates to occur. # For earlier versions, we nullify the update state to prevent updates and # undesirable rebuild. if(CMAKE_VERSION VERSION_LESS 2.8.9) set(cmakeversion_external_update UPDATE_COMMAND "") else() set(cmakeversion_external_update LOG_UPDATE 1) endif() if(CMAKE_VERSION VERSION_LESS 2.8.3) include(Pre283CMakeParseArguments) else() include(CMakeParseArguments) endif() #----------------------------------------------------------------------------- # Platform check #----------------------------------------------------------------------------- set(PLATFORM_CHECK true) if(PLATFORM_CHECK) # See CMake/Modules/Platform/Darwin.cmake) # 6.x == Mac OSX 10.2 (Jaguar) # 7.x == Mac OSX 10.3 (Panther) # 8.x == Mac OSX 10.4 (Tiger) # 9.x == Mac OSX 10.5 (Leopard) # 10.x == Mac OSX 10.6 (Snow Leopard) if (DARWIN_MAJOR_VERSION LESS "9") message(FATAL_ERROR "Only Mac OSX >= 10.5 are supported !") endif() endif() #------------------------------------------------------------------------- # Augment compiler flags #------------------------------------------------------------------------- include(ITKSetStandardCompilerFlags) if(ITK_LEGACY_REMOVE) if(CMAKE_BUILD_TYPE STREQUAL "Debug") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_DEBUG_DESIRED_FLAGS} " ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_DEBUG_DESIRED_FLAGS} " ) else() # Release, or anything else set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_RELEASE_DESIRED_FLAGS} " ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_RELEASE_DESIRED_FLAGS} " ) endif() endif() if(BUILD_SHARED_LIBS) if(NOT CMAKE_POSITION_INDEPENDENT_CODE) set(CMAKE_POSITION_INDEPENDENT_CODE ON) endif() endif() #------------------------------------------------------------------------- # Define install dirs for different platforms #------------------------------------------------------------------------- include(GNUInstallDirs)