ITKPythonPackage
ITKPythonPackage copied to clipboard
Update Windows script argument parsing to match Linux and macOS
Summary
Linux and macOS module build scripts accept "-c" and "-x" command line options along with positional arguments for Python versions and assorted environment variables documented in script headers. See manylinux-build-module-wheels.sh) for parsing.
Meanwhile Windows scripts use a different convention with distinct long arguments and trailing CMake parameters to accomplish the same functionality. See windows_build_module_wheels.py.
The following changes are requested:
- Update Windows script argument handling to match conventions laid out in Linux and macOS scripts
- If necessary, introduce arguments from Windows script parsing back to Linux and macOS scripts
Other Notes
See original discussion: https://github.com/InsightSoftwareConsortium/ITKPythonPackage/pull/248#discussion_r1065407914
While working on InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction#58, I had a quick look at at how to use parameters in powershell but that does not seem so straightforward to convert PowerShell parameters to Python argparse parameters. Maybe bash should be used instead of Powershell for windows-download-cache-and-build-module-wheels.ps1
?
@SimonRit To my knowledge the two reasons that we use PowerShell for Windows build scripts are:
- Easy development environment setup with
Launch-VSDevShell.ps1
(see https://github.com/InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/blob/main/.github/workflows/build-test-package-python.yml#L233) - Calling the
scikit-ci-addons
PowerShell script to fetch Python versions (see https://github.com/InsightSoftwareConsortium/ITKPythonPackage/blob/master/scripts/windows-download-cache-and-build-module-wheels.ps1#L44)
I agree that it would be interesting to investigate the difficulty involved with porting the Windows build procedure to bash.