Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ ITK-*
libpython-not-needed-symbols-exported-by-interpreter
tools/

# back-up files when conflicts occur
*.orig

# Python
*.py[cod]

Expand Down
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,7 @@ if(ITKPythonPackage_SUPERBUILD)
endif()

message(STATUS "SuperBuild - Python3_INCLUDE_DIR: ${Python3_INCLUDE_DIR}")
message(STATUS "SuperBuild - Python3_INCLUDE_DIRS: ${Python3_INCLUDE_DIRS}")
message(STATUS "SuperBuild - Python3_LIBRARY: ${Python3_LIBRARY}")
message(STATUS "SuperBuild - Python3_EXECUTABLE: ${Python3_EXECUTABLE}")
message(STATUS "SuperBuild - Searching for python[OK]")
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,41 @@
#!/bin/bash

# This module should be pulled and run from an ITKModule root directory to generate the Linux python wheels of this module,
# it is used by the circle.yml file contained in ITKModuleTemplate: https://github.com/InsightSoftwareConsortium/ITKModuleTemplate
# it is used by the azure-pipeline.yml file contained in ITKModuleTemplate: https://github.com/InsightSoftwareConsortium/ITKModuleTemplate
# First download doxygen
if [[ ! -f doxygen-1.8.11.linux.bin.tar.gz ]]; then
mkdir tools
curl https://data.kitware.com/api/v1/file/5c0aa4b18d777f2179dd0a71/download -o doxygen-1.8.11.linux.bin.tar.gz
tar -xvzf doxygen-1.8.11.linux.bin.tar.gz -C tools
fi
if [[ ! -f ./tools/doxygen-1.8.11/bin/doxygen ]]; then
echo "ERROR: can not find required binary './tools/doxygen-1.8.11/bin/doxygen'"
exit 255
fi

curl https://data.kitware.com/api/v1/file/592dd8068d777f16d01e1a92/download -o zstd-1.2.0-linux.tar.gz
gunzip -d zstd-1.2.0-linux.tar.gz
tar xf zstd-1.2.0-linux.tar
# Packages distributed by github are in zstd format, so we need to download that binary to uncompress
if [[ ! -f zstd-1.2.0-linux.tar.gz ]]; then
curl https://data.kitware.com/api/v1/file/592dd8068d777f16d01e1a92/download -o zstd-1.2.0-linux.tar.gz
gunzip -d zstd-1.2.0-linux.tar.gz
tar xf zstd-1.2.0-linux.tar
fi
if [[ ! -f ./zstd-1.2.0-linux/bin/unzstd ]]; then
echo "ERROR: can not find required binary './zstd-1.2.0-linux/bin/unzstd'"
exit 255
fi

curl -L https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${ITK_PACKAGE_VERSION:=v5.0.1}/ITKPythonBuilds-linux.tar.zst -O
./zstd-1.2.0-linux/bin/unzstd ITKPythonBuilds-linux.tar.zst -o ITKPythonBuilds-linux.tar
tar xf ITKPythonBuilds-linux.tar

mkdir tools
curl https://data.kitware.com/api/v1/file/5c0aa4b18d777f2179dd0a71/download -o doxygen-1.8.11.linux.bin.tar.gz
tar -xvzf doxygen-1.8.11.linux.bin.tar.gz -C tools
if [[ ! -f ITKPythonBuilds-linux.tar.zst ]]; then
curl -L https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${ITK_PACKAGE_VERSION:=v5.1rc02}/ITKPythonBuilds-linux.tar.zst -O
./zstd-1.2.0-linux/bin/unzstd ./ITKPythonBuilds-linux.tar.zst -o ITKPythonBuilds-linux.tar
tar xf ITKPythonBuilds-linux.tar
fi
if [[ ! -f ./ITKPythonBuilds-linux.tar.zst ]]; then
echo "ERROR: can not find required binary './ITKPythonBuilds-linux.tar.zst'"
exit 255
fi
if [[ ! -f ./ITKPythonPackage/scripts/dockcross-manylinux-build-module-wheels.sh ]]; then
echo "ERROR: can not find required binary './ITKPythonPackage/scripts/dockcross-manylinux-build-module-wheels.sh'"
exit 255
fi

./ITKPythonPackage/scripts/dockcross-manylinux-build-module-wheels.sh
3 changes: 3 additions & 0 deletions scripts/internal/manylinux-build-module-wheels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,12 @@ source "${script_dir}/manylinux-build-common.sh"
for PYBIN in "${PYBINARIES[@]}"; do
Python3_EXECUTABLE=${PYBIN}/python
Python3_INCLUDE_DIR=$( find -L ${PYBIN}/../include/ -name Python.h -exec dirname {} \; )
Python3_INCLUDE_DIRS=${Python3_INCLUDE_DIR}

echo ""
echo "Python3_EXECUTABLE:${Python3_EXECUTABLE}"
echo "Python3_INCLUDE_DIR:${Python3_INCLUDE_DIR}"
echo "Python3_INCLUDE_DIRS:${Python3_INCLUDE_DIRS}"
echo "Python3_LIBRARY:${Python3_LIBRARY}"

if [[ -e /work/requirements-dev.txt ]]; then
Expand Down Expand Up @@ -48,6 +50,7 @@ for PYBIN in "${PYBINARIES[@]}"; do
-DBUILD_TESTING:BOOL=OFF \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
|| exit 1
${PYBIN}/python setup.py clean
Expand Down
5 changes: 5 additions & 0 deletions scripts/internal/manylinux-build-wheels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,12 @@ SINGLE_WHEEL=0
for PYBIN in "${PYBINARIES[@]}"; do
export Python3_EXECUTABLE=${PYBIN}/python3
Python3_INCLUDE_DIR=$( find -L ${PYBIN}/../include/ -name Python.h -exec dirname {} \; )
Python3_INCLUDE_DIRS=${Python3_INCLUDE_DIR}

echo ""
echo "Python3_EXECUTABLE:${Python3_EXECUTABLE}"
echo "Python3_INCLUDE_DIR:${Python3_INCLUDE_DIR}"
echo "Python3_INCLUDE_DIRS:${Python3_INCLUDE_DIRS}"
echo "Python3_LIBRARY:${Python3_LIBRARY}"

# Install dependencies
Expand Down Expand Up @@ -67,6 +69,7 @@ for PYBIN in "${PYBINARIES[@]}"; do
-DCMAKE_CXX_COMPILER_TARGET:STRING=$(uname -p)-linux-gnu \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
-DITK_WRAP_DOC:BOOL=ON \
-DDOXYGEN_EXECUTABLE:FILEPATH=/work/tools/doxygen-1.8.11/bin/doxygen
Expand All @@ -90,6 +93,7 @@ for PYBIN in "${PYBINARIES[@]}"; do
-DBUILD_TESTING:BOOL=OFF \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
-DCMAKE_CXX_COMPILER_TARGET:STRING=$(uname -p)-linux-gnu \
-DWRAP_ITK_INSTALL_COMPONENT_IDENTIFIER:STRING=PythonWheel \
Expand Down Expand Up @@ -121,6 +125,7 @@ for PYBIN in "${PYBINARIES[@]}"; do
-DITK_WRAP_double:BOOL=ON \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
-DITK_WRAP_DOC:BOOL=ON \
-DDOXYGEN_EXECUTABLE:FILEPATH=/work/tools/doxygen-1.8.11/bin/doxygen \
Expand Down
3 changes: 3 additions & 0 deletions scripts/macpython-build-module-wheels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,12 @@ for VENV in "${VENVS[@]}"; do
py_mm=$(basename ${VENV})
Python3_EXECUTABLE=${VENV}/bin/python
Python3_INCLUDE_DIR=$( find -L ${MACPYTHON_PY_PREFIX}/${py_mm}/include -name Python.h -exec dirname {} \; )
Python3_INCLUDE_DIRS=${Python3_INCLUDE_DIR}

echo ""
echo "Python3_EXECUTABLE:${Python3_EXECUTABLE}"
echo "Python3_INCLUDE_DIR:${Python3_INCLUDE_DIR}"
echo "Python3_INCLUDE_DIRS:${Python3_INCLUDE_DIRS}"
echo "Python3_LIBRARY:${Python3_LIBRARY}"

if [[ -e $PWD/requirements-dev.txt ]]; then
Expand All @@ -57,6 +59,7 @@ for VENV in "${VENVS[@]}"; do
-DBUILD_TESTING:BOOL=OFF \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
|| exit 1
${Python3_EXECUTABLE} setup.py clean
Expand Down
5 changes: 5 additions & 0 deletions scripts/macpython-build-wheels.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,12 @@ for VENV in "${VENVS[@]}"; do
py_mm=$(basename ${VENV})
export Python3_EXECUTABLE=${VENV}/bin/python
Python3_INCLUDE_DIR=$( find -L ${MACPYTHON_PY_PREFIX}/${py_mm}/include -name Python.h -exec dirname {} \; )
Python3_INCLUDE_DIRS=${Python3_INCLUDE_DIR}

echo ""
echo "Python3_EXECUTABLE:${Python3_EXECUTABLE}"
echo "Python3_INCLUDE_DIR:${Python3_INCLUDE_DIR}"
echo "Python3_INCLUDE_DIRS:${Python3_INCLUDE_DIRS}"
echo "Python3_LIBRARY:${Python3_LIBRARY}"

# Install dependencies
Expand Down Expand Up @@ -103,6 +105,7 @@ for VENV in "${VENVS[@]}"; do
-DITK_WRAP_double:BOOL=ON \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
-DITK_WRAP_DOC:BOOL=ON
# Cleanup
Expand All @@ -129,6 +132,7 @@ for VENV in "${VENVS[@]}"; do
-DITK_WRAP_double:BOOL=ON \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
-DWRAP_ITK_INSTALL_COMPONENT_IDENTIFIER:STRING=PythonWheel \
-DWRAP_ITK_INSTALL_COMPONENT_PER_MODULE:BOOL=ON \
Expand Down Expand Up @@ -158,6 +162,7 @@ for VENV in "${VENVS[@]}"; do
-DITK_WRAP_double:BOOL=ON \
-DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
-DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
-DPython3_INCLUDE_DIRS:PATH=${Python3_INCLUDE_DIRS} \
-DPython3_LIBRARY:FILEPATH=${Python3_LIBRARY} \
-DITK_WRAP_DOC:BOOL=ON \
|| exit 1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ SDK_PATH='/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/D
if test ! -e $SDK_PATH; then
sudo ln -s /Applications/Xcode_9.4.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk
fi
aria2c -c --file-allocation=none -o ITKPythonBuilds-macosx.tar.zst -s 10 -x 10 https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${ITK_PACKAGE_VERSION:=v5.0.1}/ITKPythonBuilds-macosx.tar.zst
aria2c -c --file-allocation=none -o ITKPythonBuilds-macosx.tar.zst -s 10 -x 10 https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${ITK_PACKAGE_VERSION:=v5.1rc02}/ITKPythonBuilds-macosx.tar.zst
unzstd ITKPythonBuilds-macosx.tar.zst -o ITKPythonBuilds-macosx.tar
PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"
tar xf ITKPythonBuilds-macosx.tar --checkpoint=10000 --checkpoint-action=dot
Expand Down
2 changes: 1 addition & 1 deletion scripts/windows-download-cache-and-build-module-wheels.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ if (-not (Test-Path env:APPVEYOR)) {
$pythonArch = "64"
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-build/scikit-ci-addons/master/windows/install-python.ps1'))
}
if (-not (Test-Path env:ITK_PACKAGE_VERSION)) { $env:ITK_PACKAGE_VERSION = 'v5.0.1' }
if (-not (Test-Path env:ITK_PACKAGE_VERSION)) { $env:ITK_PACKAGE_VERSION = 'v5.1rc02' }
Invoke-WebRequest -Uri "https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/$env:ITK_PACKAGE_VERSION/ITKPythonBuilds-windows.zip" -OutFile "ITKPythonBuilds-windows.zip"
sz x ITKPythonBuilds-windows.zip -oC:\P -aoa -r
Invoke-WebRequest -Uri "https://data.kitware.com/api/v1/file/5c0ad59d8d777f2179dd3e9c/download" -OutFile "doxygen-1.8.11.windows.bin.zip"
Expand Down
1 change: 1 addition & 0 deletions scripts/windows_build_module_wheels.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ def build_wheels(py_envs=DEFAULT_PY_ENVS):
"-DBUILD_TESTING:BOOL=OFF",
"-DPython3_EXECUTABLE:FILEPATH=%s" % python_executable,
"-DPython3_INCLUDE_DIR:PATH=%s" % python_include_dir,
"-DPython3_INCLUDE_DIRS:PATH=%s" % python_include_dir,
"-DPython3_LIBRARY:FILEPATH=%s" % python_library
])
# Cleanup
Expand Down
3 changes: 3 additions & 0 deletions scripts/windows_build_wheels.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ def build_wrapped_itk(
"-DITK_WRAP_unsigned_short:BOOL=ON",
"-DITK_WRAP_double:BOOL=ON",
"-DPython3_INCLUDE_DIR:PATH=%s" % python_include_dir,
"-DPython3_INCLUDE_DIRS:PATH=%s" % python_include_dir,
"-DPython3_LIBRARY:FILEPATH=%s" % python_library,
"-DWRAP_ITK_INSTALL_COMPONENT_IDENTIFIER:STRING=PythonWheel",
"-DWRAP_ITK_INSTALL_COMPONENT_PER_MODULE:BOOL=ON",
Expand Down Expand Up @@ -151,6 +152,7 @@ def build_wheel(python_version, single_wheel=False,
"-DITK_BINARY_DIR:PATH=%s" % build_path,
"-DPython3_EXECUTABLE:FILEPATH=%s" % python_executable,
"-DPython3_INCLUDE_DIR:PATH=%s" % python_include_dir,
"-DPython3_INCLUDE_DIRS:PATH=%s" % python_include_dir,
"-DPython3_LIBRARY:FILEPATH=%s" % python_library,
"-DDOXYGEN_EXECUTABLE:FILEPATH=C:/P/doxygen/doxygen.exe",
] + cmake_options)
Expand Down Expand Up @@ -192,6 +194,7 @@ def build_wheel(python_version, single_wheel=False,
"-DITKPythonPackage_WHEEL_NAME:STRING=%s" % wheel_name,
"-DPython3_EXECUTABLE:FILEPATH=%s" % python_executable,
"-DPython3_INCLUDE_DIR:PATH=%s" % python_include_dir,
"-DPython3_INCLUDE_DIRS:PATH=%s" % python_include_dir,
"-DPython3_LIBRARY:FILEPATH=%s" % python_library
] + cmake_options)

Expand Down