# Make sure this file is included only once by creating globally unique varibles # based on the name of this included file. get_filename_component(CMAKE_CURRENT_LIST_FILENAME ${CMAKE_CURRENT_LIST_FILE} NAME_WE) if(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED) return() endif() set(${CMAKE_CURRENT_LIST_FILENAME}_FILE_INCLUDED 1) ## External_${extProjName}.cmake files can be recurisvely included, ## and cmake variables are global, so when including sub projects it ## is important make the extProjName and proj variables ## appear to stay constant in one of these files. ## Store global variables before overwriting (then restore at end of this file.) ProjectDependancyPush(CACHED_extProjName ${extProjName}) ProjectDependancyPush(CACHED_proj ${proj}) # Make sure that the ExtProjName/IntProjName variables are unique globally # even if other External_${ExtProjName}.cmake files are sourced by # SlicerMacroCheckExternalProjectDependency set(extProjName SlicerExecutionModel) #The find_package known name set(proj SlicerExecutionModel) #This local name set(${extProjName}_REQUIRED_VERSION "") #If a required version is necessary, then set this, else leave blank #if(${USE_SYSTEM_${extProjName}}) # unset(${extProjName}_DIR CACHE) #endif() # Sanity checks if(DEFINED ${extProjName}_DIR AND NOT EXISTS ${${extProjName}_DIR}) message(FATAL_ERROR "${extProjName}_DIR variable is defined but corresponds to non-existing directory (${${extProjName}_DIR})") endif() # Set dependency list set(${proj}_DEPENDENCIES ITKv5) # Include dependent projects if any SlicerMacroCheckExternalProjectDependency(${proj}) if(NOT ( DEFINED "${extProjName}_DIR" OR ( DEFINED "${USE_SYSTEM_${extProjName}}" AND NOT "${USE_SYSTEM_${extProjName}}" ) ) ) #message(STATUS "${__indent}Adding project ${proj}") # Set CMake OSX variable to pass down the external project set(CMAKE_OSX_EXTERNAL_PROJECT_ARGS) if(APPLE) list(APPEND CMAKE_OSX_EXTERNAL_PROJECT_ARGS -DCMAKE_OSX_ARCHITECTURES=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_SYSROOT=${CMAKE_OSX_SYSROOT} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET}) endif() ### --- Project specific additions here set(${proj}_CMAKE_OPTIONS -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DITK_DIR:PATH=${ITK_DIR} -DSlicerExecutionModel_DEFAULT_CLI_RUNTIME_OUTPUT_DIRECTORY:PATH=${${PROJECT_NAME}_CLI_RUNTIME_OUTPUT_DIRECTORY} -DSlicerExecutionModel_DEFAULT_CLI_LIBRARY_OUTPUT_DIRECTORY:PATH=${${PROJECT_NAME}_CLI_LIBRARY_OUTPUT_DIRECTORY} -DSlicerExecutionModel_DEFAULT_CLI_ARCHIVE_OUTPUT_DIRECTORY:PATH=${${PROJECT_NAME}_CLI_ARCHIVE_OUTPUT_DIRECTORY} -DSlicerExecutionModel_DEFAULT_CLI_INSTALL_RUNTIME_DESTINATION:STRING=${${PROJECT_NAME}_CLI_INSTALL_RUNTIME_DESTINATION} -DSlicerExecutionModel_DEFAULT_CLI_INSTALL_LIBRARY_DESTINATION:STRING=${${PROJECT_NAME}_CLI_INSTALL_LIBRARY_DESTINATION} -DSlicerExecutionModel_DEFAULT_CLI_INSTALL_ARCHIVE_DESTINATION:STRING=${${PROJECT_NAME}_CLI_INSTALL_ARCHIVE_DESTINATION} #-DSlicerExecutionModel_LIBRARY_PROPERTIES:STRING=${Slicer_LIBRARY_PROPERTIES} #-DSlicerExecutionModel_INSTALL_BIN_DIR:PATH=bin #-DSlicerExecutionModel_INSTALL_LIB_DIR:PATH=lib #-DSlicerExecutionModel_INSTALL_SHARE_DIR:PATH=${Slicer_INSTALL_ROOT}share/${SlicerExecutionModel} #-DSlicerExecutionModel_INSTALL_NO_DEVELOPMENT:BOOL=${Slicer_INSTALL_NO_DEVELOPMENT} ) ### --- End Project specific additions set(${proj}_REPOSITORY "${git_protocol}://github.com/Slicer/SlicerExecutionModel.git") set(${proj}_GIT_TAG "9202673b809fb7df0890a2b01c288dae0b02c598") ExternalProject_Add(${proj} GIT_REPOSITORY ${${proj}_REPOSITORY} GIT_TAG ${${proj}_GIT_TAG} SOURCE_DIR ${proj} BINARY_DIR ${proj}-build LOG_CONFIGURE 0 # Wrap configure in script to ignore log output from dashboards LOG_BUILD 0 # Wrap build in script to to ignore log output from dashboards LOG_TEST 0 # Wrap test in script to to ignore log output from dashboards LOG_INSTALL 0 # Wrap install in script to to ignore log output from dashboards ${cmakeversion_external_update} "${cmakeversion_external_update_value}" CMAKE_GENERATOR ${gen} CMAKE_ARGS -Wno-dev --no-warn-unused-cli ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS} ${COMMON_EXTERNAL_PROJECT_ARGS} ${${proj}_CMAKE_OPTIONS} -DCMAKE_GENERATOR_PLATFORM:STRING=${CMAKE_GENERATOR_PLATFORM} INSTALL_COMMAND "" DEPENDS ${${proj}_DEPENDENCIES} ) set(${extProjName}_DIR ${CMAKE_BINARY_DIR}/${proj}-build) else() if(${USE_SYSTEM_${extProjName}}) find_package(${extProjName} ${${extProjName}_REQUIRED_VERSION} REQUIRED) if(NOT ${extProjName}_DIR) message(FATAL_ERROR "To use the system ${extProjName}, set ${extProjName}_DIR") endif() message("USING the system ${extProjName}, set ${extProjName}_DIR=${${extProjName}_DIR}") endif() # The project is provided using ${extProjName}_DIR, nevertheless since other # project may depend on ${extProjName}, let's add an 'empty' one SlicerMacroEmptyExternalProject(${proj} "${${proj}_DEPENDENCIES}") endif() list(APPEND ${CMAKE_PROJECT_NAME}_SUPERBUILD_EP_VARS ${extProjName}_DIR:PATH) ProjectDependancyPop(CACHED_extProjName extProjName) ProjectDependancyPop(CACHED_proj proj)