eli-schwartz commented on code in PR #45854:
URL: https://github.com/apache/arrow/pull/45854#discussion_r2562204807


##########
ci/scripts/python_build.bat:
##########
@@ -110,30 +110,116 @@ ccache -sv
 
 echo "=== Building Python ==="
 set PYARROW_BUILD_TYPE=%CMAKE_BUILD_TYPE%
-set PYARROW_BUILD_VERBOSE=1
-set PYARROW_BUNDLE_ARROW_CPP=ON
-set PYARROW_CMAKE_GENERATOR=%CMAKE_GENERATOR%
-set PYARROW_WITH_ACERO=%ARROW_ACERO%
-set PYARROW_WITH_DATASET=%ARROW_DATASET%
-set PYARROW_WITH_FLIGHT=%ARROW_FLIGHT%
-set PYARROW_WITH_GANDIVA=%ARROW_GANDIVA%
-set PYARROW_WITH_GCS=%ARROW_GCS%
-set PYARROW_WITH_HDFS=%ARROW_HDFS%
-set PYARROW_WITH_ORC=%ARROW_ORC%
-set PYARROW_WITH_PARQUET=%ARROW_PARQUET%
-set PYARROW_WITH_PARQUET_ENCRYPTION=%PARQUET_REQUIRE_ENCRYPTION%
-set PYARROW_WITH_SUBSTRAIT=%ARROW_SUBSTRAIT%
-set PYARROW_WITH_S3=%ARROW_S3%
-set ARROW_HOME=%CMAKE_INSTALL_PREFIX%
-set CMAKE_PREFIX_PATH=%CMAKE_INSTALL_PREFIX%
+if %ARROW_ACERO% == ON (
+    set PYARROW_WITH_ACERO=enabled
+) else if %ARROW_ACERO% == OFF (
+    set PYARROW_WITH_ACERO=disabled
+) else (
+    set PYARROW_WITH_ACERO=auto
+)
+if %ARROW_DATASET% == ON (
+    set PYARROW_WITH_DATASET=enabled
+) else if %ARROW_DATASET% == OFF (
+    set PYARROW_WITH_DATASET=disabled
+) else (
+    set PYARROW_WITH_DATASET=auto
+)
+if %ARROW_FLIGHT% == ON (
+    set PYARROW_WITH_FLIGHT=enabled
+) else if %ARROW_FLIGHT% == OFF (
+    set PYARROW_WITH_FLIGHT=disabled
+) else (
+    set PYARROW_WITH_FLIGHT=auto
+)
+if %ARROW_GANDIVA% == ON (
+    set PYARROW_WITH_GANDIVA=enabled
+) else if %ARROW_GANDIVA% == OFF (
+    set PYARROW_WITH_GANDIVA=disabled
+) else (
+    set PYARROW_WITH_GANDIVA=auto
+)
+if %ARROW_GCS% == ON (
+    set PYARROW_WITH_GCS=enabled
+) else if %ARROW_GCS% == OFF (
+    set PYARROW_WITH_GCS=disabled
+) else (
+    set PYARROW_WITH_GCS=auto
+)
+if %ARROW_HDFS% == ON (
+    set PYARROW_WITH_HDFS=enabled
+) else if %ARROW_HDFS% == OFF (
+    set PYARROW_WITH_HDFS=disabled
+) else (
+    set PYARROW_WITH_HDFS=auto
+)
+if %ARROW_ORC% == ON (
+    set PYARROW_WITH_ORC=enabled
+) else if %ARROW_ORC% == OFF (
+    set PYARROW_WITH_ORC=disabled
+) else (
+    set PYARROW_WITH_ORC=auto
+)
+if %ARROW_PARQUET% == ON (
+    set PYARROW_WITH_PARQUET=enabled
+) else if %ARROW_PARQUET% == OFF (
+    set PYARROW_WITH_PARQUET=disabled
+) else (
+    set PYARROW_WITH_PARQUET=auto
+)
+if %PARQUET_REQUIRE_ENCRYPTION% == ON (
+    set PYARROW_WITH_PARQUET_ENCRYPTION=enabled
+) else if %ARROW_ACERO% == OFF (
+    set PYARROW_WITH_PARQUET_ENCRYPTION=disabled
+) else (
+    set PYARROW_WITH_PARQUET_ENCRYPTION=auto
+)
+if %ARROW_SUBSTRAIT% == ON (
+    set PYARROW_WITH_SUBSTRAIT=enabled
+) else if %ARROW_SUBSTRAIT% == OFF (
+    set PYARROW_WITH_SUBSTRAIT=disabled
+) else (
+    set PYARROW_WITH_SUBSTRAIT=auto
+)
+if %ARROW_S3% == ON (
+    set PYARROW_WITH_S3=enabled
+) else if %ARROW_S3% == OFF (
+    set PYARROW_WITH_S3=disabled
+) else (
+    set PYARROW_WITH_S3=auto
+)
+if %CMAKE_BUILD_TYPE% == Release (
+    set MESON_BUILD_TYPE=release
+) else (
+    set MESON_BUILD_TYPE=debug
+)
 
 pushd %SOURCE_DIR%\python
 
 @REM Install Python build dependencies
 %PYTHON_CMD% -m pip install --upgrade pip || exit /B 1
 %PYTHON_CMD% -m pip install -r requirements-build.txt || exit /B 1
+%PYTHON_CMD% -m pip install build delvewheel || exit /B 1
+
+@REM by default, CMake installs .lib import libs to lib and .dll libs to bin
+@REM delvewheel requires these to be side-by-side to properly vendor
+@REM https://github.com/adang1345/delvewheel/issues/66
+copy %CMAKE_INSTALL_PREFIX%\lib\*.lib %CMAKE_INSTALL_PREFIX%\bin\

Review Comment:
   @pitrou aha, that is very nice. That means it should work consistently 
across windows / Linux / macOS for libraries linked as conda dependencies 
(though admittedly it doesn't help much for arbitrary windows users via the 
official python redistributable who *also* want to use editable builds, but at 
a certain point I suppose you just have to give up and say that people doing 
developer builds need to use the tooling designed to make that work well on 
Windows).



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to