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

Reply via email to