Skip to content

Commit 25e4f60

Browse files
committed
DOC: Update readthedocs for iterative module dependencies
1 parent db91b45 commit 25e4f60

File tree

1 file changed

+37
-2
lines changed

1 file changed

+37
-2
lines changed

docs/Build_ITK_Module_Python_packages.rst

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ can be found in the `ITK Software Guide
3636
GitHub automated CI package builds
3737
==================================
3838

39-
Freely available GitHub Action continous integration (CI) build and test
39+
Freely available GitHub Actions continous integration (CI) build and test
4040
services for open source repositories are provided by
4141
`GitHub <https://github.com/>`_. These services will build and test the C++
4242
code for your module and also generate Linux, macOS, and Windows Python
@@ -52,6 +52,11 @@ Section.
5252
.. figure:: images/GitHubActionArtifacts.png
5353
:alt: GitHub Action Artifacts
5454

55+
Reusable workflows available in
56+
[ITKRemoteModuleBuildTestPackageAction](https://github.com/InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction)
57+
can be used to handle the build-test-package process
58+
for a majority of ITK external modules with minimal extra development.
59+
5560
Upload the packages to PyPI
5661
----------------------------
5762

@@ -188,7 +193,7 @@ Then, build the wheels::
188193
Windows
189194
-------
190195

191-
First, install Microsoft Visual Studio 2015, Git, and CMake, which should be added to the system PATH environmental variable.
196+
First, install Microsoft Visual Studio 2022, Git, and CMake, which should be added to the system PATH environmental variable.
192197

193198
Open a PowerShell terminal as Administrator, and install Python::
194199

@@ -201,3 +206,33 @@ In a PowerShell prompt, run the `windows-build-wheels.ps1` script::
201206
PS C:\Windows> cd C:\ITKMyModule
202207
PS C:\ITKMyModule> git clone https://github.com/InsightSoftwareConsortium/ITKPythonPackage.git IPP
203208
PS C:\ITKMyModule> .\ITKPythonPackage\scripts\windows-download-cache-and-build-module-wheels.ps1
209+
210+
Other Notes
211+
-----------
212+
213+
ITK modules sometimes depend on third-party libraries. To include third-party libraries
214+
in development wheels for distribution, first add the library path to `LD_LIBRARY_PATH`
215+
on Linux, `DYLD_LIBRARY_PATH` on MacOS, or `PATH` on Windows. Then, run the platform
216+
build script.
217+
218+
ITK modules sometimes depend on other ITK modules. For instance, to build
219+
[ITKBSplineGradient](https://github.com/InsightSoftwareConsortium/ITKBSplineGradient)
220+
the user must first build ITK and then [ITKMeshToPolyData](https://github.com/InsightSoftwareConsortium/ITKmeshtopolydata).
221+
ITKPythonPackage scripts support iterative prerequisite ITK module dependencies with the `ITK_MODULE_PREQ`
222+
environment variable.
223+
224+
For Python build scripts, the ordered list of ITK module dependencies must be formatted as follows:
225+
226+
```
227+
ITK_MODULE_PREQ=<module_org>/<module_name>@<module_tag>:<module_org>/<module_name>@<module_tag>:...
228+
```
229+
230+
Where
231+
- `module_org` is the name of a Github organization to use to fetch the module, i.e. "InsightSoftwareConsortium";
232+
- `module_name` is the name of the module, i.e. "ITKMeshToPolyData";
233+
- `module_tag` is the git tag or commit hash to use to fetch the module, i.e. "v1.0.0"
234+
235+
Module names must be provided in order of dependencies for the build to succeed.
236+
237+
For more information see the
238+
[build scripts directory](https://github.com/InsightSoftwareConsortium/ITKPythonPackage/tree/master/scripts).

0 commit comments

Comments
 (0)