Skip to content

Commit

Permalink
Merge pull request #473 from KrisThielemans/FixPython
Browse files Browse the repository at this point in the history
fix/simplify Python CMake arguments

Fixes #472 
Fixes #448
  • Loading branch information
KrisThielemans authored Jan 18, 2021
2 parents 199921c + b35c453 commit cfecb01
Show file tree
Hide file tree
Showing 9 changed files with 44 additions and 43 deletions.
3 changes: 2 additions & 1 deletion CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# ChangeLog
## v#.#.#
- Enabled HDF5 support for STIR by default (build C++ libraries for HDF5)
- Add option BULD_TESTING_JSON (default OFF)
- Fix some issues with finding Python [#472](https://github.com/SyneRBI/SIRF-SuperBuild/issues/472)
- Add option `BUILD_TESTING_JSON` (default OFF)
- Updated versions:
- JSON: 3.9.1
- SWIG: 4.0.2
Expand Down
22 changes: 16 additions & 6 deletions SuperBuild.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,21 @@ else()
CONDA: do nothing")
set_property(CACHE PYTHON_STRATEGY PROPERTY STRINGS PYTHONPATH SETUP_PY CONDA)
endif()

# set PYTHONLIBS_CMAKE_ARGS to be used in the ExternalProject_add calls
# note: Find_package(PythonLibs) takes PYTHON_INCLUDE_DIR and PYTHON_LIBRARY as input
set (PYTHONLIBS_CMAKE_ARGS -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE})
if (EXISTS ${PYTHON_INCLUDE_DIR})
set (PYTHONLIBS_CMAKE_ARGS ${PYTHONLIBS_CMAKE_ARGS}
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR})
endif()
if (EXISTS ${PYTHON_LIBRARY})
set (PYTHONLIBS_CMAKE_ARGS ${PYTHONLIBS_CMAKE_ARGS}
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY})
endif()


message(STATUS "PYTHONLIBS_CMAKE_ARGS= " "${PYTHONLIBS_CMAKE_ARGS}")
endif()

#### MATLAB support
Expand Down Expand Up @@ -232,8 +247,7 @@ option(BUILD_pet_rd_tools "Build pet_rd_tools" OFF)
option(BUILD_CIL "Build CCPi CIL Modules and ASTRA engine" OFF)
option(BUILD_CIL_LITE "Build CCPi CIL Modules" OFF)
option(BUILD_NIFTYREG "Build NIFTYREG" ON)
option(BUILD_SIRF_Contribs "Build SIRF-Contribs" ON)

option(BUILD_SIRF_Contribs "Build SIRF-Contribs" ${BUILD_SIRF})
option(BUILD_SIRF_Registration "Build SIRFS's registration functionality" ${BUILD_NIFTYREG})
if (BUILD_SIRF AND BUILD_SIRF_Registration AND NOT BUILD_NIFTYREG)
message(WARNING "Building SIRF registration is enabled, but BUILD_NIFTYREG=OFF. Reverting to BUILD_NIFTYREG=ON")
Expand Down Expand Up @@ -313,12 +327,8 @@ message(STATUS "")
message(STATUS "Boost_CMAKE_ARGS= " "${Boost_CMAKE_ARGS}")
message(STATUS "ISMRMRD_DIR = " ${ISMRMRD_DIR})
message(STATUS "STIR_DIR = " ${STIR_DIR})
message(STATUS "HDF5_ROOT = " ${HDF5_ROOT})
message(STATUS "GTEST_ROOT = " ${GTEST_ROOT})
message(STATUS "Matlab_ROOT_DIR = " ${Matlab_ROOT_DIR})
message(STATUS "PYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}")
message(STATUS "PYTHON_LIBRARIES=${PYTHON_LIBRARIES}")
message(STATUS "PYTHON_INCLUDE_DIRS=${PYTHON_INCLUDE_DIRS}")

#Need to configure main project here.
#set(proj ${PRIMARY_PROJECT_NAME})
Expand Down
4 changes: 1 addition & 3 deletions SuperBuild/External_CCPi-Framework.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=${${proj}_TAG}
${CMAKE_COMMAND} ${${proj}_SOURCE_DIR}
-DCMAKE_INSTALL_PREFIX:PATH=${${proj}_INSTALL_DIR}
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIRS}
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARIES}
${PYTHONLIBS_CMAKE_ARGS}
-DPYTHON_DEST_DIR:PATH=${PYTHON_DEST}
-DOPENMP_INCLUDES:PATH=${OPENMP_INCLUDES}
-DCIL_VERSION:STRING=${${proj}_TAG}
Expand Down
4 changes: 1 addition & 3 deletions SuperBuild/External_CCPi-Regularisation-Toolkit.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
-DBUILD_PYTHON_WRAPPER:BOOL=ON
-DBUILD_CUDA:BOOL=${${proj}_USE_CUDA} -DCONDA_BUILD:BOOL=OFF
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIRS}
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARIES}
${PYTHONLIBS_CMAKE_ARGS}
-DPYTHON_DEST_DIR:PATH=${PYTHON_DEST}

BUILD_COMMAND ${CMAKE_COMMAND} -E env CIL_VERSION=${${proj}_TAG} ${CMAKE_COMMAND} --build .
Expand Down
4 changes: 1 addition & 3 deletions SuperBuild/External_Gadgetron.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr
-DCMAKE_INCLUDE_PATH:PATH=${SUPERBUILD_INSTALL_DIR}/include
-DCMAKE_INSTALL_PREFIX:PATH=${Gadgetron_INSTALL_DIR}
${Boost_CMAKE_ARGS}
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIRS}
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARIES}
${PYTHONLIBS_CMAKE_ARGS}
-DGTEST_ROOT:PATH=${GTEST_ROOT}
${HDF5_CMAKE_ARGS}
${FFTW3_CMAKE_ARGS}
Expand Down
41 changes: 20 additions & 21 deletions SuperBuild/External_SIRF-Contribs.cmake
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#========================================================================
# Author: Edoardo Pasca
# Copyright 2018, 2020 STFC
# Copyright 2021, University College London
#
# This file is part of the CCP SyneRBI (formerly PETMR) Synergistic Image Reconstruction Framework (SIRF) SuperBuild.
#
Expand Down Expand Up @@ -33,30 +34,28 @@ SetExternalProjectFlags(${proj})
if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalProjName}}" ) )
message(STATUS "${__indent}Adding project ${proj}")
SetGitTagAndRepo("${proj}")
if (BUILD_PYTHON)
# 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}
${${proj}_EP_ARGS_GIT}
${${proj}_EP_ARGS_DIRS}

# 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}
${${proj}_EP_ARGS_GIT}
${${proj}_EP_ARGS_DIRS}

CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${${proj}_SOURCE_DIR}/src/Python/sirf/ ${PYTHON_DEST}/sirf
)

else()
# if SETUP_PY one can launch the conda build.sh script setting
# the appropriate variables.
message(FATAL_ERROR "Only PYTHONPATH install method is currently supported")
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory ${${proj}_SOURCE_DIR}/src/Python/sirf/ ${PYTHON_DEST}/sirf
)
else()
# if SETUP_PY one can launch the conda build.sh script setting
# the appropriate variables.
message(FATAL_ERROR "Only PYTHONPATH install method is currently supported")
endif()
endif()


set(${proj}_ROOT ${${proj}_SOURCE_DIR})
set(${proj}_INCLUDE_DIR ${${proj}_SOURCE_DIR})
# any non-Python stuff here

else()
ExternalProject_Add_Empty(${proj} DEPENDS "${${proj}_DEPENDENCIES}"
Expand Down
4 changes: 1 addition & 3 deletions SuperBuild/External_SIRF.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -93,9 +93,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr
-DISMRMRD_DIR:PATH=${ISMRMRD_DIR}
-DSWIG_EXECUTABLE:FILEPATH=${SWIG_EXECUTABLE}
-DDISABLE_PYTHON:BOOL=${DISABLE_PYTHON}
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIRS}
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARIES}
${PYTHONLIBS_CMAKE_ARGS}
-DPYTHON_DEST_DIR:PATH=${PYTHON_DEST_DIR}
-DPYTHON_STRATEGY=${PYTHON_STRATEGY}
-DNIFTYREG_DIR:PATH=${NIFTYREG_DIR}
Expand Down
1 change: 1 addition & 0 deletions SuperBuild/External_STIR.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr
-DBUILD_EXECUTABLES:BOOL=${STIR_BUILD_EXECUTABLES}
-DBUILD_SWIG_PYTHON:BOOL=${STIR_BUILD_SWIG_PYTHON}
-DPYTHON_DEST:PATH=${PYTHON_DEST}
${PYTHONLIBS_CMAKE_ARGS}
-DMatlab_ROOT_DIR:PATH=${Matlab_ROOT_DIR}
-DMATLAB_DEST:PATH=${MATLAB_DEST}
-DBUILD_TESTING:BOOL=${BUILD_TESTING_${proj}}
Expand Down
4 changes: 1 addition & 3 deletions SuperBuild/External_TomoPhantom.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${externalProjName}" AND "${USE_SYSTEM_${externalPr
-DINCLUDE_DIR:PATH=${${proj}_INSTALL_DIR}/include
-DCONDA_BUILD=OFF
-DBUILD_PYTHON_WRAPPER=ON
-DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIRS}
-DPYTHON_LIBRARY=${PYTHON_LIBRARIES}
${PYTHONLIBS_CMAKE_ARGS}
-DPYTHON_DEST_DIR:PATH=${PYTHON_DEST_DIR}
-DPYTHON_STRATEGY=${PYTHON_STRATEGY}
${${proj}_EXTRA_CMAKE_ARGS_LIST}
Expand Down

0 comments on commit cfecb01

Please sign in to comment.