diff --git a/BUILD.gn b/BUILD.gn new file mode 100644 index 000000000..7b40d1dd7 --- /dev/null +++ b/BUILD.gn @@ -0,0 +1,101 @@ +# Copyright 2018 The Shaderc Authors. All rights reserved. +# +# 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. + +import("//build_overrides/build.gni") +import("//build_overrides/shaderc.gni") + +glslang_dir = shaderc_glslang_dir +spirv_tools_dir = shaderc_spirv_tools_dir + +config("shaderc_util_public") { + include_dirs = [ "libshaderc_util/include" ] +} + +source_set("shaderc_util_sources") { + sources = [ + "libshaderc_util/include/libshaderc_util/counting_includer.h", + "libshaderc_util/include/libshaderc_util/exceptions.h", + "libshaderc_util/include/libshaderc_util/file_finder.h", + "libshaderc_util/include/libshaderc_util/format.h", + "libshaderc_util/include/libshaderc_util/io.h", + "libshaderc_util/include/libshaderc_util/message.h", + "libshaderc_util/include/libshaderc_util/mutex.h", + "libshaderc_util/include/libshaderc_util/resources.h", + "libshaderc_util/include/libshaderc_util/spirv_tools_wrapper.h", + "libshaderc_util/include/libshaderc_util/string_piece.h", + "libshaderc_util/include/libshaderc_util/universal_unistd.h", + "libshaderc_util/include/libshaderc_util/version_profile.h", + "libshaderc_util/src/compiler.cc", + "libshaderc_util/src/file_finder.cc", + "libshaderc_util/src/io.cc", + "libshaderc_util/src/message.cc", + "libshaderc_util/src/resources.cc", + "libshaderc_util/src/shader_stage.cc", + "libshaderc_util/src/spirv_tools_wrapper.cc", + "libshaderc_util/src/version_profile.cc", + ] + + # Configure Glslang's interface to include HLSL-related entry points. + defines = [ "ENABLE_HLSL=1" ] + + public_configs = [ ":shaderc_util_public" ] + + deps = [ + "${glslang_dir}:glslang_sources", + "${spirv_tools_dir}:spvtools", + ] + + if (build_with_chromium) { + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + } +} + +config("shaderc_public") { + include_dirs = [ "libshaderc/include" ] + if (is_component_build) { + defines = [ "SHADERC_SHAREDLIB" ] + } +} + +component("libshaderc") { + public_configs = [ + ":shaderc_public", + ":shaderc_util_public", + ] + + defines = [ "SHADERC_IMPLEMENTATION" ] + + sources = [ + "libshaderc/include/shaderc/env.h", + "libshaderc/include/shaderc/shaderc.h", + "libshaderc/include/shaderc/shaderc.hpp", + "libshaderc/include/shaderc/status.h", + "libshaderc/include/shaderc/visibility.h", + "libshaderc/src/shaderc.cc", + "libshaderc/src/shaderc_private.h", + ] + + deps = [ + ":shaderc_util_sources", + "${spirv_tools_dir}:spvtools", + "${spirv_tools_dir}:spvtools_val", + "${glslang_dir}:glslang_sources", + ] + + if (build_with_chromium) { + configs -= [ "//build/config/compiler:chromium_code" ] + configs += [ "//build/config/compiler:no_chromium_code" ] + } +} diff --git a/build_overrides/shaderc.gni b/build_overrides/shaderc.gni index 4917c91db..fea75fd55 100644 --- a/build_overrides/shaderc.gni +++ b/build_overrides/shaderc.gni @@ -18,4 +18,4 @@ shaderc_glslang_dir = "//third_party/glslang" shaderc_spirv_tools_dir = "//third_party/spirv-tools" shaderc_spirv_headers_dir = "//third_party/spirv-headers" -shaderc_spirv_cross_dir = "//third_party/spirv-cross" +