blob: 6b7238d555fc7ffaa39a2fd3f8b85f112928449e [file] [log] [blame]
@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 Run VsDevCmd.bat to set Visual Studio environment variables for building
@rem on the command line. This is the path for Visual Studio Enterprise 2019
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -arch=amd64
@rem Install build dependencies with vcpkg
@rem TODO(ianmcook): change --x-manifest-root to --manifest-root after it
@rem changes in vcpkg
vcpkg install ^
--triplet x64-windows ^
--x-manifest-root cpp ^
--clean-after-build ^
|| exit /B 1
@rem Set environment variables
set ARROW_TEST_DATA=%cd%\testing\data
set PARQUET_TEST_DATA=%cd%\cpp\submodules\parquet-testing\data
set VCPKG_INSTALLED=%cd%\cpp\vcpkg_installed
@rem Build Arrow C++ library
mkdir cpp\build
pushd cpp\build
@rem TODO(ianmcook): test using --parallel %NUMBER_OF_PROCESSORS% with
@rem cmake --build instead of specifying -DARROW_CXXFLAGS="/MP" here
@rem (see https://gitlab.kitware.com/cmake/cmake/-/issues/20564)
@rem TODO(ianmcook): Add -DARROW_BUILD_BENCHMARKS=ON after the issue described
@rem at https://github.com/google/benchmark/issues/1046 is resolved
cmake -G "Visual Studio 16 2019" -A x64 ^
-DARROW_BOOST_USE_SHARED=ON ^
-DARROW_BUILD_SHARED=ON ^
-DARROW_BUILD_STATIC=OFF ^
-DARROW_BUILD_TESTS=ON ^
-DARROW_CXXFLAGS="/MP" ^
-DARROW_DATASET=ON ^
-DARROW_DEPENDENCY_SOURCE=SYSTEM ^
-DARROW_FLIGHT=ON ^
-DARROW_MIMALLOC=ON ^
-DARROW_PACKAGE_PREFIX="%VCPKG_INSTALLED%\x64-windows" ^
-DARROW_PARQUET=ON ^
-DARROW_PYTHON=OFF ^
-DARROW_WITH_BROTLI=ON ^
-DARROW_WITH_BZ2=ON ^
-DARROW_WITH_LZ4=ON ^
-DARROW_WITH_SNAPPY=ON ^
-DARROW_WITH_ZLIB=ON ^
-DARROW_WITH_ZSTD=ON ^
-DCMAKE_BUILD_TYPE=release ^
-DCMAKE_TOOLCHAIN_FILE="C:\vcpkg\scripts\buildsystems\vcpkg.cmake" ^
-DCMAKE_UNITY_BUILD=ON ^
  -DLZ4_MSVC_LIB_PREFIX="" ^
  -DLZ4_MSVC_STATIC_LIB_SUFFIX="" ^
-D_VCPKG_INSTALLED_DIR="%VCPKG_INSTALLED%" ^
-DVCPKG_MANIFEST_MODE=ON ^
-DVCPKG_TARGET_TRIPLET="x64-windows" ^
  -DZSTD_MSVC_LIB_PREFIX="" ^
.. || exit /B 1
cmake --build . --target INSTALL --config Release || exit /B 1
@rem Test Arrow C++ library
@rem TODO(ianmcook): Troubleshoot two test failures:
@rem - TestStatisticsSortOrder/0.MinMax
@rem - TestStatistic.Int32Extremums
ctest --output-on-failure ^
--parallel %NUMBER_OF_PROCESSORS% ^
--timeout 300 || exit /B 1
popd