1# Copyright 2018 The Shaderc Authors. All rights reserved. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15import("//build_overrides/build.gni") 16import("//build_overrides/shaderc.gni") 17 18glslang_dir = shaderc_glslang_dir 19spirv_tools_dir = shaderc_spirv_tools_dir 20 21config("shaderc_util_public") { 22 include_dirs = [ "libshaderc_util/include" ] 23} 24 25source_set("shaderc_util_sources") { 26 sources = [ 27 "libshaderc_util/include/libshaderc_util/counting_includer.h", 28 "libshaderc_util/include/libshaderc_util/exceptions.h", 29 "libshaderc_util/include/libshaderc_util/file_finder.h", 30 "libshaderc_util/include/libshaderc_util/format.h", 31 "libshaderc_util/include/libshaderc_util/io.h", 32 "libshaderc_util/include/libshaderc_util/message.h", 33 "libshaderc_util/include/libshaderc_util/mutex.h", 34 "libshaderc_util/include/libshaderc_util/resources.h", 35 "libshaderc_util/include/libshaderc_util/spirv_tools_wrapper.h", 36 "libshaderc_util/include/libshaderc_util/string_piece.h", 37 "libshaderc_util/include/libshaderc_util/universal_unistd.h", 38 "libshaderc_util/include/libshaderc_util/version_profile.h", 39 "libshaderc_util/src/compiler.cc", 40 "libshaderc_util/src/file_finder.cc", 41 "libshaderc_util/src/io.cc", 42 "libshaderc_util/src/message.cc", 43 "libshaderc_util/src/resources.cc", 44 "libshaderc_util/src/shader_stage.cc", 45 "libshaderc_util/src/spirv_tools_wrapper.cc", 46 "libshaderc_util/src/version_profile.cc", 47 ] 48 49 # Configure Glslang's interface to include HLSL-related entry points. 50 defines = [ "ENABLE_HLSL=1" ] 51 52 public_configs = [ ":shaderc_util_public" ] 53 54 deps = [ 55 "${glslang_dir}:glslang_sources", 56 "${spirv_tools_dir}:spvtools", 57 ] 58 59 if (build_with_chromium) { 60 configs -= [ "//build/config/compiler:chromium_code" ] 61 configs += [ "//build/config/compiler:no_chromium_code" ] 62 } 63} 64 65config("shaderc_public") { 66 include_dirs = [ "libshaderc/include" ] 67 if (is_component_build) { 68 defines = [ "SHADERC_SHAREDLIB" ] 69 } 70} 71 72component("libshaderc") { 73 public_configs = [ 74 ":shaderc_public", 75 ":shaderc_util_public", 76 ] 77 78 defines = [ "SHADERC_IMPLEMENTATION" ] 79 80 sources = [ 81 "libshaderc/include/shaderc/env.h", 82 "libshaderc/include/shaderc/shaderc.h", 83 "libshaderc/include/shaderc/shaderc.hpp", 84 "libshaderc/include/shaderc/status.h", 85 "libshaderc/include/shaderc/visibility.h", 86 "libshaderc/src/shaderc.cc", 87 "libshaderc/src/shaderc_private.h", 88 ] 89 90 deps = [ 91 ":shaderc_util_sources", 92 "${spirv_tools_dir}:spvtools", 93 "${spirv_tools_dir}:spvtools_val", 94 "${glslang_dir}:glslang_sources", 95 ] 96 97 if (build_with_chromium) { 98 configs -= [ "//build/config/compiler:chromium_code" ] 99 configs += [ "//build/config/compiler:no_chromium_code" ] 100 } 101} 102