InsightSoftwareConsortium / ITKPythonPackage

A setup script to generate ITK Python Wheels
https://itkpythonpackage.readthedocs.io
Apache License 2.0
64 stars 22 forks source link

Update Windows script argument parsing to match Linux and macOS #250

Open tbirdso opened 1 year ago

tbirdso commented 1 year ago

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:

  1. Update Windows script argument handling to match conventions laid out in Linux and macOS scripts
  2. 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

SimonRit commented 1 year ago

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?

tbirdso commented 1 year ago

@SimonRit To my knowledge the two reasons that we use PowerShell for Windows build scripts are:

  1. Easy development environment setup with Launch-VSDevShell.ps1 (see https://github.com/InsightSoftwareConsortium/ITKRemoteModuleBuildTestPackageAction/blob/main/.github/workflows/build-test-package-python.yml#L233)
  2. 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.