123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- SET(cmake_version_required "2.8")
- SET(cmake_version_required_dash "2-8")
- CMAKE_MINIMUM_REQUIRED(VERSION ${cmake_version_required})
- #
- # CTK_QMAKE_EXECUTABLE
- # CTK_KWSTYLE_EXECUTABLE
- # CTK_DCMTK_DIR
- #
- #-----------------------------------------------------------------------------
- # Enable and setup External project global properties
- #
- INCLUDE(ExternalProject)
- SET(ep_base "${CMAKE_BINARY_DIR}/CMakeExternals")
- SET_PROPERTY(DIRECTORY PROPERTY EP_BASE ${ep_base})
- SET(ep_install_dir ${ep_base}/Install)
- SET(ep_build_dir ${ep_base}/Build)
- SET(ep_source_dir ${ep_base}/Source)
- #SET(ep_parallelism_level)
- SET(ep_build_shared_libs ON)
- SET(ep_build_testing OFF)
- SET(ep_common_args
- -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DBUILD_TESTING:BOOL=${ep_build_testing}
- )
- # Compute -G arg for configuring external projects with the same CMake generator:
- IF(CMAKE_EXTRA_GENERATOR)
- SET(gen "${CMAKE_EXTRA_GENERATOR} - ${CMAKE_GENERATOR}")
- ELSE()
- SET(gen "${CMAKE_GENERATOR}")
- ENDIF()
- # Use this value where semi-colons are needed in ep_add args:
- set(sep "^^")
- #-----------------------------------------------------------------------------
- # Update CMake module path
- #
- SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/CMake)
- #-----------------------------------------------------------------------------
- # Qt is expected to be setup by CTK/CMakeLists.txt just before it includes the SuperBuild script
- #
- #-----------------------------------------------------------------------------
- # KWStyle
- #
- SET (kwstyle_DEPENDS)
- IF (CTK_USE_KWSTYLE)
- IF (NOT DEFINED CTK_KWSTYLE_EXECUTABLE)
- SET(proj KWStyle-CVSHEAD)
- SET(kwstyle_DEPENDS ${proj})
- ExternalProject_Add(${proj}
- LIST_SEPARATOR ${sep}
- CVS_REPOSITORY ":pserver:anoncvs:@public.kitware.com:/cvsroot/KWStyle"
- CVS_MODULE "KWStyle"
- CMAKE_GENERATOR ${gen}
- CMAKE_ARGS
- ${ep_common_args}
- )
- SET(CTK_KWSTYLE_EXECUTABLE ${ep_install_dir}/bin/KWStyle)
- ENDIF()
- ENDIF()
- #-----------------------------------------------------------------------------
- # PythonQt
- #
- SET (PythonQt_DEPENDS)
- # IF ()
- # SET(proj PythonQt)
- # SET(PythonQt_DEPENDS ${proj})
- # ExternalProject_Add(${proj}
- # SVN_REPOSITORY "https://pythonqt.svn.sourceforge.net/svnroot/pythonqt/trunk"
- # CMAKE_GENERATOR ${gen}
- # PATCH_COMMAND ${CMAKE_COMMAND} -P ${pythonqt_patch_script}
- # CMAKE_ARGS
- # ${ep_common_args}
- # -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}
- # #${vtk_PYTHON_ARGS}
- # INSTALL_COMMAND "")
- # ENDIF()
-
- #-----------------------------------------------------------------------------
- # Utilities/DCMTK
- #
- SET (DCMTK_DEPENDS)
- IF (NOT DEFINED CTK_DCMTK_DIR)
- SET(proj DCMTK)
- SET(DCMTK_DEPENDS ${proj})
- ExternalProject_Add(${proj}
- DOWNLOAD_COMMAND ""
- CMAKE_GENERATOR ${gen}
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/${proj}
- CMAKE_ARGS
- ${ep_common_args}
- -DDCMTK_BUILD_APPS:BOOL=ON # Build also dmctk tools (movescu, storescp, ...)
- )
- SET(CTK_DCMTK_DIR ${ep_install_dir})
- ENDIF()
- #-----------------------------------------------------------------------------
- # Utilities/ZMQ
- #
- SET(proj ZMQ)
- ExternalProject_Add(${proj}
- DOWNLOAD_COMMAND ""
- INSTALL_COMMAND ""
- CMAKE_GENERATOR ${gen}
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/Utilities/ZMQ
- CMAKE_ARGS
- ${ep_common_args}
- )
- #-----------------------------------------------------------------------------
- # Utilities/OpenIGTLink
- #
- SET(proj OpenIGTLink)
- ExternalProject_Add(${proj}
- SVN_REPOSITORY "http://svn.na-mic.org/NAMICSandBox/trunk/OpenIGTLink"
- INSTALL_COMMAND ""
- CMAKE_GENERATOR ${gen}
- SOURCE_DIR OpenIGTLink
- CMAKE_ARGS
- ${ep_common_args}
- )
- #-----------------------------------------------------------------------------
- # XIP
- #
- # SET(proj XIP)
- # SET(url https://collab01a.scr.siemens.com/svn/xip/releases/latest)
- # ExternalProject_Add(${proj}
- # DOWNLOAD_COMMAND "${CMAKE_COMMAND} -E ${SVNCOMMAND} checkout ${url} ${ep_source_dir}/${proj} --username=anonymous "
- # UPDATE_COMMAND ""
- # #SVN_REPOSITORY "https://anonymous@collab01a.scr.siemens.com/svn/xip/releases/latest"
- # INSTALL_COMMAND ""
- # CMAKE_GENERATOR ${gen}
- # CMAKE_ARGS
- # ${ep_common_args}
- # )
-
- #-----------------------------------------------------------------------------
- # CTK Utilities
- #
- set(proj CTK-Utilities)
- ExternalProject_Add(${proj}
- DOWNLOAD_COMMAND ""
- CONFIGURE_COMMAND ""
- BUILD_COMMAND ""
- INSTALL_COMMAND ""
- DEPENDS
- ${kwstyle_DEPENDS}
- ${DCMTK_DEPENDS}
- ${PythonQt_DEPENDS}
- "ZMQ"
- "OpenIGTLink"
- # "XIP"
- )
-
- #-----------------------------------------------------------------------------
- # Convenient macro allowing to define superbuild arg
- #
- MACRO(ctk_set_superbuild_boolean_arg ctk_cmake_var)
- SET(superbuild_${ctk_cmake_var} ON)
- IF(DEFINED ${ctk_cmake_var} AND NOT ${ctk_cmake_var})
- SET(superbuild_${ctk_cmake_var} OFF)
- ENDIF()
- SET(superbuild_ep_arg_${ctk_cmake_var} -D${ctk_cmake_arg}:BOOL=${superbuild_${ctk_cmake_var}})
- ENDMACRO()
- #-----------------------------------------------------------------------------
- # Set superbuild boolean args
- #
- SET(ctk_cmake_boolean_args
- BUILD_TESTING
- CTK_USE_KWSTYLE
- ${ctk_libs}
- )
- SET(ctk_superbuild_boolean_args)
- FOREACH(ctk_cmake_arg ${ctk_cmake_boolean_args})
- ctk_set_superbuild_boolean_arg(${ctk_cmake_arg})
- LIST(APPEND ctk_superbuild_boolean_args -D${ctk_cmake_arg}:BOOL=${superbuild_${ctk_cmake_arg}})
- ENDFOREACH()
- #-----------------------------------------------------------------------------
- # CTK Configure
- #
- SET(proj CTK-Configure)
- ExternalProject_Add(${proj}
- DOWNLOAD_COMMAND ""
- CMAKE_GENERATOR ${gen}
- CMAKE_ARGS
- ${ctk_superbuild_boolean_args}
- -DCTK_SUPERBUILD:BOOL=OFF
- -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir}
- -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
- -DCTK_QMAKE_EXECUTABLE:FILEPATH=${CTK_QMAKE_EXECUTABLE}
- -DCTK_KWSTYLE_EXECUTABLE:FILEPATH=${CTK_KWSTYLE_EXECUTABLE}
- -DDCMTK_DIR=${CTK_DCMTK_DIR} # FindDCMTK expects DCMTK_DIR
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
- BINARY_DIR ${CMAKE_BINARY_DIR}/CTK-build
- BUILD_COMMAND ""
- INSTALL_COMMAND ""
- DEPENDS
- "CTK-Utilities"
- )
- #-----------------------------------------------------------------------------
- # CTK
- #
- set(proj CTK-build)
- ExternalProject_Add(${proj}
- DOWNLOAD_COMMAND ""
- CMAKE_GENERATOR ${gen}
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
- BINARY_DIR CTK-build
- #BUILD_COMMAND ""
- INSTALL_COMMAND ""
- DEPENDS
- "CTK-Configure"
- )
|