From 0608b9d6827f0169b327bc311156ae38a8a80485 Mon Sep 17 00:00:00 2001 From: Ehsan Nasiri Date: Wed, 16 Oct 2019 16:55:23 -0400 Subject: [PATCH 1/6] Add Bazel build configuration files. In order to avoid potential build failures that could arise from SPIRV-Tools/Headers, and to avoid reading known_good.json, this build configuration does not build the SPIRV-Tools dependency and hence cannot perform HLSL compilation to SPIR-V. --- BUILD.bazel | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++ WORKSPACE | 27 ++++++ 2 files changed, 267 insertions(+) create mode 100644 BUILD.bazel create mode 100644 WORKSPACE diff --git a/BUILD.bazel b/BUILD.bazel new file mode 100644 index 00000000..550dde1e --- /dev/null +++ b/BUILD.bazel @@ -0,0 +1,240 @@ +package( + default_visibility = ["//visibility:public"], +) + +# Description: +# +# Khronos reference front-end for GLSL and ESSL, and sample SPIR-V generator. + +licenses(["notice"]) # Mixed: BSD, MIT, Khronos, Apache 2.0 + +exports_files(["LICENSE"]) + +COMMON_COPTS = [ + "-Wall", + "-Wuninitialized", + "-Wunused", + "-Wunused-local-typedefs", + "-Wunused-parameter", + "-Wunused-value", + "-Wunused-variable", + "-Wno-reorder", + "-std=c++11", + "-fvisibility=hidden", + "-fvisibility-inlines-hidden", + "-fno-exceptions", + "-fno-rtti", +] + +cc_library( + name = "glslang", + srcs = glob( + [ + "glslang/GenericCodeGen/*.cpp", + "glslang/MachineIndependent/*.cpp", + "glslang/MachineIndependent/preprocessor/*.cpp", + "hlsl/*.cpp", + ], + exclude = [ + "glslang/MachineIndependent/pch.cpp", + "glslang/MachineIndependent/pch.h", + "hlsl/pch.cpp", + "hlsl/pch.h", + ], + ) + [ + "OGLCompilersDLL/InitializeDll.cpp", + "glslang/OSDependent/Unix/ossource.cpp", + ], + hdrs = glob([ + "glslang/Include/*.h", + "glslang/MachineIndependent/*.h", + "glslang/MachineIndependent/preprocessor/*.h", + "hlsl/*.h", + ]) + [ + "OGLCompilersDLL/InitializeDll.h", + "StandAlone/DirStackFileIncluder.h", + "glslang/OSDependent/osinclude.h", + "glslang/Public/ShaderLang.h", + ], + copts = COMMON_COPTS, + defines = [ + "AMD_EXTENSIONS", + "ENABLE_HLSL=0", + "ENABLE_OPT=0", + "GLSLANG_OSINCLUDE_UNIX", + "NV_EXTENSIONS", + ], + linkopts = [ + "-lm", + "-lpthread", + ], + linkstatic = 1, +) + +genrule( + name = "export_spirv_headers", + srcs = [ + "SPIRV/GLSL.ext.AMD.h", + "SPIRV/GLSL.ext.EXT.h", + "SPIRV/GLSL.ext.KHR.h", + "SPIRV/GLSL.ext.NV.h", + "SPIRV/GLSL.std.450.h", + "SPIRV/spirv.hpp", + ], + outs = [ + "include/SPIRV/GLSL.ext.AMD.h", + "include/SPIRV/GLSL.ext.EXT.h", + "include/SPIRV/GLSL.ext.KHR.h", + "include/SPIRV/GLSL.ext.NV.h", + "include/SPIRV/GLSL.std.450.h", + "include/SPIRV/spirv.hpp", + ], + cmd = "mkdir -p $(@D)/include/SPIRV && cp $(SRCS) $(@D)/include/SPIRV/", +) + +cc_library( + name = "SPIRV_headers", + hdrs = [":export_spirv_headers"], + copts = COMMON_COPTS, + includes = [ + "include", + "include/SPIRV", + ], + linkstatic = 1, +) + +cc_library( + name = "SPIRV", + srcs = glob( + ["SPIRV/*.cpp"], + exclude = [ + "SPIRV/SpvTools.cpp", + ], + ), + hdrs = [ + "SPIRV/GlslangToSpv.h", + "SPIRV/Logger.h", + "SPIRV/SPVRemapper.h", + "SPIRV/SpvBuilder.h", + "SPIRV/SpvTools.h", + "SPIRV/bitutils.h", + "SPIRV/disassemble.h", + "SPIRV/doc.h", + "SPIRV/hex_float.h", + "SPIRV/spvIR.h", + ], + copts = COMMON_COPTS, + includes = ["SPIRV"], + linkopts = ["-lm"], + linkstatic = 1, + deps = [ + ":SPIRV_headers", + ":glslang", + ], +) + +cc_library( + name = "glslang-default-resource-limits", + srcs = ["StandAlone/ResourceLimits.cpp"], + hdrs = ["StandAlone/ResourceLimits.h"], + copts = COMMON_COPTS, + linkstatic = 1, + deps = [":glslang"], +) + +cc_binary( + name = "glslangValidator", + srcs = [ + "StandAlone/StandAlone.cpp", + "StandAlone/Worklist.h", + ], + copts = COMMON_COPTS, + deps = [ + ":SPIRV", + ":glslang", + ":glslang-default-resource-limits", + ], +) + +cc_binary( + name = "spirv-remap", + srcs = ["StandAlone/spirv-remap.cpp"], + copts = COMMON_COPTS, + deps = [ + ":SPIRV", + ":glslang", + ":glslang-default-resource-limits", + ], +) + +filegroup( + name = "test_files", + srcs = glob( + ["Test/**"], + exclude = [ + "Test/bump", + "Test/glslangValidator", + "Test/runtests", + ], + ), +) + +filegroup( + name = "test_dir", + srcs = ["Test"], +) + +cc_library( + name = "glslang_test_lib", + testonly = 1, + srcs = [ + "gtests/HexFloat.cpp", + "gtests/Initializer.h", + "gtests/Settings.cpp", + "gtests/Settings.h", + "gtests/TestFixture.cpp", + "gtests/TestFixture.h", + "gtests/main.cpp", + ], + copts = COMMON_COPTS, + data = [":test_files"], + defines = [ + 'GLSLANG_TEST_DIRECTORY=\\"\\"', + ], + linkstatic = 1, + deps = [ + ":SPIRV", + ":glslang", + ":glslang-default-resource-limits", + "@com_google_googletest//:gtest", + ], +) + +GLSLANG_TESTS = glob( + ["gtests/*.FromFile.cpp"], + # Since we are not building the SPIRV-Tools dependency, the following tests + # cannot be performed. + exclude = [ + "gtests/Hlsl.FromFile.cpp", + "gtests/Spv.FromFile.cpp", + ], +) + +[cc_test( + name = test_file.replace("gtests/", "").replace(".FromFile.cpp", "") + "_test", + srcs = [test_file], + args = [ + "--test-root", + "$(location :test_dir)", + ], + copts = COMMON_COPTS, + data = [ + ":test_dir", + ":test_files", + ], + deps = [ + ":SPIRV", + ":glslang", + ":glslang_test_lib", + ], +) for test_file in GLSLANG_TESTS] diff --git a/WORKSPACE b/WORKSPACE new file mode 100644 index 00000000..3c38e61d --- /dev/null +++ b/WORKSPACE @@ -0,0 +1,27 @@ +workspace(name = "org_khronos_glslang") +load( + "@bazel_tools//tools/build_defs/repo:http.bzl", + "http_archive", +) + +http_archive( + name = "com_google_googletest", + sha256 = "ef9e2e12e7bf115ee48b427ae171fc869eeaf1b532c0fcfd982f6a353d2471b4", + strip_prefix = "googletest-37ae1fc5e6be26f367d76c078beabd7024fed53a", + urls = ["https://github.com/google/googletest/archive/37ae1fc5e6be26f367d76c078beabd7024fed53a.zip"], # 2018-07-16 +) + +http_archive( + name = "com_googlesource_code_re2", + sha256 = "b885bb965ab4b6cf8718bbb8154d8f6474cd00331481b6d3e390babb3532263e", + strip_prefix = "re2-e860767c86e577b87deadf24cc4567ea83c4f162/", + urls = ["https://github.com/google/re2/archive/e860767c86e577b87deadf24cc4567ea83c4f162.zip"], +) + +http_archive( + name = "com_google_effcee", + build_file = "BUILD.effcee.bazel", + sha256 = "b0c21a01995fdf9792510566d78d5e7fe6f83cb4ba986eba691f4926f127cb34", + strip_prefix = "effcee-8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b/", + urls = ["https://github.com/google/effcee/archive/8f0a61dc95e0df18c18e0ac56d83b3fa9d2fe90b.zip"], +) From dccaa59c98dac1122fc806060825e1e4feef274d Mon Sep 17 00:00:00 2001 From: Ehsan Nasiri Date: Thu, 17 Oct 2019 15:14:20 -0400 Subject: [PATCH 2/6] Make it work on Windows. --- BUILD.bazel | 55 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 23 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 550dde1e..4bb6b6b7 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -10,21 +10,24 @@ licenses(["notice"]) # Mixed: BSD, MIT, Khronos, Apache 2.0 exports_files(["LICENSE"]) -COMMON_COPTS = [ - "-Wall", - "-Wuninitialized", - "-Wunused", - "-Wunused-local-typedefs", - "-Wunused-parameter", - "-Wunused-value", - "-Wunused-variable", - "-Wno-reorder", - "-std=c++11", - "-fvisibility=hidden", - "-fvisibility-inlines-hidden", - "-fno-exceptions", - "-fno-rtti", -] +COMMON_COPTS = select({ + "@bazel_tools//src/conditions:windows": [""], + "//conditions:default": [ + "-Wall", + "-Wuninitialized", + "-Wunused", + "-Wunused-local-typedefs", + "-Wunused-parameter", + "-Wunused-value", + "-Wunused-variable", + "-Wno-reorder", + "-std=c++11", + "-fvisibility=hidden", + "-fvisibility-inlines-hidden", + "-fno-exceptions", + "-fno-rtti", + ], +}) cc_library( name = "glslang", @@ -43,8 +46,12 @@ cc_library( ], ) + [ "OGLCompilersDLL/InitializeDll.cpp", - "glslang/OSDependent/Unix/ossource.cpp", - ], + ] + select({ + "@bazel_tools//src/conditions:windows": + ["glslang/OSDependent/Windows/ossource.cpp"], + "//conditions:default": + ["glslang/OSDependent/Unix/ossource.cpp"], + }), hdrs = glob([ "glslang/Include/*.h", "glslang/MachineIndependent/*.h", @@ -61,13 +68,12 @@ cc_library( "AMD_EXTENSIONS", "ENABLE_HLSL=0", "ENABLE_OPT=0", - "GLSLANG_OSINCLUDE_UNIX", "NV_EXTENSIONS", ], - linkopts = [ - "-lm", - "-lpthread", - ], + linkopts = select({ + "@bazel_tools//src/conditions:windows": [""], + "//conditions:default": ["-lm", "-lpthread"], + }), linkstatic = 1, ) @@ -125,7 +131,10 @@ cc_library( ], copts = COMMON_COPTS, includes = ["SPIRV"], - linkopts = ["-lm"], + linkopts = select({ + "@bazel_tools//src/conditions:windows": [""], + "//conditions:default": ["-lm"], + }), linkstatic = 1, deps = [ ":SPIRV_headers", From 8b11dfe16709a4d24ef975e6db6275235e03888d Mon Sep 17 00:00:00 2001 From: Ehsan Nasiri Date: Thu, 17 Oct 2019 16:12:43 -0400 Subject: [PATCH 3/6] Add Kokoro bots for building using Bazel. --- kokoro/linux-clang-release-bazel/build.sh | 40 ++++++++++++++ .../linux-clang-release-bazel/continuous.cfg | 16 ++++++ .../linux-clang-release-bazel/presubmit.cfg | 16 ++++++ kokoro/macos-clang-release-bazel/build.sh | 38 +++++++++++++ .../macos-clang-release-bazel/continuous.cfg | 16 ++++++ .../macos-clang-release-bazel/presubmit.cfg | 16 ++++++ .../windows-msvc-2015-release-bazel/build.bat | 54 +++++++++++++++++++ .../continuous.cfg | 16 ++++++ .../presubmit.cfg | 16 ++++++ 9 files changed, 228 insertions(+) create mode 100644 kokoro/linux-clang-release-bazel/build.sh create mode 100644 kokoro/linux-clang-release-bazel/continuous.cfg create mode 100644 kokoro/linux-clang-release-bazel/presubmit.cfg create mode 100644 kokoro/macos-clang-release-bazel/build.sh create mode 100644 kokoro/macos-clang-release-bazel/continuous.cfg create mode 100644 kokoro/macos-clang-release-bazel/presubmit.cfg create mode 100644 kokoro/windows-msvc-2015-release-bazel/build.bat create mode 100644 kokoro/windows-msvc-2015-release-bazel/continuous.cfg create mode 100644 kokoro/windows-msvc-2015-release-bazel/presubmit.cfg diff --git a/kokoro/linux-clang-release-bazel/build.sh b/kokoro/linux-clang-release-bazel/build.sh new file mode 100644 index 00000000..89c23fea --- /dev/null +++ b/kokoro/linux-clang-release-bazel/build.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. +# +# Linux Build Script. + +# Fail on any error. +set -e +# Display commands being run. +set -x + +CC=clang +CXX=clang++ +SRC=$PWD/github/glslang +cd $SRC + +# Bazel limitation: No 'External' directory is allowed!! +mv External third_party + +gsutil cp gs://bazel/0.29.1/release/bazel-0.29.1-linux-x86_64 . +chmod +x bazel-0.29.1-linux-x86_64 + +echo $(date): Build everything... +./bazel-0.29.1-linux-x86_64 build :all +echo $(date): Build completed. + +echo $(date): Starting bazel test... +./bazel-0.29.1-linux-x86_64 test :all +echo $(date): Bazel test completed. diff --git a/kokoro/linux-clang-release-bazel/continuous.cfg b/kokoro/linux-clang-release-bazel/continuous.cfg new file mode 100644 index 00000000..054f4f65 --- /dev/null +++ b/kokoro/linux-clang-release-bazel/continuous.cfg @@ -0,0 +1,16 @@ +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. + +# Continuous build configuration. +build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh" diff --git a/kokoro/linux-clang-release-bazel/presubmit.cfg b/kokoro/linux-clang-release-bazel/presubmit.cfg new file mode 100644 index 00000000..572898cb --- /dev/null +++ b/kokoro/linux-clang-release-bazel/presubmit.cfg @@ -0,0 +1,16 @@ +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. + +# Presubmit build configuration. +build_file: "glslang/kokoro/linux-clang-release-bazel/build.sh" diff --git a/kokoro/macos-clang-release-bazel/build.sh b/kokoro/macos-clang-release-bazel/build.sh new file mode 100644 index 00000000..4232fdfd --- /dev/null +++ b/kokoro/macos-clang-release-bazel/build.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. +# +# macOS Build Script. + +# Fail on any error. +set -e +# Display commands being run. +set -x + +CC=clang +CXX=clang++ +SRC=$PWD/github/glslang +cd $SRC + +# Get bazel 0.29.1. +gsutil cp gs://bazel/0.29.1/release/bazel-0.29.1-darwin-x86_64 . +chmod +x bazel-0.29.1-darwin-x86_64 + +echo $(date): Build everything... +./bazel-0.29.1-darwin-x86_64 build :all +echo $(date): Build completed. + +echo $(date): Starting bazel test... +./bazel-0.29.1-darwin-x86_64 test :all +echo $(date): Bazel test completed. diff --git a/kokoro/macos-clang-release-bazel/continuous.cfg b/kokoro/macos-clang-release-bazel/continuous.cfg new file mode 100644 index 00000000..5822fd25 --- /dev/null +++ b/kokoro/macos-clang-release-bazel/continuous.cfg @@ -0,0 +1,16 @@ +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. + +# Continuous build configuration. +build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh" diff --git a/kokoro/macos-clang-release-bazel/presubmit.cfg b/kokoro/macos-clang-release-bazel/presubmit.cfg new file mode 100644 index 00000000..12cf6461 --- /dev/null +++ b/kokoro/macos-clang-release-bazel/presubmit.cfg @@ -0,0 +1,16 @@ +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. + +# Presubmit build configuration. +build_file: "glslang/kokoro/macos-clang-release-bazel/build.sh" diff --git a/kokoro/windows-msvc-2015-release-bazel/build.bat b/kokoro/windows-msvc-2015-release-bazel/build.bat new file mode 100644 index 00000000..645baf7d --- /dev/null +++ b/kokoro/windows-msvc-2015-release-bazel/build.bat @@ -0,0 +1,54 @@ +:: Copyright (c) 2019 Google LLC. +:: +:: 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 +:: +:: http://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. +:: +:: Windows Build Script. + +@echo on + +set SRC=%cd%\github\glslang + +:: Force usage of python 3.6 +set PATH=C:\python36;%PATH% +cd %SRC% + +:: REM Install Bazel. +wget -q https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-windows-x86_64.zip +unzip -q bazel-0.29.1-windows-x86_64.zip + +:: Set up MSVC +call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x64 +set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio 14.0 +set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC +set BAZEL_SH=c:\tools\msys64\usr\bin\bash.exe +set BAZEL_PYTHON=c:\tools\python2\python.exe + +:: ######################################### +:: Start building. +:: ######################################### +echo "Build everything... %DATE% %TIME%" +bazel.exe build :all +if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% +echo "Build Completed %DATE% %TIME%" + +:: TODO: Currently the bazel tests fail due to issues resolving paths on Windows +:: ############## +:: Run the tests +:: ############## +:: echo "Running Tests... %DATE% %TIME%" +:: bazel.exe test :all +:: if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% +:: echo "Tests Completed %DATE% %TIME%" + +exit /b 0 + diff --git a/kokoro/windows-msvc-2015-release-bazel/continuous.cfg b/kokoro/windows-msvc-2015-release-bazel/continuous.cfg new file mode 100644 index 00000000..4b068897 --- /dev/null +++ b/kokoro/windows-msvc-2015-release-bazel/continuous.cfg @@ -0,0 +1,16 @@ +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. + +# Continuous build configuration. +build_file: "glslang/kokoro/windows-msvc-2015-release-bazel/build.bat" diff --git a/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg b/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg new file mode 100644 index 00000000..08bcefbb --- /dev/null +++ b/kokoro/windows-msvc-2015-release-bazel/presubmit.cfg @@ -0,0 +1,16 @@ +# Copyright (c) 2019 Google LLC. +# +# 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 +# +# http://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. + +# Presubmit build configuration. +build_file: "glslang/kokoro/windows-msvc-2015-release-bazel/build.bat" From af7991e062d2c1e369dff4ef4ac2a3210b9050bf Mon Sep 17 00:00:00 2001 From: Ehsan Nasiri Date: Fri, 18 Oct 2019 12:21:11 -0400 Subject: [PATCH 4/6] More cleanups for Windows. --- BUILD.bazel | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/BUILD.bazel b/BUILD.bazel index 4bb6b6b7..b1a19679 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -48,9 +48,9 @@ cc_library( "OGLCompilersDLL/InitializeDll.cpp", ] + select({ "@bazel_tools//src/conditions:windows": - ["glslang/OSDependent/Windows/ossource.cpp"], + ["glslang/OSDependent/Windows/ossource.cpp"], "//conditions:default": - ["glslang/OSDependent/Unix/ossource.cpp"], + ["glslang/OSDependent/Unix/ossource.cpp"], }), hdrs = glob([ "glslang/Include/*.h", @@ -188,11 +188,6 @@ filegroup( ), ) -filegroup( - name = "test_dir", - srcs = ["Test"], -) - cc_library( name = "glslang_test_lib", testonly = 1, @@ -207,9 +202,15 @@ cc_library( ], copts = COMMON_COPTS, data = [":test_files"], - defines = [ - 'GLSLANG_TEST_DIRECTORY=\\"\\"', - ], + defines = select({ + # Unfortunately we can't use $(location) in cc_library at the moment. + # See https://github.com/bazelbuild/bazel/issues/1023 + # So we'll specify the path manually. + "@bazel_tools//src/conditions:windows": + ["GLSLANG_TEST_DIRECTORY='\"../../../../../Test\"'"], + "//conditions:default": + ["GLSLANG_TEST_DIRECTORY='\"Test\"'"], + }), linkstatic = 1, deps = [ ":SPIRV", @@ -232,13 +233,8 @@ GLSLANG_TESTS = glob( [cc_test( name = test_file.replace("gtests/", "").replace(".FromFile.cpp", "") + "_test", srcs = [test_file], - args = [ - "--test-root", - "$(location :test_dir)", - ], copts = COMMON_COPTS, data = [ - ":test_dir", ":test_files", ], deps = [ From 2398b216af90026d7eb13863b007d7743086fce0 Mon Sep 17 00:00:00 2001 From: Ehsan Nasiri Date: Fri, 18 Oct 2019 12:25:59 -0400 Subject: [PATCH 5/6] Fix build scripts. --- kokoro/macos-clang-release-bazel/build.sh | 2 ++ kokoro/windows-msvc-2015-release-bazel/build.bat | 2 ++ 2 files changed, 4 insertions(+) diff --git a/kokoro/macos-clang-release-bazel/build.sh b/kokoro/macos-clang-release-bazel/build.sh index 4232fdfd..a899c137 100644 --- a/kokoro/macos-clang-release-bazel/build.sh +++ b/kokoro/macos-clang-release-bazel/build.sh @@ -25,6 +25,8 @@ CXX=clang++ SRC=$PWD/github/glslang cd $SRC +mv External third_party + # Get bazel 0.29.1. gsutil cp gs://bazel/0.29.1/release/bazel-0.29.1-darwin-x86_64 . chmod +x bazel-0.29.1-darwin-x86_64 diff --git a/kokoro/windows-msvc-2015-release-bazel/build.bat b/kokoro/windows-msvc-2015-release-bazel/build.bat index 645baf7d..e6c8cbcc 100644 --- a/kokoro/windows-msvc-2015-release-bazel/build.bat +++ b/kokoro/windows-msvc-2015-release-bazel/build.bat @@ -22,6 +22,8 @@ set SRC=%cd%\github\glslang set PATH=C:\python36;%PATH% cd %SRC% +mv External third_party + :: REM Install Bazel. wget -q https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-windows-x86_64.zip unzip -q bazel-0.29.1-windows-x86_64.zip From d3f3f01c4f6cb081f10660318c4feaccaefd307d Mon Sep 17 00:00:00 2001 From: Ehsan Nasiri Date: Fri, 18 Oct 2019 13:49:59 -0400 Subject: [PATCH 6/6] Run tests on Windows too. --- kokoro/windows-msvc-2015-release-bazel/build.bat | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/kokoro/windows-msvc-2015-release-bazel/build.bat b/kokoro/windows-msvc-2015-release-bazel/build.bat index e6c8cbcc..969d74d2 100644 --- a/kokoro/windows-msvc-2015-release-bazel/build.bat +++ b/kokoro/windows-msvc-2015-release-bazel/build.bat @@ -43,14 +43,13 @@ bazel.exe build :all if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% echo "Build Completed %DATE% %TIME%" -:: TODO: Currently the bazel tests fail due to issues resolving paths on Windows :: ############## :: Run the tests :: ############## -:: echo "Running Tests... %DATE% %TIME%" -:: bazel.exe test :all -:: if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% -:: echo "Tests Completed %DATE% %TIME%" +echo "Running Tests... %DATE% %TIME%" +bazel.exe test :all +if %ERRORLEVEL% NEQ 0 exit /b %ERRORLEVEL% +echo "Tests Completed %DATE% %TIME%" exit /b 0