xref: /aosp_15_r20/external/angle/third_party/glslang/src/BUILD.gn (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard Worker# Copyright (C) 2018 Google, Inc.
2*8975f5c5SAndroid Build Coastguard Worker#
3*8975f5c5SAndroid Build Coastguard Worker# All rights reserved.
4*8975f5c5SAndroid Build Coastguard Worker#
5*8975f5c5SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without
6*8975f5c5SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions
7*8975f5c5SAndroid Build Coastguard Worker# are met:
8*8975f5c5SAndroid Build Coastguard Worker#
9*8975f5c5SAndroid Build Coastguard Worker#    Redistributions of source code must retain the above copyright
10*8975f5c5SAndroid Build Coastguard Worker#    notice, this list of conditions and the following disclaimer.
11*8975f5c5SAndroid Build Coastguard Worker#
12*8975f5c5SAndroid Build Coastguard Worker#    Redistributions in binary form must reproduce the above
13*8975f5c5SAndroid Build Coastguard Worker#    copyright notice, this list of conditions and the following
14*8975f5c5SAndroid Build Coastguard Worker#    disclaimer in the documentation and/or other materials provided
15*8975f5c5SAndroid Build Coastguard Worker#    with the distribution.
16*8975f5c5SAndroid Build Coastguard Worker#
17*8975f5c5SAndroid Build Coastguard Worker#    Neither the name of Google Inc. nor the names of its
18*8975f5c5SAndroid Build Coastguard Worker#    contributors may be used to endorse or promote products derived
19*8975f5c5SAndroid Build Coastguard Worker#    from this software without specific prior written permission.
20*8975f5c5SAndroid Build Coastguard Worker#
21*8975f5c5SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22*8975f5c5SAndroid Build Coastguard Worker# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23*8975f5c5SAndroid Build Coastguard Worker# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24*8975f5c5SAndroid Build Coastguard Worker# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25*8975f5c5SAndroid Build Coastguard Worker# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26*8975f5c5SAndroid Build Coastguard Worker# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27*8975f5c5SAndroid Build Coastguard Worker# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28*8975f5c5SAndroid Build Coastguard Worker# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29*8975f5c5SAndroid Build Coastguard Worker# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30*8975f5c5SAndroid Build Coastguard Worker# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31*8975f5c5SAndroid Build Coastguard Worker# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32*8975f5c5SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE.
33*8975f5c5SAndroid Build Coastguard Worker
34*8975f5c5SAndroid Build Coastguard Workerimport("//build_overrides/glslang.gni")
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard Worker# Both Chromium and Fuchsia use by default a set of warning errors
37*8975f5c5SAndroid Build Coastguard Worker# that is far too strict to compile this project. These are also
38*8975f5c5SAndroid Build Coastguard Worker# typically appended after |cflags|, overriding target-specific
39*8975f5c5SAndroid Build Coastguard Worker# definitions. To work around this, determine which configs to
40*8975f5c5SAndroid Build Coastguard Worker# add and remove in order to succesfully build the project.
41*8975f5c5SAndroid Build Coastguard Workerif (defined(is_fuchsia_tree) && is_fuchsia_tree) {
42*8975f5c5SAndroid Build Coastguard Worker  _configs_to_remove = [ "//build/config:default_warnings" ]
43*8975f5c5SAndroid Build Coastguard Worker  _configs_to_add = []
44*8975f5c5SAndroid Build Coastguard Worker} else {
45*8975f5c5SAndroid Build Coastguard Worker  _configs_to_remove = [ "//build/config/compiler:chromium_code" ]
46*8975f5c5SAndroid Build Coastguard Worker  _configs_to_add = [ "//build/config/compiler:no_chromium_code" ]
47*8975f5c5SAndroid Build Coastguard Worker}
48*8975f5c5SAndroid Build Coastguard Worker
49*8975f5c5SAndroid Build Coastguard Workeraction("glslang_build_info") {
50*8975f5c5SAndroid Build Coastguard Worker  script = "build_info.py"
51*8975f5c5SAndroid Build Coastguard Worker
52*8975f5c5SAndroid Build Coastguard Worker  src_dir = "."
53*8975f5c5SAndroid Build Coastguard Worker  changes_file = "CHANGES.md"
54*8975f5c5SAndroid Build Coastguard Worker  template_file = "build_info.h.tmpl"
55*8975f5c5SAndroid Build Coastguard Worker  out_file = "${target_gen_dir}/include/glslang/build_info.h"
56*8975f5c5SAndroid Build Coastguard Worker
57*8975f5c5SAndroid Build Coastguard Worker  inputs = [
58*8975f5c5SAndroid Build Coastguard Worker    changes_file,
59*8975f5c5SAndroid Build Coastguard Worker    script,
60*8975f5c5SAndroid Build Coastguard Worker    template_file,
61*8975f5c5SAndroid Build Coastguard Worker  ]
62*8975f5c5SAndroid Build Coastguard Worker  outputs = [ out_file ]
63*8975f5c5SAndroid Build Coastguard Worker  args = [
64*8975f5c5SAndroid Build Coastguard Worker    rebase_path(src_dir, root_build_dir),
65*8975f5c5SAndroid Build Coastguard Worker    "-i",
66*8975f5c5SAndroid Build Coastguard Worker    rebase_path(template_file, root_build_dir),
67*8975f5c5SAndroid Build Coastguard Worker    "-o",
68*8975f5c5SAndroid Build Coastguard Worker    rebase_path(out_file, root_build_dir),
69*8975f5c5SAndroid Build Coastguard Worker  ]
70*8975f5c5SAndroid Build Coastguard Worker}
71*8975f5c5SAndroid Build Coastguard Worker
72*8975f5c5SAndroid Build Coastguard Workeraction("glslang_extension_headers") {
73*8975f5c5SAndroid Build Coastguard Worker  script = "gen_extension_headers.py"
74*8975f5c5SAndroid Build Coastguard Worker
75*8975f5c5SAndroid Build Coastguard Worker  out_file = "${target_gen_dir}/include/glslang/glsl_intrinsic_header.h"
76*8975f5c5SAndroid Build Coastguard Worker
77*8975f5c5SAndroid Build Coastguard Worker  # Fuchsia GN build rules require all GN actions to be hermetic and they
78*8975f5c5SAndroid Build Coastguard Worker  # should correctly and fully state their inputs and outpus (see
79*8975f5c5SAndroid Build Coastguard Worker  # https://fuchsia.dev/fuchsia-src/development/build/hermetic_actions
80*8975f5c5SAndroid Build Coastguard Worker  # for details). All input files of the script should be added to the
81*8975f5c5SAndroid Build Coastguard Worker  # |sources| list.
82*8975f5c5SAndroid Build Coastguard Worker  sources = [
83*8975f5c5SAndroid Build Coastguard Worker    "glslang/ExtensionHeaders/GL_EXT_shader_realtime_clock.glsl",
84*8975f5c5SAndroid Build Coastguard Worker  ]
85*8975f5c5SAndroid Build Coastguard Worker
86*8975f5c5SAndroid Build Coastguard Worker  inputs = [
87*8975f5c5SAndroid Build Coastguard Worker    script
88*8975f5c5SAndroid Build Coastguard Worker  ]
89*8975f5c5SAndroid Build Coastguard Worker  outputs = [ out_file ]
90*8975f5c5SAndroid Build Coastguard Worker  args = [
91*8975f5c5SAndroid Build Coastguard Worker    "-i",
92*8975f5c5SAndroid Build Coastguard Worker    rebase_path("glslang/ExtensionHeaders", root_build_dir),
93*8975f5c5SAndroid Build Coastguard Worker    "-o",
94*8975f5c5SAndroid Build Coastguard Worker    rebase_path(out_file, root_build_dir),
95*8975f5c5SAndroid Build Coastguard Worker  ]
96*8975f5c5SAndroid Build Coastguard Worker}
97*8975f5c5SAndroid Build Coastguard Worker
98*8975f5c5SAndroid Build Coastguard Workerspirv_tools_dir = glslang_spirv_tools_dir
99*8975f5c5SAndroid Build Coastguard Worker
100*8975f5c5SAndroid Build Coastguard Workerconfig("glslang_public") {
101*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ "." ]
102*8975f5c5SAndroid Build Coastguard Worker  if (!is_win || is_clang) {
103*8975f5c5SAndroid Build Coastguard Worker    cflags = [ "-Wno-conversion" ]
104*8975f5c5SAndroid Build Coastguard Worker  }
105*8975f5c5SAndroid Build Coastguard Worker}
106*8975f5c5SAndroid Build Coastguard Worker
107*8975f5c5SAndroid Build Coastguard Workerconfig("glslang_hlsl") {
108*8975f5c5SAndroid Build Coastguard Worker  defines = [ "ENABLE_HLSL=1" ]
109*8975f5c5SAndroid Build Coastguard Worker}
110*8975f5c5SAndroid Build Coastguard Worker
111*8975f5c5SAndroid Build Coastguard Workertemplate("glslang_sources_common") {
112*8975f5c5SAndroid Build Coastguard Worker  source_set(target_name) {
113*8975f5c5SAndroid Build Coastguard Worker    public_configs = [ ":glslang_public" ]
114*8975f5c5SAndroid Build Coastguard Worker
115*8975f5c5SAndroid Build Coastguard Worker    if (invoker.enable_hlsl) {
116*8975f5c5SAndroid Build Coastguard Worker      public_configs += [ ":glslang_hlsl" ]
117*8975f5c5SAndroid Build Coastguard Worker    }
118*8975f5c5SAndroid Build Coastguard Worker
119*8975f5c5SAndroid Build Coastguard Worker    sources = [
120*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GLSL.ext.AMD.h",
121*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GLSL.ext.EXT.h",
122*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GLSL.ext.KHR.h",
123*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GLSL.ext.NV.h",
124*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GLSL.ext.ARM.h",
125*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GLSL.ext.QCOM.h",
126*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GLSL.std.450.h",
127*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GlslangToSpv.cpp",
128*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/GlslangToSpv.h",
129*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/InReadableOrder.cpp",
130*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/Logger.cpp",
131*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/Logger.h",
132*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/NonSemanticDebugPrintf.h",
133*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/NonSemanticShaderDebugInfo100.h",
134*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/SPVRemapper.cpp",
135*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/SPVRemapper.h",
136*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/SpvBuilder.cpp",
137*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/SpvBuilder.h",
138*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/SpvPostProcess.cpp",
139*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/SpvTools.h",
140*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/bitutils.h",
141*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/disassemble.cpp",
142*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/disassemble.h",
143*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/doc.cpp",
144*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/doc.h",
145*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/hex_float.h",
146*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/spirv.hpp",
147*8975f5c5SAndroid Build Coastguard Worker      "SPIRV/spvIR.h",
148*8975f5c5SAndroid Build Coastguard Worker      "glslang/GenericCodeGen/CodeGen.cpp",
149*8975f5c5SAndroid Build Coastguard Worker      "glslang/GenericCodeGen/Link.cpp",
150*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/BaseTypes.h",
151*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/Common.h",
152*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/ConstantUnion.h",
153*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/InfoSink.h",
154*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/InitializeGlobals.h",
155*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/PoolAlloc.h",
156*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/ResourceLimits.h",
157*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/ShHandle.h",
158*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/SpirvIntrinsics.h",
159*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/Types.h",
160*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/arrays.h",
161*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/intermediate.h",
162*8975f5c5SAndroid Build Coastguard Worker      "glslang/Include/visibility.h",
163*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Constant.cpp",
164*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/InfoSink.cpp",
165*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Initialize.cpp",
166*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Initialize.h",
167*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/IntermTraverse.cpp",
168*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Intermediate.cpp",
169*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/LiveTraverser.h",
170*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/ParseContextBase.cpp",
171*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/ParseHelper.cpp",
172*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/ParseHelper.h",
173*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/PoolAlloc.cpp",
174*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/RemoveTree.cpp",
175*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/RemoveTree.h",
176*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Scan.cpp",
177*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Scan.h",
178*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/ScanContext.h",
179*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/ShaderLang.cpp",
180*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/SpirvIntrinsics.cpp",
181*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/SymbolTable.cpp",
182*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/SymbolTable.h",
183*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Versions.cpp",
184*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/Versions.h",
185*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/attribute.cpp",
186*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/attribute.h",
187*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/gl_types.h",
188*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/glslang_tab.cpp",
189*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/glslang_tab.cpp.h",
190*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/intermOut.cpp",
191*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/iomapper.cpp",
192*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/iomapper.h",
193*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/limits.cpp",
194*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/linkValidate.cpp",
195*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/localintermediate.h",
196*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/parseConst.cpp",
197*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/parseVersions.h",
198*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/preprocessor/Pp.cpp",
199*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/preprocessor/PpAtom.cpp",
200*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/preprocessor/PpContext.cpp",
201*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/preprocessor/PpContext.h",
202*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/preprocessor/PpScanner.cpp",
203*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/preprocessor/PpTokens.cpp",
204*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/preprocessor/PpTokens.h",
205*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/propagateNoContraction.cpp",
206*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/propagateNoContraction.h",
207*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/reflection.cpp",
208*8975f5c5SAndroid Build Coastguard Worker      "glslang/MachineIndependent/reflection.h",
209*8975f5c5SAndroid Build Coastguard Worker      "glslang/OSDependent/osinclude.h",
210*8975f5c5SAndroid Build Coastguard Worker      "glslang/Public/ShaderLang.h",
211*8975f5c5SAndroid Build Coastguard Worker    ]
212*8975f5c5SAndroid Build Coastguard Worker
213*8975f5c5SAndroid Build Coastguard Worker    # Workaround gn issue complaining about these not being allowed even though GLSLANG_HLSL is not
214*8975f5c5SAndroid Build Coastguard Worker    # defined.
215*8975f5c5SAndroid Build Coastguard Worker    sources += [
216*8975f5c5SAndroid Build Coastguard Worker      "glslang/HLSL/hlslParseHelper.h",
217*8975f5c5SAndroid Build Coastguard Worker      "glslang/HLSL/hlslParseables.h",
218*8975f5c5SAndroid Build Coastguard Worker      "glslang/HLSL/hlslScanContext.h",
219*8975f5c5SAndroid Build Coastguard Worker      "glslang/HLSL/hlslTokens.h",
220*8975f5c5SAndroid Build Coastguard Worker    ]
221*8975f5c5SAndroid Build Coastguard Worker
222*8975f5c5SAndroid Build Coastguard Worker    if (invoker.enable_hlsl) {
223*8975f5c5SAndroid Build Coastguard Worker      sources += [
224*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslAttributes.cpp",
225*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslAttributes.h",
226*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslGrammar.cpp",
227*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslGrammar.h",
228*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslOpMap.cpp",
229*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslOpMap.h",
230*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslParseHelper.cpp",
231*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslParseables.cpp",
232*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslScanContext.cpp",
233*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslTokenStream.cpp",
234*8975f5c5SAndroid Build Coastguard Worker        "glslang/HLSL/hlslTokenStream.h",
235*8975f5c5SAndroid Build Coastguard Worker      ]
236*8975f5c5SAndroid Build Coastguard Worker    }
237*8975f5c5SAndroid Build Coastguard Worker
238*8975f5c5SAndroid Build Coastguard Worker    defines = [ "ENABLE_SPIRV=1" ]
239*8975f5c5SAndroid Build Coastguard Worker    if (invoker.enable_opt) {
240*8975f5c5SAndroid Build Coastguard Worker      sources += [ "SPIRV/SpvTools.cpp" ]
241*8975f5c5SAndroid Build Coastguard Worker      defines += [ "ENABLE_OPT=1" ]
242*8975f5c5SAndroid Build Coastguard Worker    }
243*8975f5c5SAndroid Build Coastguard Worker
244*8975f5c5SAndroid Build Coastguard Worker    if (is_win) {
245*8975f5c5SAndroid Build Coastguard Worker      sources += [ "glslang/OSDependent/Windows/ossource.cpp" ]
246*8975f5c5SAndroid Build Coastguard Worker      defines += [ "GLSLANG_OSINCLUDE_WIN32" ]
247*8975f5c5SAndroid Build Coastguard Worker    } else {
248*8975f5c5SAndroid Build Coastguard Worker      sources += [ "glslang/OSDependent/Unix/ossource.cpp" ]
249*8975f5c5SAndroid Build Coastguard Worker      defines += [ "GLSLANG_OSINCLUDE_UNIX" ]
250*8975f5c5SAndroid Build Coastguard Worker    }
251*8975f5c5SAndroid Build Coastguard Worker
252*8975f5c5SAndroid Build Coastguard Worker    if (is_clang) {
253*8975f5c5SAndroid Build Coastguard Worker      cflags = [
254*8975f5c5SAndroid Build Coastguard Worker        "-Wno-extra-semi",
255*8975f5c5SAndroid Build Coastguard Worker        "-Wno-ignored-qualifiers",
256*8975f5c5SAndroid Build Coastguard Worker        "-Wno-implicit-fallthrough",
257*8975f5c5SAndroid Build Coastguard Worker        "-Wno-inconsistent-missing-override",
258*8975f5c5SAndroid Build Coastguard Worker        "-Wno-missing-field-initializers",
259*8975f5c5SAndroid Build Coastguard Worker        "-Wno-newline-eof",
260*8975f5c5SAndroid Build Coastguard Worker        "-Wno-sign-compare",
261*8975f5c5SAndroid Build Coastguard Worker        "-Wno-suggest-destructor-override",
262*8975f5c5SAndroid Build Coastguard Worker        "-Wno-suggest-override",
263*8975f5c5SAndroid Build Coastguard Worker        "-Wno-unused-variable",
264*8975f5c5SAndroid Build Coastguard Worker      ]
265*8975f5c5SAndroid Build Coastguard Worker    }
266*8975f5c5SAndroid Build Coastguard Worker    if (is_win && !is_clang) {
267*8975f5c5SAndroid Build Coastguard Worker      cflags = [
268*8975f5c5SAndroid Build Coastguard Worker        "/wd4018",  # signed/unsigned mismatch
269*8975f5c5SAndroid Build Coastguard Worker        "/wd4189",  # local variable is initialized but not referenced
270*8975f5c5SAndroid Build Coastguard Worker      ]
271*8975f5c5SAndroid Build Coastguard Worker    }
272*8975f5c5SAndroid Build Coastguard Worker
273*8975f5c5SAndroid Build Coastguard Worker    include_dirs = [ "${target_gen_dir}/include" ]
274*8975f5c5SAndroid Build Coastguard Worker
275*8975f5c5SAndroid Build Coastguard Worker    deps = [ ":glslang_build_info" ]
276*8975f5c5SAndroid Build Coastguard Worker
277*8975f5c5SAndroid Build Coastguard Worker    if (invoker.enable_opt) {
278*8975f5c5SAndroid Build Coastguard Worker      deps += [
279*8975f5c5SAndroid Build Coastguard Worker        "${spirv_tools_dir}:spvtools_opt",
280*8975f5c5SAndroid Build Coastguard Worker        "${spirv_tools_dir}:spvtools_val",
281*8975f5c5SAndroid Build Coastguard Worker      ]
282*8975f5c5SAndroid Build Coastguard Worker      include_dirs += [ "${spirv_tools_dir}/include" ]
283*8975f5c5SAndroid Build Coastguard Worker    }
284*8975f5c5SAndroid Build Coastguard Worker
285*8975f5c5SAndroid Build Coastguard Worker    configs -= _configs_to_remove
286*8975f5c5SAndroid Build Coastguard Worker    configs += _configs_to_add
287*8975f5c5SAndroid Build Coastguard Worker  }
288*8975f5c5SAndroid Build Coastguard Worker}
289*8975f5c5SAndroid Build Coastguard Worker
290*8975f5c5SAndroid Build Coastguard Workerglslang_sources_common("glslang_lib_sources") {
291*8975f5c5SAndroid Build Coastguard Worker  enable_opt = true
292*8975f5c5SAndroid Build Coastguard Worker  enable_hlsl = true
293*8975f5c5SAndroid Build Coastguard Worker}
294*8975f5c5SAndroid Build Coastguard Worker
295*8975f5c5SAndroid Build Coastguard Workerglslang_sources_common("glslang_sources") {
296*8975f5c5SAndroid Build Coastguard Worker  enable_opt = true
297*8975f5c5SAndroid Build Coastguard Worker  enable_hlsl = true
298*8975f5c5SAndroid Build Coastguard Worker}
299*8975f5c5SAndroid Build Coastguard Worker
300*8975f5c5SAndroid Build Coastguard Workersource_set("glslang_default_resource_limits_sources") {
301*8975f5c5SAndroid Build Coastguard Worker  sources = [
302*8975f5c5SAndroid Build Coastguard Worker    "glslang/ResourceLimits/ResourceLimits.cpp",
303*8975f5c5SAndroid Build Coastguard Worker    "glslang/Public/ResourceLimits.h",
304*8975f5c5SAndroid Build Coastguard Worker    "glslang/Include/ResourceLimits.h",
305*8975f5c5SAndroid Build Coastguard Worker    "glslang/Include/visibility.h",
306*8975f5c5SAndroid Build Coastguard Worker  ]
307*8975f5c5SAndroid Build Coastguard Worker  public_configs = [ ":glslang_public" ]
308*8975f5c5SAndroid Build Coastguard Worker
309*8975f5c5SAndroid Build Coastguard Worker  configs -= _configs_to_remove
310*8975f5c5SAndroid Build Coastguard Worker  configs += _configs_to_add
311*8975f5c5SAndroid Build Coastguard Worker}
312*8975f5c5SAndroid Build Coastguard Worker
313*8975f5c5SAndroid Build Coastguard Workerexecutable("glslang_validator") {
314*8975f5c5SAndroid Build Coastguard Worker  sources = [
315*8975f5c5SAndroid Build Coastguard Worker    "StandAlone/DirStackFileIncluder.h",
316*8975f5c5SAndroid Build Coastguard Worker    "StandAlone/StandAlone.cpp",
317*8975f5c5SAndroid Build Coastguard Worker  ]
318*8975f5c5SAndroid Build Coastguard Worker  if (!is_win) {
319*8975f5c5SAndroid Build Coastguard Worker    cflags = [ "-Woverflow" ]
320*8975f5c5SAndroid Build Coastguard Worker  }
321*8975f5c5SAndroid Build Coastguard Worker  defines = [
322*8975f5c5SAndroid Build Coastguard Worker    "ENABLE_OPT=1",
323*8975f5c5SAndroid Build Coastguard Worker    "ENABLE_SPIRV=1",
324*8975f5c5SAndroid Build Coastguard Worker  ]
325*8975f5c5SAndroid Build Coastguard Worker  deps = [
326*8975f5c5SAndroid Build Coastguard Worker    ":glslang_build_info",
327*8975f5c5SAndroid Build Coastguard Worker    ":glslang_default_resource_limits_sources",
328*8975f5c5SAndroid Build Coastguard Worker    ":glslang_sources",
329*8975f5c5SAndroid Build Coastguard Worker    ":glslang_extension_headers",
330*8975f5c5SAndroid Build Coastguard Worker  ]
331*8975f5c5SAndroid Build Coastguard Worker  public_configs = [ ":glslang_hlsl" ]
332*8975f5c5SAndroid Build Coastguard Worker
333*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [
334*8975f5c5SAndroid Build Coastguard Worker    "${target_gen_dir}/include",
335*8975f5c5SAndroid Build Coastguard Worker    "${spirv_tools_dir}/include",
336*8975f5c5SAndroid Build Coastguard Worker  ]
337*8975f5c5SAndroid Build Coastguard Worker
338*8975f5c5SAndroid Build Coastguard Worker  configs -= _configs_to_remove
339*8975f5c5SAndroid Build Coastguard Worker  configs += _configs_to_add
340*8975f5c5SAndroid Build Coastguard Worker}
341*8975f5c5SAndroid Build Coastguard Worker
342*8975f5c5SAndroid Build Coastguard Workerexecutable("spirv-remap") {
343*8975f5c5SAndroid Build Coastguard Worker  sources = [ "StandAlone/spirv-remap.cpp" ]
344*8975f5c5SAndroid Build Coastguard Worker  defines = [
345*8975f5c5SAndroid Build Coastguard Worker    "ENABLE_OPT=1",
346*8975f5c5SAndroid Build Coastguard Worker    "ENABLE_SPIRV=1",
347*8975f5c5SAndroid Build Coastguard Worker  ]
348*8975f5c5SAndroid Build Coastguard Worker  deps = [ ":glslang_sources" ]
349*8975f5c5SAndroid Build Coastguard Worker
350*8975f5c5SAndroid Build Coastguard Worker  include_dirs = [ "${spirv_tools_dir}/include" ]
351*8975f5c5SAndroid Build Coastguard Worker
352*8975f5c5SAndroid Build Coastguard Worker  configs -= _configs_to_remove
353*8975f5c5SAndroid Build Coastguard Worker  configs += _configs_to_add
354*8975f5c5SAndroid Build Coastguard Worker}
355