Skip to content

Commit 98a92c2

Browse files
authored
GH-47583: [CI][Python] Enable PyArrow RelWithDebInfo build with assertions on Windows CI job (#50406)
### Rationale for this change Running a PyArrow Windows build with Assertions enhances our coverage, keeping debug information can helps us on future investigations. ### What changes are included in this PR? Run Windows CI job PyArrow build with RelWithDebInfo but remove `NDEBUG` so assertions are exercised. We can't use DEBUG directly because otherwise we require linking with CPython debug build (Py_Debug). ### Are these changes tested? Yes on CI, I've validated the flags for building are correct. ### Are there any user-facing changes? No, this is only for our CI job. * GitHub Issue: #47583 Authored-by: Raúl Cumplido <raulcumplido@gmail.com> Signed-off-by: Raúl Cumplido <raulcumplido@gmail.com>
1 parent ad4d8ac commit 98a92c2

1 file changed

Lines changed: 16 additions & 2 deletions

File tree

ci/scripts/python_build.bat

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,15 @@ set ARROW_WITH_LZ4=ON
5959
set ARROW_WITH_SNAPPY=ON
6060
set ARROW_WITH_ZLIB=ON
6161
set ARROW_WITH_ZSTD=ON
62-
set CMAKE_BUILD_TYPE=Release
62+
set CMAKE_BUILD_TYPE=RelWithDebInfo
63+
@rem Set CMAKE_CXX_FLAGS_RELWITHDEBINFO and CMAKE_C_FLAGS_RELWITHDEBINFO to
64+
@rem override default /DNDEBUG to be dropped so assertions are maintained.
65+
@rem A debug build would require linking against python3xx_d.lib (debug).
66+
@rem See details of discussion on PR GH-50406
67+
set CMAKE_CXX_FLAGS_RELWITHDEBINFO=/O2 /Ob1
68+
set CMAKE_C_FLAGS_RELWITHDEBINFO=/O2 /Ob1
6369
set CMAKE_GENERATOR=Ninja
70+
set CMAKE_MSVC_DEBUG_INFORMATION_FORMAT=Embedded
6471
set CMAKE_UNITY_BUILD=ON
6572

6673
mkdir %CPP_BUILD_DIR%
@@ -97,7 +104,10 @@ cmake ^
97104
-DARROW_WITH_ZLIB=%ARROW_WITH_ZLIB% ^
98105
-DARROW_WITH_ZSTD=%ARROW_WITH_ZSTD% ^
99106
-DCMAKE_BUILD_TYPE=%CMAKE_BUILD_TYPE% ^
107+
-DCMAKE_C_FLAGS_RELWITHDEBINFO="%CMAKE_C_FLAGS_RELWITHDEBINFO%" ^
108+
-DCMAKE_CXX_FLAGS_RELWITHDEBINFO="%CMAKE_CXX_FLAGS_RELWITHDEBINFO%" ^
100109
-DCMAKE_INSTALL_PREFIX=%CMAKE_INSTALL_PREFIX% ^
110+
-DCMAKE_MSVC_DEBUG_INFORMATION_FORMAT=%CMAKE_MSVC_DEBUG_INFORMATION_FORMAT% ^
101111
-DCMAKE_UNITY_BUILD=%CMAKE_UNITY_BUILD% ^
102112
-DMSVC_LINK_VERBOSE=ON ^
103113
-DPARQUET_REQUIRE_ENCRYPTION=%PARQUET_REQUIRE_ENCRYPTION% ^
@@ -134,6 +144,10 @@ pushd %SOURCE_DIR%\python
134144
%PYTHON_CMD% -m pip install -r requirements-build.txt || exit /B 1
135145

136146
@REM Build PyArrow
137-
%PYTHON_CMD% -m pip install --no-deps --no-build-isolation -vv -C build.verbose=true . || exit /B 1
147+
%PYTHON_CMD% -m pip install --no-deps --no-build-isolation -vv ^
148+
-C build.verbose=true ^
149+
-C cmake.build-type=%CMAKE_BUILD_TYPE% ^
150+
-C cmake.define.CMAKE_C_FLAGS_RELWITHDEBINFO="%CMAKE_C_FLAGS_RELWITHDEBINFO%" ^
151+
-C cmake.define.CMAKE_CXX_FLAGS_RELWITHDEBINFO="%CMAKE_CXX_FLAGS_RELWITHDEBINFO%" . || exit /B 1
138152

139153
popd

0 commit comments

Comments
 (0)