diff --git a/SuperBuild.cmake b/SuperBuild.cmake index 660a4a8..693b71f 100644 --- a/SuperBuild.cmake +++ b/SuperBuild.cmake @@ -158,6 +158,13 @@ if (BUILD_petmr_rd_tools) list(APPEND ${PRIMARY_PROJECT_NAME}_DEPENDENCIES petmr_rd_tools) endif() +if ("${PYTHON_STRATEGY}" STREQUAL "CONDA") + set (BUILD_CIL OFF) +endif() +if (BUILD_CIL) + list(APPEND ${PRIMARY_PROJECT_NAME}_DEPENDENCIES CCPi-RGL CCPi-Framework CCPi-FrameworkPlugins) +endif() + ExternalProject_Include_Dependencies(${proj} DEPENDS_VAR ${PRIMARY_PROJECT_NAME}_DEPENDENCIES) message(STATUS "") diff --git a/SuperBuild/External_ACE.cmake b/SuperBuild/External_ACE.cmake index b551dd1..b6f524c 100644 --- a/SuperBuild/External_ACE.cmake +++ b/SuperBuild/External_ACE.cmake @@ -63,7 +63,8 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${Gadgetron_Install_Dir} - INSTALL_DIR ${Gadgetron_Install_Dir} + -DINSTALL_DIR=${libACE_Install_Dir}/lib + -DINCLUDE_DIR=${libACE_Install_Dir}/include DEPENDS ${${proj}_DEPENDENCIES} ) diff --git a/SuperBuild/External_CCPi-Framework.cmake b/SuperBuild/External_CCPi-Framework.cmake new file mode 100644 index 0000000..107362f --- /dev/null +++ b/SuperBuild/External_CCPi-Framework.cmake @@ -0,0 +1,129 @@ +#======================================================================== +# Author: Benjamin A Thomas +# Author: Kris Thielemans +# Author: Edoardo Pasca +# Copyright 2017 University College London +# Copyright 2017 STFC +# +# This file is part of the CCP PETMR Synergistic Image Reconstruction Framework (SIRF) SuperBuild. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0.txt +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#========================================================================= + +#This needs to be unique globally +set(proj CCPi-Framework) + +# Set dependency list +set(${proj}_DEPENDENCIES "") + +# Include dependent projects if any +ExternalProject_Include_Dependencies(${proj} DEPENDS_VAR ${proj}_DEPENDENCIES) + +# Set external name (same as internal for now) +set(externalProjName ${proj}) + +set(${proj}_SOURCE_DIR "${SOURCE_ROOT_DIR}/${proj}" ) +set(${proj}_BINARY_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/build" ) +set(${proj}_DOWNLOAD_DIR "${SUPERBUILD_WORK_DIR}/downloads/${proj}" ) +set(${proj}_STAMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/stamp" ) +set(${proj}_TMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/tmp" ) + +if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalProjName}}" ) ) + message(STATUS "${__indent}Adding project ${proj}") + + ### --- Project specific additions here + set(libcilreg_Install_Dir ${SUPERBUILD_INSTALL_DIR}) + + #message(STATUS "HDF5_ROOT in External_SIRF: " ${HDF5_ROOT}) + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${SUPERBUILD_INSTALL_DIR}) + set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${SUPERBUILD_INSTALL_DIR}) + + set(ENV{CIL_VERSION} 0.10.1) + #set(CCPi-Framework_URL https://github.com/vais-ral/CCPi-Framework.git) + #set(CCPi-Framework_TAG origin/master) + message("CIL URL " ${${proj}_URL} ) + message("CIL TAG " ${${proj}_TAG} ) + + # conda build should never get here + if("${PYTHON_STRATEGY}" STREQUAL "PYTHONPATH") + # in case of PYTHONPATH it is sufficient to copy the files to the + # $PYTHONPATH directory + ExternalProject_Add(${proj} + ${${proj}_EP_ARGS} + GIT_REPOSITORY ${${proj}_URL} + GIT_TAG ${${proj}_TAG} + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + INSTALL_DIR ${libcilreg_Install_Dir} + + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${${proj}_SOURCE_DIR}/Wrappers/Python/ccpi ${PYTHON_DEST}/ccpi + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${libcilreg_Install_Dir} + DEPENDS + ${${proj}_DEPENDENCIES} + ) + + else() + # if SETUP_PY one can launch the conda build.sh script setting + # the appropriate variables. + ExternalProject_Add(${proj} + ${${proj}_EP_ARGS} + GIT_REPOSITORY ${${proj}_URL} + GIT_TAG ${${proj}_TAG} + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + INSTALL_DIR ${libcilreg_Install_Dir} + + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=0.10.0 SRC_DIR=${${proj}_BINARY_DIR} RECIPE_DIR=${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe PYTHON=${PYTHON_EXECUTABLE} bash ${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe/build.sh + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${libcilreg_Install_Dir} + DEPENDS + ${${proj}_DEPENDENCIES} + ) + endif() + + + set(${proj}_ROOT ${${proj}_SOURCE_DIR}) + set(${proj}_INCLUDE_DIR ${${proj}_SOURCE_DIR}) + + else() + if(${USE_SYSTEM_${externalProjName}}) + find_package(${proj} ${${externalProjName}_REQUIRED_VERSION} REQUIRED) + message("USING the system ${externalProjName}, set ${externalProjName}_DIR=${${externalProjName}_DIR}") + endif() + ExternalProject_Add_Empty(${proj} DEPENDS "${${proj}_DEPENDENCIES}" + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + ) + endif() + + mark_as_superbuild( + VARS + ${externalProjName}_DIR:PATH + LABELS + "FIND_PACKAGE" + ) diff --git a/SuperBuild/External_CCPi-FrameworkPlugins.cmake b/SuperBuild/External_CCPi-FrameworkPlugins.cmake new file mode 100644 index 0000000..aa26bf3 --- /dev/null +++ b/SuperBuild/External_CCPi-FrameworkPlugins.cmake @@ -0,0 +1,130 @@ +#======================================================================== +# Author: Benjamin A Thomas +# Author: Kris Thielemans +# Author: Edoardo Pasca +# Copyright 2017 University College London +# Copyright 2017 STFC +# +# This file is part of the CCP PETMR Synergistic Image Reconstruction Framework (SIRF) SuperBuild. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0.txt +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#========================================================================= + +#This needs to be unique globally +set(proj CCPi-FrameworkPlugins) + +# Set dependency list +set(${proj}_DEPENDENCIES "CCPi-Framework") + +# Include dependent projects if any +ExternalProject_Include_Dependencies(${proj} DEPENDS_VAR ${proj}_DEPENDENCIES) + +# Set external name (same as internal for now) +set(externalProjName ${proj}) + +set(${proj}_SOURCE_DIR "${SOURCE_ROOT_DIR}/${proj}" ) +set(${proj}_BINARY_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/build" ) +set(${proj}_DOWNLOAD_DIR "${SUPERBUILD_WORK_DIR}/downloads/${proj}" ) +set(${proj}_STAMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/stamp" ) +set(${proj}_TMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/tmp" ) + +if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalProjName}}" ) ) + message(STATUS "${__indent}Adding project ${proj}") + + ### --- Project specific additions here + set(libcilreg_Install_Dir ${SUPERBUILD_INSTALL_DIR}) + + #message(STATUS "HDF5_ROOT in External_SIRF: " ${HDF5_ROOT}) + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${SUPERBUILD_INSTALL_DIR}) + set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${SUPERBUILD_INSTALL_DIR}) + + set(ENV{CIL_VERSION} 0.10.1) + #set(CCPi-Framework_URL https://github.com/vais-ral/CCPi-Framework.git) + #set(CCPi-Framework_TAG origin/master) + message("CIL proj " ${proj} ) + message("CIL URL " ${${proj}_URL} ) + message("CIL TAG " ${${proj}_TAG} ) + + # conda build should never get here + if("${PYTHON_STRATEGY}" STREQUAL "PYTHONPATH") + # in case of PYTHONPATH it is sufficient to copy the files to the + # $PYTHONPATH directory + ExternalProject_Add(${proj} + ${${proj}_EP_ARGS} + GIT_REPOSITORY ${${proj}_URL} + GIT_TAG ${${proj}_TAG} + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + INSTALL_DIR ${libcilreg_Install_Dir} + + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${${proj}_SOURCE_DIR}/Wrappers/Python/ccpi ${PYTHON_DEST}/ccpi + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${libcilreg_Install_Dir} + DEPENDS + ${${proj}_DEPENDENCIES} + ) + + else() + # if SETUP_PY one can launch the conda build.sh script setting + # the appropriate variables. + ExternalProject_Add(${proj} + ${${proj}_EP_ARGS} + GIT_REPOSITORY ${${proj}_URL} + GIT_TAG ${${proj}_TAG} + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + INSTALL_DIR ${libcilreg_Install_Dir} + + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=0.10.0 SRC_DIR=${${proj}_BINARY_DIR} RECIPE_DIR=${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe PYTHON=${PYTHON_EXECUTABLE} bash ${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe/build.sh + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${libcilreg_Install_Dir} + DEPENDS + ${${proj}_DEPENDENCIES} + ) + endif() + + + set(${proj}_ROOT ${${proj}_SOURCE_DIR}) + set(${proj}_INCLUDE_DIR ${${proj}_SOURCE_DIR}) + + else() + if(${USE_SYSTEM_${externalProjName}}) + find_package(${proj} ${${externalProjName}_REQUIRED_VERSION} REQUIRED) + message("USING the system ${externalProjName}, set ${externalProjName}_DIR=${${externalProjName}_DIR}") + endif() + ExternalProject_Add_Empty(${proj} DEPENDS "${${proj}_DEPENDENCIES}" + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + ) + endif() + + mark_as_superbuild( + VARS + ${externalProjName}_DIR:PATH + LABELS + "FIND_PACKAGE" + ) diff --git a/SuperBuild/External_CCPi-RGL.cmake b/SuperBuild/External_CCPi-RGL.cmake new file mode 100644 index 0000000..de916da --- /dev/null +++ b/SuperBuild/External_CCPi-RGL.cmake @@ -0,0 +1,162 @@ +#======================================================================== +# Author: Benjamin A Thomas +# Author: Kris Thielemans +# Author: Edoardo Pasca +# Copyright 2017 University College London +# Copyright 2017 STFC +# +# This file is part of the CCP PETMR Synergistic Image Reconstruction Framework (SIRF) SuperBuild. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0.txt +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#========================================================================= + +#This needs to be unique globally +set(proj CCPi-RGL) + +# Set dependency list +set(${proj}_DEPENDENCIES "") + +# Include dependent projects if any +ExternalProject_Include_Dependencies(${proj} DEPENDS_VAR ${proj}_DEPENDENCIES) + +# Set external name (same as internal for now) +set(externalProjName ${proj}) + +set(${proj}_SOURCE_DIR "${SOURCE_ROOT_DIR}/${proj}" ) +set(${proj}_BINARY_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/build" ) +set(${proj}_DOWNLOAD_DIR "${SUPERBUILD_WORK_DIR}/downloads/${proj}" ) +set(${proj}_STAMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/stamp" ) +set(${proj}_TMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/tmp" ) + +if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalProjName}}" ) ) + message(STATUS "${__indent}Adding project ${proj}") + + ### --- Project specific additions here + set(libcilreg_Install_Dir ${SUPERBUILD_INSTALL_DIR}) + + #message(STATUS "HDF5_ROOT in External_SIRF: " ${HDF5_ROOT}) + set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH} ${SUPERBUILD_INSTALL_DIR}) + set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH} ${SUPERBUILD_INSTALL_DIR}) + + set(ENV{CIL_VERSION} 0.10.1) + #set(CCPi-RGL_URL https://github.com/vais-ral/CCPi-Regularisation-Toolkit.git) + #set(CCPi-RGL_TAG origin/windows_fix) + message("CIL URL " ${${proj}_URL} ) + message("CIL TAG " ${${proj}_TAG} ) + + # conda build should never get here + if("${PYTHON_STRATEGY}" STREQUAL "PYTHONPATH") + # in case of PYTHONPATH it is sufficient to copy the files to the + # $PYTHONPATH directory + set (BUILD_PYTHON ${PYTHONLIBS_FOUND}) + if (BUILD_PYTHON) + set(PYTHON_DEST_DIR "" CACHE PATH "Directory of the SIRF Python modules") + if (PYTHON_DEST_DIR) + set(PYTHON_DEST "${PYTHON_DEST_DIR}") + else() + set(PYTHON_DEST "${CMAKE_INSTALL_PREFIX}/python") + endif() + message(STATUS "Python libraries found") + message(STATUS "SIRF Python modules will be installed in " ${PYTHON_DEST}) + endif() + set(PYTHON_STRATEGY "PYTHONPATH" CACHE STRING "\ + PYTHONPATH: prefix PYTHONPATH \n\ + SETUP_PY: execute ${PYTHON_EXECUTABLE} setup.py install \n\ + CONDA: do nothing") + set_property(CACHE PYTHON_STRATEGY PROPERTY STRINGS PYTHONPATH SETUP_PY CONDA) + + ExternalProject_Add(${proj} + ${${proj}_EP_ARGS} + GIT_REPOSITORY ${${proj}_URL} + GIT_TAG ${${proj}_TAG} + #GIT_TAG origin/cmaking + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + INSTALL_DIR ${libcilreg_Install_Dir} + + ##CONFIGURE_COMMAND "" + #CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy_directory ${${proj}_SOURCE_DIR} ${${proj}_BINARY_DIR} + # COMMAND grep -vx "make install" ${${proj}_SOURCE_DIR}/recipes/regularisers/build.sh > ${${proj}_BINARY_DIR}/recipes/regularisers/build.sh + #COMMAND grep -vx "\$PYTHON setup-regularisers.py install" ${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe/build.sh > ${${proj}_BINARY_DIR}/Wrappers/Python/conda-recipe/build.sh + # COMMAND sed -e "s/install/build_ext --inplace/" ${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe/build.sh > ${${proj}_BINARY_DIR}/Wrappers/Python/conda-recipe/build.sh + + #BUILD_COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=0.10.0 SRC_DIR=${${proj}_BINARY_DIR} RECIPE_DIR=${${proj}_SOURCE_DIR}/recipes/regularisers PYTHON=${PYTHON_EXECUTABLE} CONDA_PREFIX=${${proj}_BINARY_DIR} bash ${${proj}_BINARY_DIR}/recipes/regularisers/build.sh + # COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=0.10.0 SRC_DIR=${${proj}_BINARY_DIR} RECIPE_DIR=${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe PYTHON=${PYTHON_EXECUTABLE} CONDA_PREFIX=${${proj}_BINARY_DIR} PREFIX=${libcilreg_Install_Dir} LIBRARY_PATH=${${proj}_BINARY_DIR}/build/build/:$ENV{LIBRARY_PATH} bash ${${proj}_BINARY_DIR}/Wrappers/Python/conda-recipe/build.sh + + ##INSTALL_COMMAND "" + #INSTALL_COMMAND ${CMAKE_COMMAND} -E copy ${${proj}_BINARY_DIR}/build/build/libcilreg.so ${libcilreg_Install_Dir}/lib + # COMMAND ${CMAKE_COMMAND} -E copy_directory ${${proj}_BINARY_DIR}/ccpi/Python/ccpi ${PYTHON_DEST}/ccpi + ##BUILD_COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=0.10.0 SRC_DIR=${${proj}_BINARY_DIR} RECIPE_DIR=${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe PYTHON=${PYTHON_EXECUTABLE} + ##INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${${proj}_SOURCE_DIR}/Wrappers/Python/ccpi ${PYTHON_DEST}/ccpi + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${libcilreg_Install_Dir} + -DBUILD_PYTHON_WRAPPERS=ON -DCMAKE_BUILD_TYPE=Release + -DBUILD_CUDA=OFF -DCONDA_BUILD=OFF + -DPYTHON_DEST=${PYTHON_DEST_DIR} + + DEPENDS + ${${proj}_DEPENDENCIES} + ) + + else() + # if SETUP_PY one can launch the conda build.sh script setting + # the appropriate variables. + ExternalProject_Add(${proj} + ${${proj}_EP_ARGS} + GIT_REPOSITORY ${${proj}_URL} + GIT_TAG ${${proj}_TAG} + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + INSTALL_DIR ${libcilreg_Install_Dir} + + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + INSTALL_COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=0.10.0 SRC_DIR=${${proj}_BINARY_DIR} RECIPE_DIR=${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe PYTHON=${PYTHON_EXECUTABLE} bash ${${proj}_SOURCE_DIR}/Wrappers/Python/conda-recipe/build.sh + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${libcilreg_Install_Dir} + DEPENDS + ${${proj}_DEPENDENCIES} + ) + endif() + + + set(${proj}_ROOT ${${proj}_SOURCE_DIR}) + set(${proj}_INCLUDE_DIR ${${proj}_SOURCE_DIR}) + + else() + if(${USE_SYSTEM_${externalProjName}}) + find_package(${proj} ${${externalProjName}_REQUIRED_VERSION} REQUIRED) + message("USING the system ${externalProjName}, set ${externalProjName}_DIR=${${externalProjName}_DIR}") + endif() + ExternalProject_Add_Empty(${proj} DEPENDS "${${proj}_DEPENDENCIES}" + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + ) + endif() + + mark_as_superbuild( + VARS + ${externalProjName}_DIR:PATH + LABELS + "FIND_PACKAGE" + ) diff --git a/SuperBuild/External_CIL.cmake b/SuperBuild/External_CIL.cmake new file mode 100644 index 0000000..c8c813b --- /dev/null +++ b/SuperBuild/External_CIL.cmake @@ -0,0 +1,55 @@ +#======================================================================== +# Author: Benjamin A Thomas +# Author: Kris Thielemans +# Author: Edoardo Pasca +# Copyright 2017 University College London +# Copyright 2017 STFC +# +# This file is part of the CCP PETMR Synergistic Image Reconstruction Framework (SIRF) SuperBuild. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0.txt +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +#========================================================================= + +#This needs to be unique globally +set(proj CIL) + +# Set dependency list +set(${proj}_DEPENDENCIES CCPi-Framework CCPi-RGL) + +# Include dependent projects if any +ExternalProject_Include_Dependencies(${proj} DEPENDS_VAR ${proj}_DEPENDENCIES) + +# Set external name (same as internal for now) +set(externalProjName ${proj}) + +set(${proj}_SOURCE_DIR "${SOURCE_ROOT_DIR}/${proj}" ) +set(${proj}_BINARY_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/build" ) +set(${proj}_DOWNLOAD_DIR "${SUPERBUILD_WORK_DIR}/downloads/${proj}" ) +set(${proj}_STAMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/stamp" ) +set(${proj}_TMP_DIR "${SUPERBUILD_WORK_DIR}/builds/${proj}/tmp" ) + + ExternalProject_Add_Empty(${proj} DEPENDS "${${proj}_DEPENDENCIES}" + SOURCE_DIR ${${proj}_SOURCE_DIR} + BINARY_DIR ${${proj}_BINARY_DIR} + DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} + STAMP_DIR ${${proj}_STAMP_DIR} + TMP_DIR ${${proj}_TMP_DIR} + ) + + mark_as_superbuild( + VARS + ${externalProjName}_DIR:PATH + LABELS + "FIND_PACKAGE" + ) diff --git a/SuperBuild/External_glog.cmake b/SuperBuild/External_glog.cmake index ac16d81..b1da568 100644 --- a/SuperBuild/External_glog.cmake +++ b/SuperBuild/External_glog.cmake @@ -51,7 +51,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr ExternalProject_Add(${proj} ${${proj}_EP_ARGS} GIT_REPOSITORY ${${proj}_URL} - GIT_TAG ${STIR_TAG} + GIT_TAG ${${proj}_TAG} SOURCE_DIR ${${proj}_SOURCE_DIR} BINARY_DIR ${${proj}_BINARY_DIR} DOWNLOAD_DIR ${${proj}_DOWNLOAD_DIR} diff --git a/env_ccppetmr.csh.in b/env_ccppetmr.csh.in index d5ae7ce..b39989f 100755 --- a/env_ccppetmr.csh.in +++ b/env_ccppetmr.csh.in @@ -24,7 +24,7 @@ endif ##### Environment variables for Matlab @ENV_MATLAB_CSH@ -set path=( $path @CCPPETMR_INSTALL@/bin ) +set path=( @CCPPETMR_INSTALL@/bin $path ) # Export Gadgetron Home @ENV_GADGETRON_HOME_CSH@ diff --git a/env_ccppetmr.sh.in b/env_ccppetmr.sh.in index 0025676..f2d2fa2 100755 --- a/env_ccppetmr.sh.in +++ b/env_ccppetmr.sh.in @@ -20,7 +20,7 @@ export DYLD_FALLBACK_LIBRARY_PATH ##### Environment variables for Matlab @ENV_MATLAB_BASH@ -PATH=$PATH:@CCPPETMR_INSTALL@/bin +PATH=@CCPPETMR_INSTALL@/bin:$PATH # Export Gadgetron Home @ENV_GADGETRON_HOME_SH@ diff --git a/version_config.cmake b/version_config.cmake index 03fe57c..5ba1e9a 100644 --- a/version_config.cmake +++ b/version_config.cmake @@ -118,8 +118,17 @@ if (DEVEL_BUILD) set(DEFAULT_ACE_URL https://github.com/paskino/libace-conda) set(DEFAULT_ACE_TAG origin/master) + # CCPi CIL + set(DEFAULT_CCPi-Framework_URL https://github.com/vais-ral/CCPi-Framework.git) + set(DEFAULT_CCPi-Framework_TAG origin/master) + set(DEFAULT_CCPi-RGL_URL https://github.com/vais-ral/CCPi-Regularisation-Toolkit.git) + set(DEFAULT_CCPi-RGL_TAG origin/master) + set(DEFAULT_CCPi-FrameworkPlugins_URL https://github.com/vais-ral/CCPi-FrameworkPlugins.git) + set(DEFAULT_CCPi-FrameworkPlugins_TAG origin/master) + else() - set(DEFAULT_SIRF_TAG v1.1.1) + set(DEFAULT_SIRF_URL https://github.com/CCPPETMR/Hackathon-SIRF ) + set(DEFAULT_SIRF_TAG origin/convert_spdhg_to_cil) ## STIR set(DEFAULT_STIR_URL https://github.com/UCL/STIR ) @@ -150,6 +159,15 @@ else() set(DEFAULT_ACE_URL https://github.com/paskino/libace-conda) set(DEFAULT_ACE_TAG origin/master) + + # CCPi CIL + set(DEFAULT_CCPi-Framework_URL https://github.com/vais-ral/CCPi-Framework.git) + set(DEFAULT_CCPi-Framework_TAG origin/master) + set(DEFAULT_CCPi-RGL_URL https://github.com/vais-ral/CCPi-Regularisation-Toolkit.git) + set(DEFAULT_CCPi-RGL_TAG origin/master) + set(DEFAULT_CCPi-FrameworkPlugins_URL https://github.com/vais-ral/CCPi-FrameworkPlugins.git) + set(DEFAULT_CCPi-FrameworkPlugins_TAG origin/master) + endif() @@ -179,9 +197,20 @@ SET(glog_TAG ${DEFAULT_glog_TAG} CACHE STRING ON) set(ACE_URL ${DEFAULT_ACE_URL} CACHE STRING ON) set(ACE_TAG ${DEFAULT_ACE_TAG} CACHE STRING ON) +set(CCPi-RGL_URL ${DEFAULT_CCPi-RGL_URL} CACHE STRING ON) +set(CCPi-RGL_TAG ${DEFAULT_CCPi-RGL_TAG} CACHE STRING ON) +set(CCPi-Framework_URL ${DEFAULT_CCPi-Framework_URL} CACHE STRING ON) +set(CCPi-Framework_TAG ${DEFAULT_CCPi-Framework_TAG} CACHE STRING ON) +set(CCPi-FrameworkPlugins_URL ${DEFAULT_CCPi-FrameworkPlugins_URL} CACHE STRING ON) +set(CCPi-FrameworkPlugins_TAG ${DEFAULT_CCPi-FrameworkPlugins_TAG} CACHE STRING ON) + mark_as_advanced(SIRF_URL SIRF_TAG STIR_URL STIR_TAG Gadgetron_URL Gadgetron_TAG siemens_to_ismrmrd_URL siemens_to_ismrmrd_TAG ISMRMRD_URL ISMRMRD_TAG petmr_rd_tools_URL petmr_rd_tools_TAG - glog_URL glog_TAG) + glog_URL glog_TAG + CCPi-Framework_URL CCPi-Framework_TAG + CCPi-FrameworkPlugins_URL CCPi-FrameworkPlugins_TAG + CCPi-RGL_URL CCPi-RGL_TAG +)