From 486ec29b7c10c84c3086f5b6d4c94a740a69595d Mon Sep 17 00:00:00 2001 From: Derek Mauro Date: Mon, 3 Apr 2023 07:16:06 -0700 Subject: Release the batch files used to test Abseil with MSVC PiperOrigin-RevId: 521450545 Change-Id: Ia4fe02a57d23411f0a80443c0ad89dfaf4117a37 --- ci/windows_msvc_bazel.bat | 56 ++++++++++++++++++++++++++++++++++++++ ci/windows_msvc_cmake.bat | 68 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 124 insertions(+) create mode 100644 ci/windows_msvc_bazel.bat create mode 100644 ci/windows_msvc_cmake.bat (limited to 'ci') diff --git a/ci/windows_msvc_bazel.bat b/ci/windows_msvc_bazel.bat new file mode 100644 index 00000000..8c1899c9 --- /dev/null +++ b/ci/windows_msvc_bazel.bat @@ -0,0 +1,56 @@ +:: Copyright 2023 The Abseil Authors +:: +:: Licensed under the Apache License, Version 2.0 (the "License"); +:: you may not use this file except in compliance with the License. +:: You may obtain a copy of the License at +:: +:: https://www.apache.org/licenses/LICENSE-2.0 +:: +:: Unless required by applicable law or agreed to in writing, software +:: distributed under the License is distributed on an "AS IS" BASIS, +:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +:: See the License for the specific language governing permissions and +:: limitations under the License. + +SETLOCAL ENABLEDELAYEDEXPANSION + +:: Change directory to the root of the project. +CD %~dp0\.. +if %errorlevel% neq 0 EXIT /B 1 + +:: Set the standard version, [c++14|c++latest] +:: https://msdn.microsoft.com/en-us/library/mt490614.aspx +:: The default is c++14 if not set on command line. +IF "%STD%"=="" SET STD=c++14 + +:: Set the compilation_mode (fastbuild|opt|dbg) +:: https://docs.bazel.build/versions/master/user-manual.html#flag--compilation_mode +:: The default is fastbuild +IF "%COMPILATION_MODE%"=="" SET COMPILATION_MODE=fastbuild + +:: Do not skip time_test by default (https://b/163035516). +IF "%SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT%"=="" SET SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT=0 + +:: Copy the alternate option file, if specified. +IF NOT "%ALTERNATE_OPTIONS%"=="" copy %ALTERNATE_OPTIONS% absl\base\options.h + +:: To upgrade Bazel, first download a new binary from +:: https://github.com/bazelbuild/bazel/releases and copy it to +:: /google/data/rw/teams/absl/kokoro/windows. +%KOKORO_GFILE_DIR%\bazel-5.1.1-windows-x86_64.exe ^ + test ... ^ + --compilation_mode=%COMPILATION_MODE% ^ + --copt=/WX ^ + --copt=/std:%STD% ^ + --copt=/DABSL_SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT=%SKIP_TIME_TESTS_BROKEN_ON_MSVC_OPT% ^ + --define=absl=1 ^ + --distdir=%KOKORO_GFILE_DIR%\distdir ^ + --features=external_include_paths ^ + --keep_going ^ + --test_env="GTEST_INSTALL_FAILURE_SIGNAL_HANDLER=1" ^ + --test_env=TZDIR="%CD%\absl\time\internal\cctz\testdata\zoneinfo" ^ + --test_output=errors ^ + --test_tag_filters=-benchmark + +if %errorlevel% neq 0 EXIT /B 1 +EXIT /B 0 diff --git a/ci/windows_msvc_cmake.bat b/ci/windows_msvc_cmake.bat new file mode 100644 index 00000000..b69e03e5 --- /dev/null +++ b/ci/windows_msvc_cmake.bat @@ -0,0 +1,68 @@ +:: Copyright 2023 The Abseil Authors +:: +:: Licensed under the Apache License, Version 2.0 (the "License"); +:: you may not use this file except in compliance with the License. +:: You may obtain a copy of the License at +:: +:: https://www.apache.org/licenses/LICENSE-2.0 +:: +:: Unless required by applicable law or agreed to in writing, software +:: distributed under the License is distributed on an "AS IS" BASIS, +:: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +:: See the License for the specific language governing permissions and +:: limitations under the License. + +SETLOCAL ENABLEDELAYEDEXPANSION + +SET ABSL_GOOGLETEST_COMMIT=934542165899c786cb5d8a710529c37184730183 + +IF EXIST %KOKORO_GFILE_DIR%\distdir\%ABSL_GOOGLETEST_COMMIT%.zip ( + SET ABSL_GOOGLETEST_DOWNLOAD_URL=file://%KOKORO_GFILE_DIR%\distdir\%ABSL_GOOGLETEST_COMMIT%.zip +) ELSE ( + SET ABSL_GOOGLETEST_DOWNLOAD_URL=https://github.com/google/googletest/archive/%ABSL_GOOGLETEST_COMMIT%.zip +) + +:: Replace '\' with '/' in Windows paths for CMake. +:: Note that this cannot go inside the IF block above, because BAT files are weird. +SET ABSL_GOOGLETEST_DOWNLOAD_URL=%ABSL_GOOGLETEST_DOWNLOAD_URL:\=/% + +IF EXIST "C:\Program Files\CMake\bin\" ( + SET CMAKE_BIN="C:\Program Files\CMake\bin\cmake.exe" + SET CTEST_BIN="C:\Program Files\CMake\bin\ctest.exe" +) ELSE ( + SET CMAKE_BIN="cmake.exe" + SET CTEST_BIN="ctest.exe" +) + +SET CTEST_OUTPUT_ON_FAILURE=1 +SET CMAKE_BUILD_PARALLEL_LEVEL=16 +SET CTEST_PARALLEL_LEVEL=16 + +:: Change directory to the root of the project. +CD %~dp0\.. +if %errorlevel% neq 0 EXIT /B 1 + +SET TZDIR=%CD%\absl\time\internal\cctz\testdata\zoneinfo + +MKDIR "build" +CD "build" + +SET CXXFLAGS="/WX" + +%CMAKE_BIN% ^ + -DABSL_BUILD_TEST_HELPERS=ON ^ + -DABSL_BUILD_TESTING=ON ^ + -DABSL_GOOGLETEST_DOWNLOAD_URL=%ABSL_GOOGLETEST_DOWNLOAD_URL% ^ + -DBUILD_SHARED_LIBS=%ABSL_CMAKE_BUILD_SHARED% ^ + -DCMAKE_CXX_STANDARD=%ABSL_CMAKE_CXX_STANDARD% ^ + -G "%ABSL_CMAKE_GENERATOR%" ^ + .. +IF %errorlevel% neq 0 EXIT /B 1 + +%CMAKE_BIN% --build . --target ALL_BUILD --config %ABSL_CMAKE_BUILD_TYPE% +IF %errorlevel% neq 0 EXIT /B 1 + +%CTEST_BIN% -C %ABSL_CMAKE_BUILD_TYPE% -E "absl_lifetime_test|absl_symbolize_test" +IF %errorlevel% neq 0 EXIT /B 1 + +EXIT /B 0 -- cgit v1.2.3