This is an automated email from the ASF dual-hosted git repository.
wesm pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/master by this push:
new b26c5ae ARROW-3556: [CI] Disable optimizations on Windows
b26c5ae is described below
commit b26c5ae61867bac34ade1ffed7f940b6176b70bd
Author: Antoine Pitrou <[email protected]>
AuthorDate: Fri Oct 19 10:38:47 2018 -0400
ARROW-3556: [CI] Disable optimizations on Windows
Author: Antoine Pitrou <[email protected]>
Closes #2790 from pitrou/ARROW-3556-disable-opts-ci-windows and squashes
the following commits:
a10df41c0 <Antoine Pitrou> ARROW-3556: Disable optimizations on Windows
---
ci/appveyor-build.bat | 25 +----
...ython-msvc-build.bat => appveyor-cpp-build.bat} | 84 ++--------------
ci/appveyor-cpp-setup.bat | 4 +-
...ript.bat => appveyor-cpp-test-cmake-script.bat} | 0
ci/cpp-msvc-build-main.bat | 112 +++++++++++++++++++++
ci/rust-build-main.bat | 58 +++++++++++
6 files changed, 181 insertions(+), 102 deletions(-)
diff --git a/ci/appveyor-build.bat b/ci/appveyor-build.bat
index 41559f8..cfd451c 100644
--- a/ci/appveyor-build.bat
+++ b/ci/appveyor-build.bat
@@ -18,32 +18,13 @@
@echo on
if "%JOB%" == "Rust" (
- pushd rust
-
- rustup default stable
- rustup show
- cargo build --target %TARGET% || exit /B
- cargo build --target %TARGET% --release || exit /B
- cargo test --target %TARGET% || exit /B
- cargo test --target %TARGET% --release || exit /B
-
- rustup default nightly
- rustup show
- cargo build --target %TARGET%
- cargo build --target %TARGET% --release
- cargo test --target %TARGET%
- cargo test --target %TARGET% --release
- cargo run --example dynamic_types --target %TARGET% --release
-
- rustup default stable
-
- popd
+ call ci\rust-build-main.bat
) else (
git config core.symlinks true
git reset --hard
if "%JOB%"=="Cmake_Script_Tests" (
- call ci\test-cmake-build-script.bat
+ call ci\appveyor-cpp-test-cmake-script.bat
) else (
- call ci\cpp-python-msvc-build.bat
+ call ci\appveyor-cpp-build.bat
)
)
diff --git a/ci/cpp-python-msvc-build.bat b/ci/appveyor-cpp-build.bat
similarity index 61%
rename from ci/cpp-python-msvc-build.bat
rename to ci/appveyor-cpp-build.bat
index 3237e18..3589871 100644
--- a/ci/cpp-python-msvc-build.bat
+++ b/ci/appveyor-cpp-build.bat
@@ -17,6 +17,9 @@
@echo on
+@rem In release mode, disable optimizations (/Od) for faster compiling
+set CMAKE_CXX_FLAGS_RELEASE=/Od
+
if "%JOB%" == "Static_Crt_Build" (
@rem Since we link the CRT statically, we should also disable building
@rem the Arrow shared library to link the tests statically, otherwise
@@ -46,6 +49,7 @@ if "%JOB%" == "Static_Crt_Build" (
-DARROW_BOOST_USE_SHARED=OFF ^
-DARROW_BUILD_SHARED=OFF ^
-DCMAKE_BUILD_TYPE=Release ^
+ -DCMAKE_CXX_FLAGS_RELEASE="/MT %CMAKE_CXX_FLAGS_RELEASE%" ^
-DARROW_CXXFLAGS="/WX /MP" ^
.. || exit /B
@@ -72,7 +76,7 @@ if "%JOB%" == "Build_Debug" (
-DARROW_CXXFLAGS="/MP" ^
.. || exit /B
- cmake --build . --config Debug || exit /B
+ cmake --build . --config %CONFIGURATION% || exit /B
ctest --output-on-failure -j2 || exit /B
popd
@@ -108,80 +112,4 @@ if "%JOB%" == "Toolchain" (
set ARROW_BUILD_TOOLCHAIN=%CONDA_PREFIX%\Library
)
-set ARROW_HOME=%CONDA_PREFIX%\Library
-
-@rem Retrieve git submodules, configure env var for Parquet unit tests
-git submodule update --init
-set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data
-
-@rem Build and test Arrow C++ libraries
-
-mkdir cpp\build
-pushd cpp\build
-
-cmake -G "%GENERATOR%" ^
- -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^
- -DARROW_BOOST_USE_SHARED=OFF ^
- -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
- -DARROW_BUILD_STATIC=OFF ^
- -DARROW_CXXFLAGS="/WX /MP" ^
- -DARROW_PARQUET=ON ^
- -DARROW_PYTHON=ON ^
- .. || exit /B
-cmake --build . --target install --config %CONFIGURATION% || exit /B
-
-@rem Needed so python-test.exe works
-set OLD_PYTHONHOME=%PYTHONHOME%
-set PYTHONHOME=%CONDA_PREFIX%
-
-ctest --output-on-failure -j2 || exit /B
-
-set PYTHONHOME=%OLD_PYTHONHOME%
-popd
-
-@rem Build and install pyarrow
-
-pushd python
-
-pip install pickle5
-
-set PYARROW_CXXFLAGS=/WX
-set PYARROW_CMAKE_GENERATOR=%GENERATOR%
-set PYARROW_BUNDLE_ARROW_CPP=ON
-set PYARROW_BUNDLE_BOOST=OFF
-set PYARROW_WITH_STATIC_BOOST=ON
-set PYARROW_WITH_PARQUET=ON
-
-@rem ARROW-3075; pkgconfig is broken for Parquet for now
-set PARQUET_HOME=%CONDA_PREFIX%\Library
-
-python setup.py build_ext ^
- install -q --single-version-externally-managed --record=record.text ^
- bdist_wheel -q || exit /B
-
-for /F %%i in ('dir /B /S dist\*.whl') do set WHEEL_PATH=%%i
-
-@rem Test directly from installed location
-
-@rem Needed for test_cython
-SET PYARROW_PATH=%CONDA_PREFIX%\Lib\site-packages\pyarrow
-py.test -r sxX --durations=15 -v %PYARROW_PATH% --parquet || exit /B
-
-popd
-
-@rem Test pyarrow wheel from pristine environment
-
-call deactivate
-
-conda create -n wheel_test -q -y python=%PYTHON%
-
-call activate wheel_test
-
-pip install %WHEEL_PATH% || exit /B
-
-python -c "import pyarrow" || exit /B
-python -c "import pyarrow.parquet" || exit /B
-
-pip install pandas pickle5 pytest pytest-faulthandler
-
-py.test -r sxX --durations=15 --pyargs pyarrow.tests || exit /B
+call ci\cpp-msvc-build-main.bat
diff --git a/ci/appveyor-cpp-setup.bat b/ci/appveyor-cpp-setup.bat
index d1f0d4e..4cae2cb 100644
--- a/ci/appveyor-cpp-setup.bat
+++ b/ci/appveyor-cpp-setup.bat
@@ -44,8 +44,8 @@ if "%GENERATOR%"=="Ninja" conda install -y -q ninja
if "%USE_CLCACHE%" == "true" (
@rem Use clcache for faster builds
pip install -q git+https://github.com/frerich/clcache.git
- @rem Limit cache size to 250 MB
- clcache -M 250000000
+ @rem Limit cache size to 500 MB
+ clcache -M 500000000
clcache -c
clcache -s
set CLCACHE_SERVER=1
diff --git a/ci/test-cmake-build-script.bat
b/ci/appveyor-cpp-test-cmake-script.bat
similarity index 100%
rename from ci/test-cmake-build-script.bat
rename to ci/appveyor-cpp-test-cmake-script.bat
diff --git a/ci/cpp-msvc-build-main.bat b/ci/cpp-msvc-build-main.bat
new file mode 100644
index 0000000..5ddb648
--- /dev/null
+++ b/ci/cpp-msvc-build-main.bat
@@ -0,0 +1,112 @@
+@rem Licensed to the Apache Software Foundation (ASF) under one
+@rem or more contributor license agreements. See the NOTICE file
+@rem distributed with this work for additional information
+@rem regarding copyright ownership. The ASF licenses this file
+@rem to you under the Apache License, Version 2.0 (the
+@rem "License"); you may not use this file except in compliance
+@rem with the License. You may obtain a copy of the License at
+@rem
+@rem http://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing,
+@rem software distributed under the License is distributed on an
+@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@rem KIND, either express or implied. See the License for the
+@rem specific language governing permissions and limitations
+@rem under the License.
+
+@rem The "main" C++ build script for Windows CI
+@rem (i.e. for usual configurations)
+
+set ARROW_HOME=%CONDA_PREFIX%\Library
+
+@rem Retrieve git submodules, configure env var for Parquet unit tests
+git submodule update --init || exit /B
+set PARQUET_TEST_DATA=%CD%\cpp\submodules\parquet-testing\data
+
+@rem Enable warnings-as-errors
+set ARROW_CXXFLAGS=/WX /MP
+
+@rem In release mode, disable optimizations (/Od) for faster compiling
+@rem and enable runtime assertions
+set CMAKE_CXX_FLAGS_RELEASE=/Od /UNDEBUG
+
+@rem
+@rem Build and test Arrow C++ libraries (including Parquet)
+@rem
+
+mkdir cpp\build
+pushd cpp\build
+
+cmake -G "%GENERATOR%" ^
+ -DCMAKE_INSTALL_PREFIX=%CONDA_PREFIX%\Library ^
+ -DARROW_BOOST_USE_SHARED=OFF ^
+ -DCMAKE_BUILD_TYPE=%CONFIGURATION% ^
+ -DARROW_BUILD_STATIC=OFF ^
+ -DARROW_CXXFLAGS="%ARROW_CXXFLAGS%" ^
+ -DCMAKE_CXX_FLAGS_RELEASE="/MD %CMAKE_CXX_FLAGS_RELEASE%" ^
+ -DARROW_PARQUET=ON ^
+ -DARROW_PYTHON=ON ^
+ .. || exit /B
+cmake --build . --target install --config %CONFIGURATION% || exit /B
+
+@rem Needed so python-test.exe works
+set OLD_PYTHONHOME=%PYTHONHOME%
+set PYTHONHOME=%CONDA_PREFIX%
+
+ctest --output-on-failure -j2 || exit /B
+
+set PYTHONHOME=%OLD_PYTHONHOME%
+popd
+
+@rem
+@rem Build and install pyarrow
+@rem
+
+pushd python
+
+pip install pickle5
+
+set PYARROW_CXXFLAGS=%ARROW_CXXFLAGS%
+set PYARROW_CMAKE_GENERATOR=%GENERATOR%
+set PYARROW_BUNDLE_ARROW_CPP=ON
+set PYARROW_BUNDLE_BOOST=OFF
+set PYARROW_WITH_STATIC_BOOST=ON
+set PYARROW_WITH_PARQUET=ON
+set PYARROW_PARALLEL=2
+
+@rem ARROW-3075; pkgconfig is broken for Parquet for now
+set PARQUET_HOME=%CONDA_PREFIX%\Library
+
+python setup.py build_ext ^
+ install -q --single-version-externally-managed --record=record.text ^
+ bdist_wheel -q || exit /B
+
+for /F %%i in ('dir /B /S dist\*.whl') do set WHEEL_PATH=%%i
+
+@rem Test directly from installed location
+@rem (needed for test_cython)
+
+set PYARROW_PATH=%CONDA_PREFIX%\Lib\site-packages\pyarrow
+py.test -r sxX --durations=15 %PYARROW_PATH% || exit /B
+
+popd
+
+@rem
+@rem Test pyarrow wheel from pristine environment
+@rem
+
+call deactivate
+
+conda create -n wheel_test -q -y python=%PYTHON% || exit /B
+
+call activate wheel_test
+
+pip install %WHEEL_PATH% || exit /B
+
+python -c "import pyarrow" || exit /B
+python -c "import pyarrow.parquet" || exit /B
+
+pip install pandas pickle5 pytest pytest-faulthandler || exit /B
+
+py.test -r sxX --durations=15 --pyargs pyarrow.tests || exit /B
diff --git a/ci/rust-build-main.bat b/ci/rust-build-main.bat
new file mode 100644
index 0000000..7b50d9f
--- /dev/null
+++ b/ci/rust-build-main.bat
@@ -0,0 +1,58 @@
+@rem Licensed to the Apache Software Foundation (ASF) under one
+@rem or more contributor license agreements. See the NOTICE file
+@rem distributed with this work for additional information
+@rem regarding copyright ownership. The ASF licenses this file
+@rem to you under the Apache License, Version 2.0 (the
+@rem "License"); you may not use this file except in compliance
+@rem with the License. You may obtain a copy of the License at
+@rem
+@rem http://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing,
+@rem software distributed under the License is distributed on an
+@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@rem KIND, either express or implied. See the License for the
+@rem specific language governing permissions and limitations
+@rem under the License.
+
+@rem The "main" Rust build script for Windows CI
+
+pushd rust
+
+@echo ===================================
+@echo Build with stable toolchain
+@echo ===================================
+
+rustup default stable
+rustup show
+cargo build --target %TARGET% || exit /B
+cargo build --target %TARGET% --release || exit /B
+@echo Test (debug)
+@echo ------------
+cargo test --target %TARGET% || exit /B
+@echo
+@echo Test (release)
+@echo --------------
+cargo test --target %TARGET% --release || exit /B
+
+@echo ===================================
+@echo Build with nightly toolchain
+@echo ===================================
+
+rustup default nightly
+rustup show
+cargo build --target %TARGET%
+cargo build --target %TARGET% --release
+@echo Test (debug)
+@echo ------------
+cargo test --target %TARGET%
+@echo
+@echo Test (release)
+@echo --------------
+cargo test --target %TARGET% --release
+@echo
+@echo Run example (release)
+@echo ---------------------
+cargo run --example dynamic_types --target %TARGET% --release
+
+popd