From f43643f19bc7fe35b56ecab2e9aaaf3df7001fb9 Mon Sep 17 00:00:00 2001 From: Antonio Maiorano Date: Tue, 23 Mar 2021 20:06:29 +0000 Subject: [PATCH] Kokoro: implement Windows build scripts Bug: tint:665 Change-Id: Ib2aa90b2a3a3e334880431bd2a20d5be065bf7ce Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/45681 Kokoro: Kokoro Reviewed-by: Ben Clayton Reviewed-by: Antonio Maiorano Commit-Queue: Antonio Maiorano --- kokoro/windows/build.bat | 120 ++++++++++++++++++ kokoro/windows/cmake-msvc2019-debug/build.bat | 32 +++-- .../windows/cmake-msvc2019-release/build.bat | 32 +++-- 3 files changed, 158 insertions(+), 26 deletions(-) create mode 100644 kokoro/windows/build.bat diff --git a/kokoro/windows/build.bat b/kokoro/windows/build.bat new file mode 100644 index 0000000000..5832050e8b --- /dev/null +++ b/kokoro/windows/build.bat @@ -0,0 +1,120 @@ +@rem Copyright 2021 The Tint Authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem 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, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. + +@echo off +SETLOCAL ENABLEDELAYEDEXPANSION + +goto :main + +:task_begin +set TASK_NAME=%~1 +echo %TASK_NAME% starting at %Time% +exit /b 0 + +:print_last_task_duration +if not "%TASK_NAME%" == "" ( + echo %TASK_NAME% completed at %Time% +) +exit /b 0 + +:status +echo. +echo. +call :print_last_task_duration +echo. +echo ***************************************************************** +echo %~1 +echo ***************************************************************** +echo. +call :task_begin "%~1" +exit /b 0 + +:main + +set ORIGINAL_SRC_DIR= %~dp0\..\.. +set TEMP_DIR=%TEMP%\tint-temp +set SRC_DIR="%TEMP_DIR%\tint-src" +set BUILD_DIR="%TEMP_DIR%\tint-build" + +cd /d %ORIGINAL_SRC_DIR% +if not exist ".git\" ( + echo "ORIGINAL_SRC_DIR should point to project root: %ORIGINAL_SRC_DIR%" + goto :error +) + +if exist %TEMP_DIR% ( + call :status "Deleting %TEMP_DIR%" + del /q/f/s %TEMP_DIR% > NUL || goto :error + rmdir /q/s %TEMP_DIR% > NUL || goto :error +) +mkdir %TEMP_DIR% || goto :error + +call :status "Installing depot_tools" +@echo on +pushd %TEMP_DIR% +rem For Windows, we must download and extract a bundle. +rem See https://chromium.googlesource.com/chromium/src/+/HEAD/docs/windows_build_instructions.md#install +powershell -Command "(New-Object Net.WebClient).DownloadFile('https://storage.googleapis.com/chrome-infra/depot_tools.zip', 'depot_tools.zip')" || goto :error +powershell -Command "Expand-Archive -Force 'depot_tools.zip' 'depot_tools'" || goto :error +rem Run gclient once to install deps +set PATH=%TEMP_DIR%\depot_tools;%PATH% +set DEPOT_TOOLS_UPDATE=1 +set DEPOT_TOOLS_WIN_TOOLCHAIN=0 +call gclient || goto :error +@echo off +popd + +call :status "Cloning to clean source directory" +@echo on +mkdir %SRC_DIR% || goto :error +cd /d %SRC_DIR% || goto :error +call git clone %ORIGINAL_SRC_DIR% . || goto :error +@echo off + +call :status "Fetching dependencies" +@echo on +copy standalone.gclient .gclient || goto :error +call gclient sync || goto :error +@echo off + +call :status "Configuring build system" +@echo on +mkdir %BUILD_DIR% +cd /d %BUILD_DIR% +set COMMON_CMAKE_FLAGS=-DTINT_BUILD_DOCS=O +@echo off + +call :status "Building tint" +@echo on +rem Disable msbuild "Intermediate or Output directory cannot reside in Temporary directory" +set IgnoreWarnIntDirInTempDetected=true +rem Add Python3 to path as this Kokoro image only has Python2 in it +set PATH=C:\Python37;%PATH% +cmake %SRC_DIR% %CMAKE_FLAGS% %COMMON_CMAKE_FLAGS% || goto :error +cmake --build . --config %BUILD_TYPE% || goto :error +@echo off + +call :status "Running tint_unittests" +@echo on +%BUILD_TYPE%\tint_unittests.exe || goto :error +@echo off + +@rem TODO(amaiorano): test-all.sh for Windows + +call :status "Done" +exit /b 0 + +:error +echo BUILD FAILED! errorlevel: %errorlevel% +exit /b %errorlevel% diff --git a/kokoro/windows/cmake-msvc2019-debug/build.bat b/kokoro/windows/cmake-msvc2019-debug/build.bat index a1729c7428..f501277752 100644 --- a/kokoro/windows/cmake-msvc2019-debug/build.bat +++ b/kokoro/windows/cmake-msvc2019-debug/build.bat @@ -1,13 +1,19 @@ -rem Copyright 2021 The Tint Authors. -rem -rem Licensed under the Apache License, Version 2.0 (the "License"); -rem you may not use this file except in compliance with the License. -rem 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, software -rem distributed under the License is distributed on an "AS IS" BASIS, -rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -rem See the License for the specific language governing permissions and -rem limitations under the License. +@rem Copyright 2021 The Tint Authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem 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, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. + +@echo on +set BUILD_TYPE=Debug +set CMAKE_FLAGS=-G "Visual Studio 16 2019" -A x64 +call %~dp0\..\build.bat +exit /b %errorlevel% diff --git a/kokoro/windows/cmake-msvc2019-release/build.bat b/kokoro/windows/cmake-msvc2019-release/build.bat index a1729c7428..4984febc71 100644 --- a/kokoro/windows/cmake-msvc2019-release/build.bat +++ b/kokoro/windows/cmake-msvc2019-release/build.bat @@ -1,13 +1,19 @@ -rem Copyright 2021 The Tint Authors. -rem -rem Licensed under the Apache License, Version 2.0 (the "License"); -rem you may not use this file except in compliance with the License. -rem 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, software -rem distributed under the License is distributed on an "AS IS" BASIS, -rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -rem See the License for the specific language governing permissions and -rem limitations under the License. +@rem Copyright 2021 The Tint Authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem 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, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. + +@echo on +set BUILD_TYPE=Release +set CMAKE_FLAGS=-G "Visual Studio 16 2019" -A x64 +call %~dp0\..\build.bat +exit /b %errorlevel%