Skip to content

Commit edf94cd

Browse files
author
Francois Budin
authored
Merge pull request #84 from fbudin69500/Build_Python_doc
ENH: Generate Python docstrings from Doxygen documentation
2 parents b0459f2 + bbf5b78 commit edf94cd

8 files changed

+34
-5
lines changed

CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ if(ITKPythonPackage_SUPERBUILD)
146146
message(STATUS "SuperBuild - PYTHON_LIBRARY: ${PYTHON_LIBRARY}")
147147
message(STATUS "SuperBuild - PYTHON_EXECUTABLE: ${PYTHON_EXECUTABLE}")
148148
message(STATUS "SuperBuild - Searching for python[OK]")
149+
message(STATUS "SuperBuild - DOXYGEN_EXECUTABLE: ${DOXYGEN_EXECUTABLE}")
149150

150151
#-----------------------------------------------------------------------------
151152
# ITK: This project builds ITK and associated Python modules
@@ -185,6 +186,8 @@ if(ITKPythonPackage_SUPERBUILD)
185186
-DITK_WRAP_PYTHON:BOOL=ON
186187
-DITK_WRAP_PYTHON_LEGACY:BOOL=OFF
187188
-DITK_WRAP_unsigned_short:BOOL=ON
189+
-DITK_WRAP_DOC:BOOL=ON
190+
-DDOXYGEN_EXECUTABLE:FILEPATH=${DOXYGEN_EXECUTABLE}
188191
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR}
189192
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}
190193
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE}

scripts/dockcross-manylinux-build-module-wheels.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ script_dir=$(cd $(dirname $0) || exit 1; pwd)
2222

2323
# Build wheels
2424
mkdir -p dist
25-
DOCKER_ARGS="-v $(pwd)/dist:/work/dist/ -v "$script_dir/..":/ITKPythonPackage"
25+
DOCKER_ARGS="-v $(pwd)/dist:/work/dist/ -v "$script_dir/..":/ITKPythonPackage -v $(pwd}/tools:/tools"
2626
/tmp/dockcross-manylinux-x64 \
2727
-a "$DOCKER_ARGS" \
2828
"/ITKPythonPackage/scripts/internal/manylinux-build-module-wheels.sh" "$@"

scripts/dockcross-manylinux-download-cache-and-build-module-wheels.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,8 @@ curl -L https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/do
1111
./zstd-1.2.0-linux/bin/unzstd ITKPythonBuilds-linux.tar.zst -o ITKPythonBuilds-linux.tar
1212
tar xf ITKPythonBuilds-linux.tar
1313

14+
mkdir tools
15+
wget -L http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.11.linux.bin.tar.gz -O doxygen-1.8.11.linux.bin.tar.gz
16+
tar -xvzf doxygen-1.8.11.linux.bin.tar.gz -C tools
17+
1418
./ITKPythonPackage/scripts/dockcross-manylinux-build-module-wheels.sh

scripts/internal/manylinux-build-wheels.sh

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@ PYTHON_LIBRARY=""
99

1010
script_dir=$(cd $(dirname $0) || exit 1; pwd)
1111
source "${script_dir}/manylinux-build-common.sh"
12+
# Install prerequirements
13+
mkdir -p /work/tools
14+
pushd /work/tools > /dev/null 2>&1
15+
wget -L http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.11.linux.bin.tar.gz -O doxygen-1.8.11.linux.bin.tar.gz
16+
tar -xvzf doxygen-1.8.11.linux.bin.tar.gz
17+
popd > /dev/null 2>&1
1218
# -----------------------------------------------------------------------
1319

1420
# Build standalone project and populate archive cache
@@ -64,7 +70,9 @@ for PYBIN in "${PYBINARIES[@]}"; do
6470
-DCMAKE_CXX_COMPILER_TARGET:STRING=$(uname -p)-linux-gnu \
6571
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} \
6672
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} \
67-
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}
73+
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} \
74+
-DITK_WRAP_DOC:BOOL=ON \
75+
-DDOXYGEN_EXECUTABLE:FILEPATH=/work/tools/doxygen-1.8.11/bin/doxygen
6876
# Cleanup
6977
${PYBIN}/python setup.py clean
7078

@@ -94,6 +102,8 @@ for PYBIN in "${PYBINARIES[@]}"; do
94102
-DITK_LEGACY_SILENT:BOOL=ON \
95103
-DITK_WRAP_PYTHON:BOOL=ON \
96104
-DITK_WRAP_PYTHON_LEGACY:BOOL=OFF \
105+
-DITK_WRAP_DOC:BOOL=ON \
106+
-DDOXYGEN_EXECUTABLE:FILEPATH=/work/tools/doxygen-1.8.11/bin/doxygen \
97107
-G Ninja \
98108
${source_path} \
99109
&& ninja \
@@ -114,6 +124,8 @@ for PYBIN in "${PYBINARIES[@]}"; do
114124
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} \
115125
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} \
116126
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} \
127+
-DITK_WRAP_DOC:BOOL=ON \
128+
-DDOXYGEN_EXECUTABLE:FILEPATH=/work/tools/doxygen-1.8.11/bin/doxygen \
117129
|| exit 1
118130
# Cleanup
119131
${PYBIN}/python setup.py clean

scripts/macpython-build-wheels.sh

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,10 @@ SCRIPT_DIR=""
1818
script_dir=$(cd $(dirname $0) || exit 1; pwd)
1919
source "${script_dir}/macpython-build-common.sh"
2020
# -----------------------------------------------------------------------
21-
21+
# Ensure that requirements are met
22+
brew update
23+
brew install doxygen
24+
# -----------------------------------------------------------------------
2225
# Remove previous virtualenv's
2326
rm -rf ${SCRIPT_DIR}/../venvs
2427
# Create virtualenv's
@@ -99,7 +102,8 @@ for VENV in "${VENVS[@]}"; do
99102
-DITK_WRAP_unsigned_short:BOOL=ON \
100103
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} \
101104
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} \
102-
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY}
105+
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} \
106+
-DITK_WRAP_DOC:BOOL=ON
103107
# Cleanup
104108
${PYTHON_EXECUTABLE} setup.py clean
105109

@@ -130,6 +134,7 @@ for VENV in "${VENVS[@]}"; do
130134
-DITK_LEGACY_SILENT:BOOL=ON \
131135
-DITK_WRAP_PYTHON:BOOL=ON \
132136
-DITK_WRAP_PYTHON_LEGACY:BOOL=OFF \
137+
-DITK_WRAP_DOC:BOOL=ON \
133138
-G Ninja \
134139
${source_path} \
135140
&& ninja\
@@ -152,6 +157,7 @@ for VENV in "${VENVS[@]}"; do
152157
-DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} \
153158
-DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} \
154159
-DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} \
160+
-DITK_WRAP_DOC:BOOL=ON \
155161
|| exit 1
156162
# Cleanup
157163
${PYTHON_EXECUTABLE} setup.py clean

scripts/macpython-download-cache-and-build-module-wheels.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# it is used by the .travis.yml file contained in ITKModuleTemplate: https://github.com/InsightSoftwareConsortium/ITKModuleTemplate
55

66
brew update
7-
brew install zstd aria2 gnu-tar
7+
brew install zstd aria2 gnu-tar doxygen
88
aria2c -c --file-allocation=none -o ITKPythonBuilds-macosx.tar.zst -s 10 -x 10 https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/${ITK_PACKAGE_VERSION:=v4.12.0.post1}/ITKPythonBuilds-macosx.tar.zst
99
unzstd ITKPythonBuilds-macosx.tar.zst -o ITKPythonBuilds-macosx.tar
1010
PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH"

scripts/windows-download-cache-and-build-module-wheels.ps1

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,6 @@ set-alias sz "$env:ProgramFiles\7-Zip\7z.exe"
44
iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/scikit-build/scikit-ci-addons/master/windows/install-python.ps1'))
55
Invoke-WebRequest -Uri "https://github.com/InsightSoftwareConsortium/ITKPythonBuilds/releases/download/v4.12.0.post1/ITKPythonBuilds-windows.zip" -OutFile "ITKPythonBuilds-windows.zip"
66
sz x ITKPythonBuilds-windows.zip -oC:\P -aoa -r
7+
Invoke-WebRequest -Uri "http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.11.windows.bin.zip" -OutFile "doxygen-1.8.11.windows.bin.zip"
8+
sz x doxygen-1.8.11.windows.bin.zip -oC:\P\doxygen -aoa -r
79
C:\Python27-x64\python.exe C:\P\IPP\scripts\windows_build_module_wheels.py

scripts/windows_build_wheels.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@ def build_wrapped_itk(
9696
"-DITK_LEGACY_SILENT:BOOL=ON",
9797
"-DITK_WRAP_PYTHON:BOOL=ON",
9898
"-DITK_WRAP_PYTHON_LEGACY:BOOL=OFF",
99+
"-DITK_WRAP_DOC:BOOL=ON",
100+
"-DDOXYGEN_EXECUTABLE:FILEPATH=C:/P/doxygen/doxygen.exe",
99101
"-G", "Ninja",
100102
source_path
101103
])

0 commit comments

Comments
 (0)