set(proj python-scipy) # Set dependency list set(${proj}_DEPENDENCIES python python-ensurepip python-numpy python-pip python-setuptools python-wheel ) if(NOT DEFINED Slicer_USE_SYSTEM_${proj}) set(Slicer_USE_SYSTEM_${proj} ${Slicer_USE_SYSTEM_python}) endif() # Include dependent projects if any ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES) if(Slicer_USE_SYSTEM_${proj}) foreach(module_name IN ITEMS scipy) ExternalProject_FindPythonPackage( MODULE_NAME "${module_name}" REQUIRED ) endforeach() endif() if(NOT Slicer_USE_SYSTEM_${proj}) set(requirements_file ${CMAKE_BINARY_DIR}/${proj}-requirements.txt) file(WRITE ${requirements_file} [===[ # Hashes correspond to the following packages: # - scipy-1.3.1-cp36-cp36m-win_amd64.whl # - scipy-1.3.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl # - scipy-1.3.1-cp36-cp36m-manylinux1_x86_64.whl scipy==1.3.1 --hash=sha256:a81da2fe32f4eab8b60d56ad43e44d93d392da228a77e229e59b51508a00299c \ --hash=sha256:46a5e55850cfe02332998b3aef481d33f1efee1960fe6cfee0202c7dd6fc21ab \ --hash=sha256:75b513c462e58eeca82b22fc00f0d1875a37b12913eee9d979233349fce5c8b2 ]===]) ExternalProject_Add(${proj} ${${proj}_EP_ARGS} DOWNLOAD_COMMAND "" SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj} BUILD_IN_SOURCE 1 CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND ${PYTHON_EXECUTABLE} -m pip install --require-hashes -r ${requirements_file} LOG_INSTALL 1 DEPENDS ${${proj}_DEPENDENCIES} ) ExternalProject_GenerateProjectDescription_Step(${proj} VERSION ${_version} ) else() ExternalProject_Add_Empty(${proj} DEPENDS ${${proj}_DEPENDENCIES}) endif()