From 0f52e7ef1216a5c6b3d198bea4097f371c063d95 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Wed, 21 Oct 2020 13:36:50 +0100 Subject: [PATCH] Fix GN build and presubmits Add missing `.cfg` files for GN presubmit. Add missing `recursedeps` in the `DEPS` file. Call `./update_glslang_sources.py` before attempting to build. Add more GN spew to the `.gitignore` file. --- .gitignore | 9 +++++-- DEPS | 5 ++++ README.md | 1 + kokoro/linux-clang-gn/build-docker.sh | 3 +++ kokoro/linux-clang-gn/build.sh | 3 ++- kokoro/linux-clang-gn/continuous.cfg | 35 +++++++++++++++++++++++++++ kokoro/linux-clang-gn/presubmit.cfg | 35 +++++++++++++++++++++++++++ 7 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 kokoro/linux-clang-gn/continuous.cfg create mode 100644 kokoro/linux-clang-gn/presubmit.cfg diff --git a/.gitignore b/.gitignore index d6e197dfe..ab25cec2d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ *.a *.so *.exe -*.gclient_entries .vscode/ tags TAGS @@ -12,4 +11,10 @@ Test/localResults/ External/googletest External/spirv-tools out/ -third_party/llvm-build + +# GN generated files +.cipd/ +*.gclient_entries +third_party/ +buildtools/ +tools/ diff --git a/DEPS b/DEPS index 9c0e045a2..2f5fa8ef8 100644 --- a/DEPS +++ b/DEPS @@ -75,3 +75,8 @@ hooks = [ 'condition': 'not build_with_chromium', }, ] + +recursedeps = [ + # buildtools provides clang_format, libc++, and libc++abi + 'buildtools', +] diff --git a/README.md b/README.md index fa1fe6018..7ad4ace96 100644 --- a/README.md +++ b/README.md @@ -200,6 +200,7 @@ This only needs to be done once after updating `glslang`. With the current directory set to your `glslang` checkout, type: ```bash +./update_glslang_sources.py gclient sync --gclientfile=standalone.gclient gn gen out/Default ``` diff --git a/kokoro/linux-clang-gn/build-docker.sh b/kokoro/linux-clang-gn/build-docker.sh index d2ee0e9e1..1035ab88c 100755 --- a/kokoro/linux-clang-gn/build-docker.sh +++ b/kokoro/linux-clang-gn/build-docker.sh @@ -36,6 +36,9 @@ set -e # Fail on any error. set -x # Display commands being run. +echo "Fetching external projects..." +./update_glslang_sources.py + echo "Fetching depot_tools..." mkdir -p /tmp/depot_tools curl https://storage.googleapis.com/chrome-infra/depot_tools.zip -o /tmp/depot_tools.zip diff --git a/kokoro/linux-clang-gn/build.sh b/kokoro/linux-clang-gn/build.sh index 2f459d2de..563432a1a 100755 --- a/kokoro/linux-clang-gn/build.sh +++ b/kokoro/linux-clang-gn/build.sh @@ -43,6 +43,7 @@ docker run --rm -i \ --workdir "${ROOT_DIR}" \ --env ROOT_DIR="${ROOT_DIR}" \ --env SCRIPT_DIR="${SCRIPT_DIR}" \ - --env BUILD_SHARED_LIBS="${BUILD_SHARED_LIBS:-0}" \ --entrypoint "${SCRIPT_DIR}/build-docker.sh" \ "gcr.io/shaderc-build/radial-build:latest" + +sudo chown -R "$(id -u):$(id -g)" "${ROOT_DIR}" diff --git a/kokoro/linux-clang-gn/continuous.cfg b/kokoro/linux-clang-gn/continuous.cfg new file mode 100644 index 000000000..1b1914678 --- /dev/null +++ b/kokoro/linux-clang-gn/continuous.cfg @@ -0,0 +1,35 @@ +# Copyright (C) 2020 Google, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# Continuous build configuration. +build_file: "glslang/kokoro/linux-clang-gn/build.sh" diff --git a/kokoro/linux-clang-gn/presubmit.cfg b/kokoro/linux-clang-gn/presubmit.cfg new file mode 100644 index 000000000..a72b9a887 --- /dev/null +++ b/kokoro/linux-clang-gn/presubmit.cfg @@ -0,0 +1,35 @@ +# Copyright (C) 2020 Google, Inc. +# +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# +# Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. + +# Presubmit build configuration. +build_file: "glslang/kokoro/linux-clang-gn/build.sh"