| # 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_shaderc.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_shaderc.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" ] |
| } |
| } |