@@ -49,6 +49,7 @@ tbb_dir=/work/oneTBB-prefix/lib/cmake/TBB
4949sudo ldconfig
5050export LD_LIBRARY_PATH=${LD_LIBRARY_PATH} :/work/oneTBB-prefix/lib:/usr/lib:/usr/lib64
5151
52+ # TODO: More work is required to re-enable this feature.
5253SINGLE_WHEEL=0
5354
5455# Compile wheels re-using standalone project and archive cache
@@ -67,8 +68,7 @@ for PYBIN in "${PYBINARIES[@]}"; do
6768 compile_flags=" -O3 -DNDEBUG"
6869 source_path=/work/ITK-source/ITK
6970 build_path=/work/ITK-$( basename $( dirname ${PYBIN} ) ) -manylinux${MANYLINUX_VERSION} _${ARCH}
70- SETUP_PY_CONFIGURE=" ${script_dir} /../setup_py_configure.py"
71- SKBUILD_CMAKE_INSTALL_PREFIX=$( ${Python3_EXECUTABLE} -c " from skbuild.constants import CMAKE_INSTALL_DIR; print(CMAKE_INSTALL_DIR)" )
71+ PYPROJECT_CONFIGURE=" ${script_dir} /../pyproject_configure.py"
7272
7373 # Clean up previous invocations
7474 rm -rf ${build_path}
@@ -80,28 +80,26 @@ for PYBIN in "${PYBINARIES[@]}"; do
8080 echo " #"
8181
8282 # Configure setup.py
83- ${PYBIN} /python ${SETUP_PY_CONFIGURE } " itk"
83+ ${PYBIN} /python ${PYPROJECT_CONFIGURE } " itk"
8484 # Generate wheel
85- ${PYBIN} /python setup.py bdist_wheel -G Ninja -- \
86- -DITK_SOURCE_DIR:PATH=${source_path} \
87- -DITK_BINARY_DIR:PATH=${build_path} \
88- -DITKPythonPackage_ITK_BINARY_REUSE:BOOL=OFF \
89- -DITKPythonPackage_WHEEL_NAME:STRING=" itk" \
90- -DITK_WRAP_unsigned_short:BOOL=ON \
91- -DITK_WRAP_double:BOOL=ON \
92- -DITK_WRAP_complex_double:BOOL=ON \
93- -DITK_WRAP_IMAGE_DIMS:STRING=" 2;3;4" \
94- -DCMAKE_CXX_COMPILER_TARGET:STRING=$( uname -m) -linux-gnu \
95- -DCMAKE_CXX_FLAGS:STRING=" $compile_flags " \
96- -DCMAKE_C_FLAGS:STRING=" $compile_flags " \
97- -DCMAKE_BUILD_TYPE:STRING=" ${build_type} " \
98- -DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
99- -DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
100- -DModule_ITKTBB:BOOL=ON \
101- -DTBB_DIR:PATH=${tbb_dir} \
102- -DITK_WRAP_DOC:BOOL=ON
103- # Cleanup
104- ${PYBIN} /python setup.py clean
85+ ${PYBIN} /python -m pip \
86+ --verbose \
87+ wheel \
88+ --wheel-dir dist \
89+ --no-deps \
90+ --config-settings=cmake.define.ITK_SOURCE_DIR:PATH=${source_path} \
91+ --config-settings=cmake.define.ITK_BINARY_DIR:PATH=${build_path} \
92+ --config-settings=cmake.define.ITKPythonPackage_ITK_BINARY_REUSE:BOOL=OFF \
93+ --config-settings=cmake.define.ITKPythonPackage_WHEEL_NAME:STRING=itk \
94+ --config-settings=cmake.define.CMAKE_CXX_COMPILER_TARGET:STRING=$( uname -m) -linux-gnu \
95+ " --config-settings=cmake.define.CMAKE_CXX_FLAGS:STRING=$compile_flags " \
96+ " --config-settings=cmake.define.CMAKE_C_FLAGS:STRING=$compile_flags " \
97+ " --config-settings=cmake.define.CMAKE_BUILD_TYPE:STRING=${build_type} " \
98+ --config-settings=cmake.define.Python3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
99+ --config-settings=cmake.define.Python3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
100+ --config-settings=cmake.define.Module_ITKTBB:BOOL=ON \
101+ --config-settings=cmake.define.TBB_DIR:PATH=${tbb_dir} \
102+ .
105103
106104 else
107105
@@ -145,26 +143,23 @@ for PYBIN in "${PYBINARIES[@]}"; do
145143 wheel_names=$( cat ${script_dir} /../WHEEL_NAMES.txt)
146144 for wheel_name in ${wheel_names} ; do
147145 # Configure setup.py
148- ${PYBIN} /python ${SETUP_PY_CONFIGURE } ${wheel_name}
146+ ${PYBIN} /python ${PYPROJECT_CONFIGURE } ${wheel_name}
149147 # Generate wheel
150- ${PYBIN} /python setup.py bdist_wheel -G Ninja -- \
151- -DITK_SOURCE_DIR:PATH=${source_path} \
152- -DITK_BINARY_DIR:PATH=${build_path} \
153- -DITKPythonPackage_ITK_BINARY_REUSE:BOOL=ON \
154- -DITKPythonPackage_WHEEL_NAME:STRING=${wheel_name} \
155- -DITK_WRAP_unsigned_short:BOOL=ON \
156- -DITK_WRAP_double:BOOL=ON \
157- -DITK_WRAP_complex_double:BOOL=ON \
158- -DITK_WRAP_IMAGE_DIMS:STRING=" 2;3;4" \
159- -DPython3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
160- -DPython3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
161- -DCMAKE_BUILD_TYPE:STRING=" ${build_type} " \
162- -DCMAKE_CXX_FLAGS:STRING=" ${compile_flags} " \
163- -DCMAKE_C_FLAGS:STRING=" ${compile_flags} " \
164- -DITK_WRAP_DOC:BOOL=ON \
148+ ${PYBIN} /python -m pip \
149+ --verbose \
150+ wheel \
151+ --wheel-dir dist \
152+ --no-deps \
153+ --config-settings=cmake.define.ITK_SOURCE_DIR:PATH=${source_path} \
154+ --config-settings=cmake.define.ITK_BINARY_DIR:PATH=${build_path} \
155+ --config-settings=cmake.define.ITKPythonPackage_ITK_BINARY_REUSE:BOOL=ON \
156+ --config-settings=cmake.define.ITKPythonPackage_WHEEL_NAME:STRING=${wheel_name} \
157+ --config-settings=cmake.define.Python3_EXECUTABLE:FILEPATH=${Python3_EXECUTABLE} \
158+ --config-settings=cmake.define.Python3_INCLUDE_DIR:PATH=${Python3_INCLUDE_DIR} \
159+ --config-settings=cmake.define.CMAKE_CXX_FLAGS:STRING=" ${compile_flags} " \
160+ --config-settings=cmake.define.CMAKE_C_FLAGS:STRING=" ${compile_flags} " \
161+ . \
165162 || exit 1
166- # Cleanup
167- ${PYBIN} /python setup.py clean
168163 done
169164 fi
170165
@@ -178,37 +173,15 @@ done
178173if test " ${ARCH} " == " x64" ; then
179174 sudo /opt/python/cp39-cp39/bin/pip3 install auditwheel wheel
180175 # This step will fixup the wheel switching from 'linux' to 'manylinux<version>' tag
181- for whl in dist/itk_* linux_$( uname -m ) .whl; do
176+ for whl in dist/itk_* linux_* .whl; do
182177 /opt/python/cp39-cp39/bin/auditwheel repair --plat manylinux${MANYLINUX_VERSION} _x86_64 ${whl} -w /work/dist/
183- rm ${whl}
184178 done
185179else
186180 for whl in dist/itk_* $( uname -m) .whl; do
187181 auditwheel repair ${whl} -w /work/dist/
188182 rm ${whl}
189183 done
190184fi
191- itk_core_whl=$( ls dist/itk_core* whl | head -n 1)
192- repaired_plat1=$( echo $itk_core_whl | cut -d- -f5 | cut -d. -f1)
193- repaired_plat2=$( echo $itk_core_whl | cut -d- -f5 | cut -d. -f2)
194- for itk_wheel in dist/itk* -linux* .whl; do
195- mkdir -p unpacked_whl packed_whl
196- /opt/python/cp39-cp39/bin/wheel unpack -d unpacked_whl ${itk_wheel}
197- version=$( echo ${itk_wheel} | cut -d- -f3-4)
198- echo " Wheel-Version: 1.0" > unpacked_whl/itk-* /* .dist-info/WHEEL
199- echo " Generator: skbuild 0.8.1" >> unpacked_whl/itk-* /* .dist-info/WHEEL
200- echo " Root-Is-Purelib: false" >> unpacked_whl/itk-* /* .dist-info/WHEEL
201- echo " Tag: ${version} -${repaired_plat1} " >> unpacked_whl/itk-* /* .dist-info/WHEEL
202- echo " Tag: ${version} -${repaired_plat2} " >> unpacked_whl/itk-* /* .dist-info/WHEEL
203- echo " " >> unpacked_whl/itk-* /* .dist-info/WHEEL
204- /opt/python/cp39-cp39/bin/wheel pack -d packed_whl ./unpacked_whl/itk-*
205- mv packed_whl/* .whl dist/
206- rm -rf unpacked_whl packed_whl ${itk_wheel}
207- done
208-
209- for itk_wheel in dist/itk* .whl.whl; do
210- mv $itk_wheel dist/$( basename $itk_wheel .whl)
211- done
212185
213186# Install packages and test
214187for PYBIN in " ${PYBINARIES[@]} " ; do
@@ -219,3 +192,5 @@ for PYBIN in "${PYBINARIES[@]}"; do
219192 (cd $HOME && ${PYBIN} /python -c ' import itkConfig; itkConfig.LazyLoading = False; import itk;' )
220193 (cd $HOME && ${PYBIN} /python ${script_dir} /../../docs/code/test.py )
221194done
195+
196+ rm -f dist/numpy* .whl
0 commit comments