blob: 3ff0751a96e2a287629e0957d38d512e1a5107a1 [file] [log] [blame]
# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
source_root = "//third_party/swiftshader"
config("internal_config") {
include_dirs = [
"$source_root/src",
"$source_root/include",
"$source_root/src/OpenGL",
]
if (is_win) {
cflags = [
"/wd4005",
"/wd4018",
"/wd4141",
"/wd4146",
"/wd4201",
"/wd4245",
"/wd4267",
"/wd4291",
"/wd4310",
"/wd4324",
"/wd4334",
"/wd4389",
"/wd4701",
"/wd4702",
"/wd4703",
"/wd4706",
"/wd4800",
"/wd5030",
]
libs = [
"user32.lib",
"gdi32.lib",
]
} else {
cflags = [
"-Wno-header-hygiene",
"-Wno-newline-eof",
"-Wno-nonportable-include-path",
"-Wno-thread-safety-analysis",
"-Wno-undefined-var-template",
"-Wno-unneeded-internal-declaration",
]
}
defines = [ "NO_SANITIZE_FUNCTION=" ]
}
config("swiftshader_config") {
include_dirs = [ "$source_root/include" ]
}
source_set("compiler") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/OpenGL/compiler/AnalyzeCallDepth.cpp",
"$source_root/src/OpenGL/compiler/Compiler.cpp",
"$source_root/src/OpenGL/compiler/Diagnostics.cpp",
"$source_root/src/OpenGL/compiler/DirectiveHandler.cpp",
"$source_root/src/OpenGL/compiler/InfoSink.cpp",
"$source_root/src/OpenGL/compiler/Initialize.cpp",
"$source_root/src/OpenGL/compiler/InitializeParseContext.cpp",
"$source_root/src/OpenGL/compiler/IntermTraverse.cpp",
"$source_root/src/OpenGL/compiler/Intermediate.cpp",
"$source_root/src/OpenGL/compiler/OutputASM.cpp",
"$source_root/src/OpenGL/compiler/ParseHelper.cpp",
"$source_root/src/OpenGL/compiler/PoolAlloc.cpp",
"$source_root/src/OpenGL/compiler/SymbolTable.cpp",
"$source_root/src/OpenGL/compiler/TranslatorASM.cpp",
"$source_root/src/OpenGL/compiler/ValidateLimitations.cpp",
"$source_root/src/OpenGL/compiler/ValidateSwitch.cpp",
"$source_root/src/OpenGL/compiler/debug.cpp",
"$source_root/src/OpenGL/compiler/glslang_lex.cpp",
"$source_root/src/OpenGL/compiler/glslang_tab.cpp",
"$source_root/src/OpenGL/compiler/intermOut.cpp",
"$source_root/src/OpenGL/compiler/parseConst.cpp",
"$source_root/src/OpenGL/compiler/util.cpp",
]
}
source_set("subzero") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
include_dirs = [
"$source_root/third_party/subzero",
"$source_root/third_party/subzero/pnacl-llvm/include",
"$source_root/third_party/llvm-subzero/include",
]
if (is_win) {
include_dirs +=
[ "$source_root/third_party/llvm-subzero/build/Windows/include" ]
} else if (is_linux) {
include_dirs +=
[ "$source_root/third_party/llvm-subzero/build/Linux/include" ]
} else if (is_mac) {
include_dirs +=
[ "$source_root/third_party/llvm-subzero/build/MacOS/include" ]
} else if (is_fuchsia) {
include_dirs +=
[ "$source_root/third_party/llvm-subzero/build/Fuchsia/include" ]
} else {
assert(false, "Unsupported platform.")
}
defines = [
"ALLOW_DUMP=0",
"ALLOW_TIMERS=0",
"ALLOW_LLVM_CL=0",
"ALLOW_LLVM_IR=0",
"ALLOW_LLVM_IR_AS_INPUT=0",
"ALLOW_MINIMAL_BUILD=0",
"ALLOW_WASM=0",
"ICE_THREAD_LOCAL_HACK=0",
]
if (is_win) {
defines += [ "SUBZERO_USE_MICROSOFT_ABI" ]
}
cflags = []
if (!is_win) {
cflags += [ "-Wno-macro-redefined" ]
}
if (current_cpu == "x64") {
defines += [
"SZTARGET=X8664",
"SUBZERO_TARGET=X8664",
]
} else if (current_cpu == "x86") {
defines += [
"SZTARGET=X8632",
"SUBZERO_TARGET=X8632",
]
} else {
assert(false, "Unsupported platform.")
}
sources = [
"$source_root/src/Reactor/Optimizer.cpp",
"$source_root/src/Reactor/SubzeroReactor.cpp",
"$source_root/third_party/llvm-subzero/lib/Demangle/ItaniumDemangle.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/APInt.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Atomic.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/CommandLine.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/ConvertUTF.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/ConvertUTFWrapper.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Debug.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Errno.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/ErrorHandling.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/FoldingSet.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Hashing.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Host.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/ManagedStatic.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/MemoryBuffer.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Mutex.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/NativeFormatting.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Path.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Process.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Program.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Regex.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Signals.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/SmallPtrSet.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/SmallVector.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/StringExtras.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/StringMap.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/StringRef.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/StringSaver.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/TargetParser.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Threading.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Timer.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Triple.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/Twine.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/circular_raw_ostream.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/raw_os_ostream.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/raw_ostream.cpp",
"$source_root/third_party/llvm-subzero/lib/Support/regcomp.c",
"$source_root/third_party/llvm-subzero/lib/Support/regerror.c",
"$source_root/third_party/llvm-subzero/lib/Support/regexec.c",
"$source_root/third_party/llvm-subzero/lib/Support/regfree.c",
"$source_root/third_party/llvm-subzero/lib/Support/regstrlcpy.c",
"$source_root/third_party/subzero/src/IceAssembler.cpp",
"$source_root/third_party/subzero/src/IceCfg.cpp",
"$source_root/third_party/subzero/src/IceCfgNode.cpp",
"$source_root/third_party/subzero/src/IceClFlags.cpp",
"$source_root/third_party/subzero/src/IceELFObjectWriter.cpp",
"$source_root/third_party/subzero/src/IceELFSection.cpp",
"$source_root/third_party/subzero/src/IceFixups.cpp",
"$source_root/third_party/subzero/src/IceGlobalContext.cpp",
"$source_root/third_party/subzero/src/IceGlobalInits.cpp",
"$source_root/third_party/subzero/src/IceInst.cpp",
"$source_root/third_party/subzero/src/IceInstrumentation.cpp",
"$source_root/third_party/subzero/src/IceIntrinsics.cpp",
"$source_root/third_party/subzero/src/IceLiveness.cpp",
"$source_root/third_party/subzero/src/IceLoopAnalyzer.cpp",
"$source_root/third_party/subzero/src/IceMangling.cpp",
"$source_root/third_party/subzero/src/IceMemory.cpp",
"$source_root/third_party/subzero/src/IceOperand.cpp",
"$source_root/third_party/subzero/src/IceRNG.cpp",
"$source_root/third_party/subzero/src/IceRangeSpec.cpp",
"$source_root/third_party/subzero/src/IceRegAlloc.cpp",
"$source_root/third_party/subzero/src/IceRevision.cpp",
"$source_root/third_party/subzero/src/IceSwitchLowering.cpp",
"$source_root/third_party/subzero/src/IceTargetLowering.cpp",
"$source_root/third_party/subzero/src/IceTargetLoweringX86.cpp",
"$source_root/third_party/subzero/src/IceThreading.cpp",
"$source_root/third_party/subzero/src/IceTimerTree.cpp",
"$source_root/third_party/subzero/src/IceTypes.cpp",
"$source_root/third_party/subzero/src/IceVariableSplitting.cpp",
]
if (current_cpu == "x64") {
sources += [
"$source_root/third_party/subzero/src/IceInstX8664.cpp",
"$source_root/third_party/subzero/src/IceTargetLoweringX8664.cpp",
]
} else if (current_cpu == "x86") {
sources += [
"$source_root/third_party/subzero/src/IceInstX8632.cpp",
"$source_root/third_party/subzero/src/IceTargetLoweringX8632.cpp",
]
} else {
assert(false, "Unsupported architecture.")
}
}
source_set("pipeline") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/Pipeline/ComputeProgram.cpp",
"$source_root/src/Pipeline/Constants.cpp",
"$source_root/src/Pipeline/PixelProgram.cpp",
"$source_root/src/Pipeline/PixelRoutine.cpp",
"$source_root/src/Pipeline/SamplerCore.cpp",
"$source_root/src/Pipeline/SetupRoutine.cpp",
"$source_root/src/Pipeline/ShaderCore.cpp",
"$source_root/src/Pipeline/SpirvShader.cpp",
"$source_root/src/Pipeline/SpirvShaderSampling.cpp",
"$source_root/src/Pipeline/SpirvShader_dbg.cpp",
"$source_root/src/Pipeline/VertexProgram.cpp",
"$source_root/src/Pipeline/VertexRoutine.cpp",
]
include_dirs = [
"$source_root/src",
"$source_root/include",
"$source_root/third_party/SPIRV-Headers/include",
"$source_root/third_party/marl/include",
]
}
source_set("wsi") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
configs += [ ":swiftshader_libvulkan_private_config" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/WSI/VkSurfaceKHR.cpp",
"$source_root/src/WSI/VkSwapchainKHR.cpp",
]
if (is_linux) {
sources += [
"$source_root/src/WSI/XcbSurfaceKHR.cpp",
"$source_root/src/WSI/XlibSurfaceKHR.cpp",
"$source_root/src/WSI/libX11.cpp",
]
}
if (is_win) {
sources += [ "$source_root/src/WSI/Win32SurfaceKHR.cpp" ]
}
if (is_mac) {
sources += [ "$source_root/src/WSI/MetalSurface.mm" ]
frameworks = [
"Cocoa.framework",
"QuartzCore.framework",
]
}
include_dirs = [
"$source_root/src",
"$source_root/include",
"$source_root/third_party/SPIRV-Headers/include",
"$source_root/third_party/marl/include",
]
}
source_set("reactor") {
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/Reactor/Debug.cpp",
"$source_root/src/Reactor/ExecutableMemory.cpp",
"$source_root/src/Reactor/Reactor.cpp",
]
deps = [ ":subzero" ]
}
source_set("renderer") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/Renderer/Blitter.cpp",
"$source_root/src/Renderer/Clipper.cpp",
"$source_root/src/Renderer/Color.cpp",
"$source_root/src/Renderer/Context.cpp",
"$source_root/src/Renderer/ETC_Decoder.cpp",
"$source_root/src/Renderer/Matrix.cpp",
"$source_root/src/Renderer/PixelProcessor.cpp",
"$source_root/src/Renderer/Plane.cpp",
"$source_root/src/Renderer/Point.cpp",
"$source_root/src/Renderer/QuadRasterizer.cpp",
"$source_root/src/Renderer/Renderer.cpp",
"$source_root/src/Renderer/Sampler.cpp",
"$source_root/src/Renderer/SetupProcessor.cpp",
"$source_root/src/Renderer/Surface.cpp",
"$source_root/src/Renderer/TextureStage.cpp",
"$source_root/src/Renderer/Vector.cpp",
"$source_root/src/Renderer/VertexProcessor.cpp",
]
deps = [ ":shader" ]
}
source_set("marl") {
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
include_dirs = [ "$source_root/third_party/marl/include" ]
sources = [
"$source_root/third_party/marl/src/debug.cpp",
"$source_root/third_party/marl/src/memory.cpp",
"$source_root/third_party/marl/src/scheduler.cpp",
"$source_root/third_party/marl/src/thread.cpp",
"$source_root/third_party/marl/src/trace.cpp",
]
if (!is_win) {
sources += [
"$source_root/third_party/marl/src/osfiber_aarch64.c",
"$source_root/third_party/marl/src/osfiber_arm.c",
"$source_root/third_party/marl/src/osfiber_asm_aarch64.S",
"$source_root/third_party/marl/src/osfiber_asm_arm.S",
"$source_root/third_party/marl/src/osfiber_asm_ppc64.S",
"$source_root/third_party/marl/src/osfiber_asm_x64.S",
"$source_root/third_party/marl/src/osfiber_asm_x86.S",
"$source_root/third_party/marl/src/osfiber_ppc64.c",
"$source_root/third_party/marl/src/osfiber_x64.c",
"$source_root/third_party/marl/src/osfiber_x86.c",
]
}
}
source_set("opengl_common") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
# "$source_root/src/Common/SharedLibrary.cpp",
"$source_root/src/OpenGL/common/Image.cpp",
"$source_root/src/OpenGL/common/MatrixStack.cpp",
"$source_root/src/OpenGL/common/Object.cpp",
"$source_root/src/OpenGL/common/debug.cpp",
]
}
source_set("common") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/Common/CPUID.cpp",
"$source_root/src/Common/Configurator.cpp",
"$source_root/src/Common/Debug.cpp",
"$source_root/src/Common/Half.cpp",
"$source_root/src/Common/Math.cpp",
"$source_root/src/Common/Memory.cpp",
"$source_root/src/Common/Resource.cpp",
"$source_root/src/Common/Socket.cpp",
"$source_root/src/Common/Thread.cpp",
"$source_root/src/Common/Timer.cpp",
]
}
source_set("preprocessor") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/OpenGL/compiler/preprocessor/Macro.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/MacroExpander.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Preprocessor.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Token.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Tokenizer.cpp",
]
}
source_set("opengl_preprocessor") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/OpenGL/compiler/preprocessor/DiagnosticsBase.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/DirectiveHandlerBase.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/DirectiveParser.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/ExpressionParser.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Input.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Lexer.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Macro.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/MacroExpander.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Preprocessor.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Token.cpp",
"$source_root/src/OpenGL/compiler/preprocessor/Tokenizer.cpp",
]
}
source_set("opengl_compiler") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/OpenGL/compiler/AnalyzeCallDepth.cpp",
"$source_root/src/OpenGL/compiler/Compiler.cpp",
"$source_root/src/OpenGL/compiler/Diagnostics.cpp",
"$source_root/src/OpenGL/compiler/DirectiveHandler.cpp",
"$source_root/src/OpenGL/compiler/InfoSink.cpp",
"$source_root/src/OpenGL/compiler/Initialize.cpp",
"$source_root/src/OpenGL/compiler/InitializeParseContext.cpp",
"$source_root/src/OpenGL/compiler/IntermTraverse.cpp",
"$source_root/src/OpenGL/compiler/Intermediate.cpp",
"$source_root/src/OpenGL/compiler/OutputASM.cpp",
"$source_root/src/OpenGL/compiler/ParseHelper.cpp",
"$source_root/src/OpenGL/compiler/PoolAlloc.cpp",
"$source_root/src/OpenGL/compiler/SymbolTable.cpp",
"$source_root/src/OpenGL/compiler/TranslatorASM.cpp",
"$source_root/src/OpenGL/compiler/ValidateLimitations.cpp",
"$source_root/src/OpenGL/compiler/ValidateSwitch.cpp",
"$source_root/src/OpenGL/compiler/debug.cpp",
"$source_root/src/OpenGL/compiler/glslang_lex.cpp",
"$source_root/src/OpenGL/compiler/glslang_tab.cpp",
"$source_root/src/OpenGL/compiler/intermOut.cpp",
"$source_root/src/OpenGL/compiler/parseConst.cpp",
"$source_root/src/OpenGL/compiler/util.cpp",
]
if (is_win) {
sources += [ "$source_root/src/OpenGL/compiler/ossource_win.cpp" ]
} else {
sources += [ "$source_root/src/OpenGL/compiler/ossource_posix.cpp" ]
}
deps = [ ":opengl_preprocessor" ]
}
source_set("shader") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/Shader/Constants.cpp",
"$source_root/src/Shader/PixelPipeline.cpp",
"$source_root/src/Shader/PixelProgram.cpp",
"$source_root/src/Shader/PixelRoutine.cpp",
"$source_root/src/Shader/PixelShader.cpp",
"$source_root/src/Shader/SamplerCore.cpp",
"$source_root/src/Shader/SetupRoutine.cpp",
"$source_root/src/Shader/Shader.cpp",
"$source_root/src/Shader/ShaderCore.cpp",
"$source_root/src/Shader/VertexPipeline.cpp",
"$source_root/src/Shader/VertexProgram.cpp",
"$source_root/src/Shader/VertexRoutine.cpp",
"$source_root/src/Shader/VertexShader.cpp",
]
deps = [ ":main" ]
}
source_set("system") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/System/CPUID.cpp",
"$source_root/src/System/CPUID.hpp",
"$source_root/src/System/Configurator.cpp",
"$source_root/src/System/Configurator.hpp",
"$source_root/src/System/Debug.cpp",
"$source_root/src/System/Debug.hpp",
"$source_root/src/System/Half.cpp",
"$source_root/src/System/Half.hpp",
"$source_root/src/System/Math.cpp",
"$source_root/src/System/Math.hpp",
"$source_root/src/System/Memory.cpp",
"$source_root/src/System/Memory.hpp",
"$source_root/src/System/Timer.cpp",
"$source_root/src/System/Timer.hpp",
]
if (is_linux || is_android) {
sources += [ "$source_root/src/System/Linux/MemFd.cpp" ]
}
}
source_set("device") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
include_dirs = [
"$source_root/third_party/SPIRV-Headers/include",
"$source_root/third_party/marl/include",
]
sources = [
"$source_root/src/Device/Blitter.cpp",
"$source_root/src/Device/Clipper.cpp",
"$source_root/src/Device/Color.cpp",
"$source_root/src/Device/Config.cpp",
"$source_root/src/Device/Context.cpp",
"$source_root/src/Device/ETC_Decoder.cpp",
"$source_root/src/Device/Matrix.cpp",
"$source_root/src/Device/PixelProcessor.cpp",
"$source_root/src/Device/Plane.cpp",
"$source_root/src/Device/Point.cpp",
"$source_root/src/Device/QuadRasterizer.cpp",
"$source_root/src/Device/Renderer.cpp",
"$source_root/src/Device/SetupProcessor.cpp",
"$source_root/src/Device/Vector.cpp",
"$source_root/src/Device/VertexProcessor.cpp",
]
}
source_set("main") {
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
sources = [
"$source_root/src/Main/Config.cpp",
"$source_root/src/Main/FrameBuffer.cpp",
"$source_root/src/Main/SwiftConfig.cpp",
]
if (is_mac) {
sources += [ "$source_root/src/Main/FrameBufferOSX.mm" ]
} else if (is_linux) {
sources += [
"$source_root/src/Main/FrameBufferX11.cpp",
"$source_root/src/Main/libX11.cpp",
]
} else if (is_win) {
sources += [
"$source_root/src/Main/FrameBufferDD.cpp",
"$source_root/src/Main/FrameBufferGDI.cpp",
"$source_root/src/Main/FrameBufferWin.cpp",
]
}
deps = [ ":common" ]
}
shared_library("egl") {
if (is_win) {
output_name = "libswiftshader_libEGL"
} else {
output_name = "EGL"
}
public = []
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
public_configs = [ ":swiftshader_config" ]
defines = [ "EGL_EGLEXT_PROTOTYPES=1" ]
if (is_win) {
defines += [ "EGLAPI=__declspec(dllexport)" ]
} else {
defines += [ "EGLAPI=__attribute__((visibility(\"default\")))" ]
}
sources = [
"$source_root/src/Common/SharedLibrary.cpp",
"$source_root/src/OpenGL/common/Object.cpp",
"$source_root/src/OpenGL/common/debug.cpp",
"$source_root/src/OpenGL/libEGL/Config.cpp",
"$source_root/src/OpenGL/libEGL/Display.cpp",
"$source_root/src/OpenGL/libEGL/Surface.cpp",
"$source_root/src/OpenGL/libEGL/libEGL.cpp",
"$source_root/src/OpenGL/libEGL/main.cpp",
"$source_root/src/OpenGL/libEGL/resource.h",
]
if (is_mac) {
sources += [ "$source_root/src/OpenGL/libEGL/OSXUtils.mm" ]
} else if (is_linux) {
sources += [ "$source_root/src/WSI/libX11.cpp" ]
}
if (is_mac) {
frameworks = [
"IOSurface.framework",
"QuartzCore.framework",
"AppKit.framework",
]
}
if (is_mac) {
ldflags = [ "-Wl,-install_name,@executable_path/libEGL.dylib" ]
}
}
shared_library("gles") {
if (is_win) {
output_name = "libswiftshader_libGLESv2"
} else {
output_name = "GLESv2"
}
configs += [ ":internal_config" ]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
if (is_win) {
configs -= [ "//build/config/win:unicode" ]
}
public_configs = [ ":swiftshader_config" ]
include_dirs = [ "$source_root/src/OpenGL" ]
public = []
defines = [ "GL_API=GL_APICALL" ]
if (is_win) {
defines += [ "GL_APICALL=__declspec(dllexport)" ]
} else {
defines += [ "GL_APICALL=__attribute__((visibility(\"default\")))" ]
}
sources = [
"$source_root/src/Common/SharedLibrary.cpp",
"$source_root/src/OpenGL/libGLESv2/Buffer.cpp",
"$source_root/src/OpenGL/libGLESv2/Context.cpp",
"$source_root/src/OpenGL/libGLESv2/Device.cpp",
"$source_root/src/OpenGL/libGLESv2/Fence.cpp",
"$source_root/src/OpenGL/libGLESv2/Framebuffer.cpp",
"$source_root/src/OpenGL/libGLESv2/IndexDataManager.cpp",
"$source_root/src/OpenGL/libGLESv2/Program.cpp",
"$source_root/src/OpenGL/libGLESv2/Query.cpp",
"$source_root/src/OpenGL/libGLESv2/Renderbuffer.cpp",
"$source_root/src/OpenGL/libGLESv2/ResourceManager.cpp",
"$source_root/src/OpenGL/libGLESv2/Shader.cpp",
"$source_root/src/OpenGL/libGLESv2/Texture.cpp",
"$source_root/src/OpenGL/libGLESv2/TransformFeedback.cpp",
"$source_root/src/OpenGL/libGLESv2/VertexArray.cpp",
"$source_root/src/OpenGL/libGLESv2/VertexDataManager.cpp",
"$source_root/src/OpenGL/libGLESv2/entry_points.cpp",
"$source_root/src/OpenGL/libGLESv2/libGLESv2.cpp",
"$source_root/src/OpenGL/libGLESv2/libGLESv3.cpp",
"$source_root/src/OpenGL/libGLESv2/main.cpp",
"$source_root/src/OpenGL/libGLESv2/resource.h",
"$source_root/src/OpenGL/libGLESv2/utilities.cpp",
]
deps = [
":opengl_common",
":opengl_compiler",
":reactor",
":renderer",
]
libs = []
ldflags = []
frameworks = []
if (is_mac) {
frameworks += [
"IOSurface.framework",
"QuartzCore.framework",
"ImageIO.framework",
"CoreFoundation.framework",
"CoreGraphics.framework",
"AppKit.framework",
]
ldflags += [ "-Wl,-install_name,@executable_path/libGLESv2.dylib" ]
} else if (is_win) {
libs += [ "dxguid.lib" ]
}
}
config("swiftshader_libvulkan_private_config") {
if (is_linux) {
defines = [
"VK_USE_PLATFORM_XLIB_KHR",
"VK_USE_PLATFORM_XCB_KHR",
"VK_EXPORT=__attribute__((visibility(\"default\")))",
]
} else if (is_fuchsia) {
defines = [
"VK_USE_PLATFORM_FUCHSIA=1",
"VK_EXPORT=__attribute__((visibility(\"default\")))",
]
} else if (is_win) {
defines = [
"VK_USE_PLATFORM_WIN32_KHR=1",
"VK_EXPORT=",
]
} else if (is_mac) {
defines = [
"VK_USE_PLATFORM_MACOS_MVK=1",
"VK_USE_PLATFORM_METAL_EXT=1",
"VK_EXPORT=__attribute__((visibility(\"default\")))",
]
} else {
defines = [ "VK_EXPORT=" ]
}
if (is_clang) {
cflags = [
"-Wno-unused-private-field",
"-Wno-switch",
]
}
}
shared_library("vulkan") {
if (is_win) {
output_name = "vk_swiftshader"
} else {
output_name = "libvk_swiftshader"
}
configs += [
":internal_config",
":swiftshader_libvulkan_private_config",
]
configs -= [ "//build/config/compiler:cxx_version_default" ]
configs += [ "//build/config/compiler:cxx_version_14" ]
public_configs = [ ":swiftshader_config" ]
include_dirs = [
"$source_root/src/Vulkan",
"$source_root/third_party/marl/include",
"$source_root/third_party/SPIRV-Headers/include",
"$source_root/third_party/SPIRV-Tools/include",
]
public = []
sources = [
"$source_root/src/Common/SharedLibrary.cpp",
"$source_root/src/Vulkan/VkBuffer.cpp",
"$source_root/src/Vulkan/VkBufferView.cpp",
"$source_root/src/Vulkan/VkCommandBuffer.cpp",
"$source_root/src/Vulkan/VkCommandPool.cpp",
"$source_root/src/Vulkan/VkDebug.cpp",
"$source_root/src/Vulkan/VkDescriptorPool.cpp",
"$source_root/src/Vulkan/VkDescriptorSetLayout.cpp",
"$source_root/src/Vulkan/VkDescriptorUpdateTemplate.cpp",
"$source_root/src/Vulkan/VkDevice.cpp",
"$source_root/src/Vulkan/VkDeviceMemory.cpp",
"$source_root/src/Vulkan/VkFormat.cpp",
"$source_root/src/Vulkan/VkFramebuffer.cpp",
"$source_root/src/Vulkan/VkGetProcAddress.cpp",
"$source_root/src/Vulkan/VkImage.cpp",
"$source_root/src/Vulkan/VkImageView.cpp",
"$source_root/src/Vulkan/VkInstance.cpp",
"$source_root/src/Vulkan/VkMemory.cpp",
"$source_root/src/Vulkan/VkPhysicalDevice.cpp",
"$source_root/src/Vulkan/VkPipeline.cpp",
"$source_root/src/Vulkan/VkPipelineCache.cpp",
"$source_root/src/Vulkan/VkPipelineLayout.cpp",
"$source_root/src/Vulkan/VkPromotedExtensions.cpp",
"$source_root/src/Vulkan/VkQueryPool.cpp",
"$source_root/src/Vulkan/VkQueue.cpp",
"$source_root/src/Vulkan/VkRenderPass.cpp",
"$source_root/src/Vulkan/VkSampler.cpp",
"$source_root/src/Vulkan/VkSemaphore.cpp",
"$source_root/src/Vulkan/VkShaderModule.cpp",
"$source_root/src/Vulkan/Vulkan.rc",
"$source_root/src/Vulkan/libVulkan.cpp",
"$source_root/src/Vulkan/main.cpp",
"$source_root/src/Vulkan/resource.h",
]
deps = [
":SPIRV-Tools",
":device",
":marl",
":pipeline",
":reactor",
":system",
":wsi",
]
libs = []
ldflags = []
if (is_mac) {
ldflags = [
"-Wl,-install_name,@rpath/libvk_swiftshader.dylib",
"-Wl,-exported_symbols_list," +
rebase_path("$source_root/src/Vulkan/vk_swiftshader.exports",
root_build_dir),
]
} else if (is_linux || is_fuchsia) {
inputs = [ "$source_root/src/Vulkan/vk_swiftshader.lds" ]
ldflags = [ "-Wl,--version-script=" +
rebase_path("$source_root/src/Vulkan/vk_swiftshader.lds",
root_build_dir) ]
}
}
# TODO(gw280): remove this target once Flutter change to use swiftshader_gl is merged
group("swiftshader") {
deps = [
":egl",
":gles",
]
}
group("swiftshader_gl") {
deps = [
":egl",
":gles",
]
}
group("swiftshader_vulkan") {
deps = [ ":vulkan" ]
}
spirv_headers = "//third_party/swiftshader/third_party/SPIRV-Headers"
spirv_tools = "//third_party/swiftshader/third_party/SPIRV-Tools"
template("spvtools_core_tables") {
assert(defined(invoker.version), "Need version in $target_name generation.")
action("spvtools_core_tables_" + target_name) {
script = "$spirv_tools/utils/generate_grammar_tables.py"
version = invoker.version
core_json_file =
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
core_insts_file = "${target_gen_dir}/core.insts-$version.inc"
operand_kinds_file = "${target_gen_dir}/operand.kinds-$version.inc"
extinst_file = "$spirv_tools/source/extinst.debuginfo.grammar.json"
sources = [ core_json_file ]
outputs = [
core_insts_file,
operand_kinds_file,
]
args = [
"--spirv-core-grammar",
rebase_path(core_json_file, root_build_dir),
"--core-insts-output",
rebase_path(core_insts_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(extinst_file, root_build_dir),
"--operand-kinds-output",
rebase_path(operand_kinds_file, root_build_dir),
]
}
}
template("spvtools_core_enums") {
assert(defined(invoker.version), "Need version in $target_name generation.")
action("spvtools_core_enums_" + target_name) {
script = "$spirv_tools/utils/generate_grammar_tables.py"
version = invoker.version
core_json_file =
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
debug_insts_file = "$spirv_tools/source/extinst.debuginfo.grammar.json"
extension_enum_file = "${target_gen_dir}/extension_enum.inc"
extension_map_file = "${target_gen_dir}/enum_string_mapping.inc"
args = [
"--spirv-core-grammar",
rebase_path(core_json_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debug_insts_file, root_build_dir),
"--extension-enum-output",
rebase_path(extension_enum_file, root_build_dir),
"--enum-string-mapping-output",
rebase_path(extension_map_file, root_build_dir),
]
inputs = [ core_json_file ]
outputs = [
extension_enum_file,
extension_map_file,
]
}
}
template("spvtools_glsl_tables") {
assert(defined(invoker.version), "Need version in $target_name generation.")
action("spvtools_glsl_tables_" + target_name) {
script = "$spirv_tools/utils/generate_grammar_tables.py"
version = invoker.version
core_json_file =
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
glsl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.glsl.std.450.grammar.json"
glsl_insts_file = "${target_gen_dir}/glsl.std.450.insts.inc"
debug_insts_file = "$spirv_tools/source/extinst.debuginfo.grammar.json"
args = [
"--spirv-core-grammar",
rebase_path(core_json_file, root_build_dir),
"--extinst-glsl-grammar",
rebase_path(glsl_json_file, root_build_dir),
"--glsl-insts-output",
rebase_path(glsl_insts_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debug_insts_file, root_build_dir),
]
inputs = [
core_json_file,
glsl_json_file,
]
outputs = [ glsl_insts_file ]
}
}
template("spvtools_opencl_tables") {
assert(defined(invoker.version), "Need version in $target_name generation.")
action("spvtools_opencl_tables_" + target_name) {
script = "$spirv_tools/utils/generate_grammar_tables.py"
version = invoker.version
core_json_file =
"${spirv_headers}/include/spirv/$version/spirv.core.grammar.json"
opengl_json_file = "${spirv_headers}/include/spirv/${version}/extinst.opencl.std.100.grammar.json"
opencl_insts_file = "${target_gen_dir}/opencl.std.insts.inc"
debug_insts_file = "$spirv_tools/source/extinst.debuginfo.grammar.json"
args = [
"--spirv-core-grammar",
rebase_path(core_json_file, root_build_dir),
"--extinst-opencl-grammar",
rebase_path(opengl_json_file, root_build_dir),
"--opencl-insts-output",
rebase_path(opencl_insts_file, root_build_dir),
"--extinst-debuginfo-grammar",
rebase_path(debug_insts_file, root_build_dir),
]
inputs = [
core_json_file,
opengl_json_file,
]
outputs = [ opencl_insts_file ]
}
}
template("spvtools_language_header") {
assert(defined(invoker.name), "Need name in $target_name generation.")
action("spvtools_language_header_" + target_name) {
script = "$spirv_tools/utils/generate_language_headers.py"
name = invoker.name
extinst_output_base = "${target_gen_dir}/${name}"
debug_insts_file = "$spirv_tools/source/extinst.debuginfo.grammar.json"
args = [
"--extinst-name",
"${name}",
"--extinst-grammar",
rebase_path(debug_insts_file, root_build_dir),
"--extinst-output-base",
rebase_path(extinst_output_base, root_build_dir),
]
inputs = [ debug_insts_file ]
outputs = [ "${extinst_output_base}.h" ]
}
}
template("spvtools_vendor_table") {
assert(defined(invoker.name), "Need name in $target_name generation.")
action("spvtools_vendor_tables_" + target_name) {
script = "$spirv_tools/utils/generate_grammar_tables.py"
name = invoker.name
extinst_vendor_grammar = "$spirv_tools/source/extinst.${name}.grammar.json"
extinst_file = "${target_gen_dir}/${name}.insts.inc"
args = [
"--extinst-vendor-grammar",
rebase_path(extinst_vendor_grammar, root_build_dir),
"--vendor-insts-output",
rebase_path(extinst_file, root_build_dir),
]
inputs = [ extinst_vendor_grammar ]
outputs = [ extinst_file ]
}
}
action("spvtools_generators_inc") {
script = "$spirv_tools/utils/generate_registry_tables.py"
# TODO(dsinclair): Make work for chrome
xml_file = "${spirv_headers}/include/spirv/spir-v.xml"
inc_file = "${target_gen_dir}/generators.inc"
sources = [ xml_file ]
outputs = [ inc_file ]
args = [
"--xml",
rebase_path(xml_file, root_build_dir),
"--generator",
rebase_path(inc_file, root_build_dir),
]
}
action("spvtools_build_version") {
script = "$spirv_tools/utils/update_build_version.py"
src_dir = "."
inc_file = "${target_gen_dir}/build-version.inc"
outputs = [ inc_file ]
args = [
rebase_path(src_dir, root_build_dir),
rebase_path(inc_file, root_build_dir),
]
}
spvtools_core_tables("unified1") {
version = "unified1"
}
spvtools_core_enums("unified1") {
version = "unified1"
}
spvtools_glsl_tables("glsl1-0") {
version = "1.0"
}
spvtools_opencl_tables("opencl1-0") {
version = "1.0"
}
spvtools_language_header("unified1") {
name = "DebugInfo"
}
spvtools_vendor_tables = [
"spv-amd-shader-explicit-vertex-parameter",
"spv-amd-shader-trinary-minmax",
"spv-amd-gcn-shader",
"spv-amd-shader-ballot",
"debuginfo",
]
foreach(table, spvtools_vendor_tables) {
spvtools_vendor_table(table) {
name = table
}
}
config("spvtools_public_config") {
include_dirs = [ "$spirv_tools/include" ]
}
config("spvtools_internal_config") {
include_dirs = [
"$spirv_tools",
"$target_gen_dir",
"${spirv_headers}/include",
]
configs = [ ":spvtools_public_config" ]
if (is_clang) {
cflags = [
"-Wno-implicit-fallthrough",
"-Wno-newline-eof",
]
}
}
source_set("spvtools") {
deps = [
":spvtools_core_tables_unified1",
":spvtools_generators_inc",
":spvtools_glsl_tables_glsl1-0",
":spvtools_language_header_unified1",
":spvtools_opencl_tables_opencl1-0",
]
foreach(target_name, spvtools_vendor_tables) {
deps += [ ":spvtools_vendor_tables_$target_name" ]
}
sources = [
"$spirv_tools/source/assembly_grammar.cpp",
"$spirv_tools/source/assembly_grammar.h",
"$spirv_tools/source/binary.cpp",
"$spirv_tools/source/binary.h",
"$spirv_tools/source/diagnostic.cpp",
"$spirv_tools/source/diagnostic.h",
"$spirv_tools/source/disassemble.cpp",
"$spirv_tools/source/enum_set.h",
"$spirv_tools/source/enum_string_mapping.cpp",
"$spirv_tools/source/ext_inst.cpp",
"$spirv_tools/source/ext_inst.h",
"$spirv_tools/source/extensions.cpp",
"$spirv_tools/source/extensions.h",
"$spirv_tools/source/instruction.h",
"$spirv_tools/source/libspirv.cpp",
"$spirv_tools/source/macro.h",
"$spirv_tools/source/name_mapper.cpp",
"$spirv_tools/source/name_mapper.h",
"$spirv_tools/source/opcode.cpp",
"$spirv_tools/source/opcode.h",
"$spirv_tools/source/operand.cpp",
"$spirv_tools/source/operand.h",
"$spirv_tools/source/parsed_operand.cpp",
"$spirv_tools/source/parsed_operand.h",
"$spirv_tools/source/print.cpp",
"$spirv_tools/source/print.h",
"$spirv_tools/source/spirv_constant.h",
"$spirv_tools/source/spirv_definition.h",
"$spirv_tools/source/spirv_endian.cpp",
"$spirv_tools/source/spirv_endian.h",
"$spirv_tools/source/spirv_optimizer_options.cpp",
"$spirv_tools/source/spirv_optimizer_options.h",
"$spirv_tools/source/spirv_target_env.cpp",
"$spirv_tools/source/spirv_target_env.h",
"$spirv_tools/source/spirv_validator_options.cpp",
"$spirv_tools/source/spirv_validator_options.h",
"$spirv_tools/source/table.cpp",
"$spirv_tools/source/table.h",
"$spirv_tools/source/text.cpp",
"$spirv_tools/source/text.h",
"$spirv_tools/source/text_handler.cpp",
"$spirv_tools/source/text_handler.h",
"$spirv_tools/source/util/bit_vector.cpp",
"$spirv_tools/source/util/bit_vector.h",
"$spirv_tools/source/util/bitutils.h",
"$spirv_tools/source/util/hex_float.h",
"$spirv_tools/source/util/ilist.h",
"$spirv_tools/source/util/ilist_node.h",
"$spirv_tools/source/util/make_unique.h",
"$spirv_tools/source/util/parse_number.cpp",
"$spirv_tools/source/util/parse_number.h",
"$spirv_tools/source/util/small_vector.h",
"$spirv_tools/source/util/string_utils.cpp",
"$spirv_tools/source/util/string_utils.h",
"$spirv_tools/source/util/timer.cpp",
"$spirv_tools/source/util/timer.h",
]
public_deps = [ ":spvtools_core_enums_unified1" ]
configs += [ ":spvtools_internal_config" ]
}
source_set("spvtools_val") {
sources = [
"$spirv_tools/source/val/basic_block.cpp",
"$spirv_tools/source/val/construct.cpp",
"$spirv_tools/source/val/function.cpp",
"$spirv_tools/source/val/instruction.cpp",
"$spirv_tools/source/val/validate.cpp",
"$spirv_tools/source/val/validate.h",
"$spirv_tools/source/val/validate_adjacency.cpp",
"$spirv_tools/source/val/validate_annotation.cpp",
"$spirv_tools/source/val/validate_arithmetics.cpp",
"$spirv_tools/source/val/validate_atomics.cpp",
"$spirv_tools/source/val/validate_barriers.cpp",
"$spirv_tools/source/val/validate_bitwise.cpp",
"$spirv_tools/source/val/validate_builtins.cpp",
"$spirv_tools/source/val/validate_capability.cpp",
"$spirv_tools/source/val/validate_cfg.cpp",
"$spirv_tools/source/val/validate_composites.cpp",
"$spirv_tools/source/val/validate_constants.cpp",
"$spirv_tools/source/val/validate_conversion.cpp",
"$spirv_tools/source/val/validate_datarules.cpp",
"$spirv_tools/source/val/validate_debug.cpp",
"$spirv_tools/source/val/validate_decorations.cpp",
"$spirv_tools/source/val/validate_derivatives.cpp",
"$spirv_tools/source/val/validate_execution_limitations.cpp",
"$spirv_tools/source/val/validate_extensions.cpp",
"$spirv_tools/source/val/validate_function.cpp",
"$spirv_tools/source/val/validate_id.cpp",
"$spirv_tools/source/val/validate_image.cpp",
"$spirv_tools/source/val/validate_instruction.cpp",
"$spirv_tools/source/val/validate_interfaces.cpp",
"$spirv_tools/source/val/validate_layout.cpp",
"$spirv_tools/source/val/validate_literals.cpp",
"$spirv_tools/source/val/validate_logicals.cpp",
"$spirv_tools/source/val/validate_memory.cpp",
"$spirv_tools/source/val/validate_memory_semantics.cpp",
"$spirv_tools/source/val/validate_misc.cpp",
"$spirv_tools/source/val/validate_mode_setting.cpp",
"$spirv_tools/source/val/validate_non_uniform.cpp",
"$spirv_tools/source/val/validate_primitives.cpp",
"$spirv_tools/source/val/validate_scopes.cpp",
"$spirv_tools/source/val/validate_small_type_uses.cpp",
"$spirv_tools/source/val/validate_type.cpp",
"$spirv_tools/source/val/validation_state.cpp",
]
deps = [ ":spvtools" ]
configs += [ ":spvtools_internal_config" ]
}
source_set("spvtools_opt") {
sources = [
"$spirv_tools/source/opt/aggressive_dead_code_elim_pass.cpp",
"$spirv_tools/source/opt/aggressive_dead_code_elim_pass.h",
"$spirv_tools/source/opt/amd_ext_to_khr.cpp",
"$spirv_tools/source/opt/amd_ext_to_khr.h",
"$spirv_tools/source/opt/basic_block.cpp",
"$spirv_tools/source/opt/basic_block.h",
"$spirv_tools/source/opt/block_merge_pass.cpp",
"$spirv_tools/source/opt/block_merge_pass.h",
"$spirv_tools/source/opt/block_merge_util.cpp",
"$spirv_tools/source/opt/block_merge_util.h",
"$spirv_tools/source/opt/build_module.cpp",
"$spirv_tools/source/opt/build_module.h",
"$spirv_tools/source/opt/ccp_pass.cpp",
"$spirv_tools/source/opt/ccp_pass.h",
"$spirv_tools/source/opt/cfg.cpp",
"$spirv_tools/source/opt/cfg.h",
"$spirv_tools/source/opt/cfg_cleanup_pass.cpp",
"$spirv_tools/source/opt/cfg_cleanup_pass.h",
"$spirv_tools/source/opt/code_sink.cpp",
"$spirv_tools/source/opt/code_sink.h",
"$spirv_tools/source/opt/combine_access_chains.cpp",
"$spirv_tools/source/opt/combine_access_chains.h",
"$spirv_tools/source/opt/compact_ids_pass.cpp",
"$spirv_tools/source/opt/compact_ids_pass.h",
"$spirv_tools/source/opt/composite.cpp",
"$spirv_tools/source/opt/composite.h",
"$spirv_tools/source/opt/const_folding_rules.cpp",
"$spirv_tools/source/opt/const_folding_rules.h",
"$spirv_tools/source/opt/constants.cpp",
"$spirv_tools/source/opt/constants.h",
"$spirv_tools/source/opt/copy_prop_arrays.cpp",
"$spirv_tools/source/opt/copy_prop_arrays.h",
"$spirv_tools/source/opt/dead_branch_elim_pass.cpp",
"$spirv_tools/source/opt/dead_branch_elim_pass.h",
"$spirv_tools/source/opt/dead_insert_elim_pass.cpp",
"$spirv_tools/source/opt/dead_insert_elim_pass.h",
"$spirv_tools/source/opt/dead_variable_elimination.cpp",
"$spirv_tools/source/opt/dead_variable_elimination.h",
"$spirv_tools/source/opt/decompose_initialized_variables_pass.cpp",
"$spirv_tools/source/opt/decompose_initialized_variables_pass.h",
"$spirv_tools/source/opt/decoration_manager.cpp",
"$spirv_tools/source/opt/decoration_manager.h",
"$spirv_tools/source/opt/def_use_manager.cpp",
"$spirv_tools/source/opt/def_use_manager.h",
"$spirv_tools/source/opt/desc_sroa.cpp",
"$spirv_tools/source/opt/desc_sroa.h",
"$spirv_tools/source/opt/dominator_analysis.cpp",
"$spirv_tools/source/opt/dominator_analysis.h",
"$spirv_tools/source/opt/dominator_tree.cpp",
"$spirv_tools/source/opt/dominator_tree.h",
"$spirv_tools/source/opt/eliminate_dead_constant_pass.cpp",
"$spirv_tools/source/opt/eliminate_dead_constant_pass.h",
"$spirv_tools/source/opt/eliminate_dead_functions_pass.cpp",
"$spirv_tools/source/opt/eliminate_dead_functions_pass.h",
"$spirv_tools/source/opt/eliminate_dead_functions_util.cpp",
"$spirv_tools/source/opt/eliminate_dead_functions_util.h",
"$spirv_tools/source/opt/eliminate_dead_members_pass.cpp",
"$spirv_tools/source/opt/eliminate_dead_members_pass.h",
"$spirv_tools/source/opt/feature_manager.cpp",
"$spirv_tools/source/opt/feature_manager.h",
"$spirv_tools/source/opt/fix_storage_class.cpp",
"$spirv_tools/source/opt/fix_storage_class.h",
"$spirv_tools/source/opt/flatten_decoration_pass.cpp",
"$spirv_tools/source/opt/flatten_decoration_pass.h",
"$spirv_tools/source/opt/fold.cpp",
"$spirv_tools/source/opt/fold.h",
"$spirv_tools/source/opt/fold_spec_constant_op_and_composite_pass.cpp",
"$spirv_tools/source/opt/fold_spec_constant_op_and_composite_pass.h",
"$spirv_tools/source/opt/folding_rules.cpp",
"$spirv_tools/source/opt/folding_rules.h",
"$spirv_tools/source/opt/freeze_spec_constant_value_pass.cpp",
"$spirv_tools/source/opt/freeze_spec_constant_value_pass.h",
"$spirv_tools/source/opt/function.cpp",
"$spirv_tools/source/opt/function.h",
"$spirv_tools/source/opt/generate_webgpu_initializers_pass.cpp",
"$spirv_tools/source/opt/generate_webgpu_initializers_pass.h",
"$spirv_tools/source/opt/graphics_robust_access_pass.cpp",
"$spirv_tools/source/opt/graphics_robust_access_pass.h",
"$spirv_tools/source/opt/if_conversion.cpp",
"$spirv_tools/source/opt/if_conversion.h",
"$spirv_tools/source/opt/inline_exhaustive_pass.cpp",
"$spirv_tools/source/opt/inline_exhaustive_pass.h",
"$spirv_tools/source/opt/inline_opaque_pass.cpp",
"$spirv_tools/source/opt/inline_opaque_pass.h",
"$spirv_tools/source/opt/inline_pass.cpp",
"$spirv_tools/source/opt/inline_pass.h",
"$spirv_tools/source/opt/inst_bindless_check_pass.cpp",
"$spirv_tools/source/opt/inst_bindless_check_pass.h",
"$spirv_tools/source/opt/inst_buff_addr_check_pass.cpp",
"$spirv_tools/source/opt/inst_buff_addr_check_pass.h",
"$spirv_tools/source/opt/instruction.cpp",
"$spirv_tools/source/opt/instruction.h",
"$spirv_tools/source/opt/instruction_list.cpp",
"$spirv_tools/source/opt/instruction_list.h",
"$spirv_tools/source/opt/instrument_pass.cpp",
"$spirv_tools/source/opt/instrument_pass.h",
"$spirv_tools/source/opt/ir_builder.h",
"$spirv_tools/source/opt/ir_context.cpp",
"$spirv_tools/source/opt/ir_context.h",
"$spirv_tools/source/opt/ir_loader.cpp",
"$spirv_tools/source/opt/ir_loader.h",
"$spirv_tools/source/opt/iterator.h",
"$spirv_tools/source/opt/legalize_vector_shuffle_pass.cpp",
"$spirv_tools/source/opt/legalize_vector_shuffle_pass.h",
"$spirv_tools/source/opt/licm_pass.cpp",
"$spirv_tools/source/opt/licm_pass.h",
"$spirv_tools/source/opt/local_access_chain_convert_pass.cpp",
"$spirv_tools/source/opt/local_access_chain_convert_pass.h",
"$spirv_tools/source/opt/local_redundancy_elimination.cpp",
"$spirv_tools/source/opt/local_redundancy_elimination.h",
"$spirv_tools/source/opt/local_single_block_elim_pass.cpp",
"$spirv_tools/source/opt/local_single_block_elim_pass.h",
"$spirv_tools/source/opt/local_single_store_elim_pass.cpp",
"$spirv_tools/source/opt/local_single_store_elim_pass.h",
"$spirv_tools/source/opt/local_ssa_elim_pass.cpp",
"$spirv_tools/source/opt/local_ssa_elim_pass.h",
"$spirv_tools/source/opt/log.h",
"$spirv_tools/source/opt/loop_dependence.cpp",
"$spirv_tools/source/opt/loop_dependence.h",
"$spirv_tools/source/opt/loop_dependence_helpers.cpp",
"$spirv_tools/source/opt/loop_descriptor.cpp",
"$spirv_tools/source/opt/loop_descriptor.h",
"$spirv_tools/source/opt/loop_fission.cpp",
"$spirv_tools/source/opt/loop_fission.h",
"$spirv_tools/source/opt/loop_fusion.cpp",
"$spirv_tools/source/opt/loop_fusion.h",
"$spirv_tools/source/opt/loop_fusion_pass.cpp",
"$spirv_tools/source/opt/loop_fusion_pass.h",
"$spirv_tools/source/opt/loop_peeling.cpp",
"$spirv_tools/source/opt/loop_peeling.h",
"$spirv_tools/source/opt/loop_unroller.cpp",
"$spirv_tools/source/opt/loop_unroller.h",
"$spirv_tools/source/opt/loop_unswitch_pass.cpp",
"$spirv_tools/source/opt/loop_unswitch_pass.h",
"$spirv_tools/source/opt/loop_utils.cpp",
"$spirv_tools/source/opt/loop_utils.h",
"$spirv_tools/source/opt/mem_pass.cpp",
"$spirv_tools/source/opt/mem_pass.h",
"$spirv_tools/source/opt/merge_return_pass.cpp",
"$spirv_tools/source/opt/merge_return_pass.h",
"$spirv_tools/source/opt/module.cpp",
"$spirv_tools/source/opt/module.h",
"$spirv_tools/source/opt/null_pass.h",
"$spirv_tools/source/opt/optimizer.cpp",
"$spirv_tools/source/opt/pass.cpp",
"$spirv_tools/source/opt/pass.h",
"$spirv_tools/source/opt/pass_manager.cpp",
"$spirv_tools/source/opt/pass_manager.h",
"$spirv_tools/source/opt/passes.h",
"$spirv_tools/source/opt/private_to_local_pass.cpp",
"$spirv_tools/source/opt/private_to_local_pass.h",
"$spirv_tools/source/opt/process_lines_pass.cpp",
"$spirv_tools/source/opt/process_lines_pass.h",
"$spirv_tools/source/opt/propagator.cpp",
"$spirv_tools/source/opt/propagator.h",
"$spirv_tools/source/opt/reduce_load_size.cpp",
"$spirv_tools/source/opt/reduce_load_size.h",
"$spirv_tools/source/opt/redundancy_elimination.cpp",
"$spirv_tools/source/opt/redundancy_elimination.h",
"$spirv_tools/source/opt/reflect.h",
"$spirv_tools/source/opt/register_pressure.cpp",
"$spirv_tools/source/opt/register_pressure.h",
"$spirv_tools/source/opt/remove_duplicates_pass.cpp",
"$spirv_tools/source/opt/remove_duplicates_pass.h",
"$spirv_tools/source/opt/replace_invalid_opc.cpp",
"$spirv_tools/source/opt/replace_invalid_opc.h",
"$spirv_tools/source/opt/scalar_analysis.cpp",
"$spirv_tools/source/opt/scalar_analysis.h",
"$spirv_tools/source/opt/scalar_analysis_nodes.h",
"$spirv_tools/source/opt/scalar_analysis_simplification.cpp",
"$spirv_tools/source/opt/scalar_replacement_pass.cpp",
"$spirv_tools/source/opt/scalar_replacement_pass.h",
"$spirv_tools/source/opt/set_spec_constant_default_value_pass.cpp",
"$spirv_tools/source/opt/set_spec_constant_default_value_pass.h",
"$spirv_tools/source/opt/simplification_pass.cpp",
"$spirv_tools/source/opt/simplification_pass.h",
"$spirv_tools/source/opt/split_invalid_unreachable_pass.cpp",
"$spirv_tools/source/opt/split_invalid_unreachable_pass.h",
"$spirv_tools/source/opt/ssa_rewrite_pass.cpp",
"$spirv_tools/source/opt/ssa_rewrite_pass.h",
"$spirv_tools/source/opt/strength_reduction_pass.cpp",
"$spirv_tools/source/opt/strength_reduction_pass.h",
"$spirv_tools/source/opt/strip_atomic_counter_memory_pass.cpp",
"$spirv_tools/source/opt/strip_atomic_counter_memory_pass.h",
"$spirv_tools/source/opt/strip_debug_info_pass.cpp",
"$spirv_tools/source/opt/strip_debug_info_pass.h",
"$spirv_tools/source/opt/strip_reflect_info_pass.cpp",
"$spirv_tools/source/opt/strip_reflect_info_pass.h",
"$spirv_tools/source/opt/struct_cfg_analysis.cpp",
"$spirv_tools/source/opt/struct_cfg_analysis.h",
"$spirv_tools/source/opt/tree_iterator.h",
"$spirv_tools/source/opt/type_manager.cpp",
"$spirv_tools/source/opt/type_manager.h",
"$spirv_tools/source/opt/types.cpp",
"$spirv_tools/source/opt/types.h",
"$spirv_tools/source/opt/unify_const_pass.cpp",
"$spirv_tools/source/opt/unify_const_pass.h",
"$spirv_tools/source/opt/upgrade_memory_model.cpp",
"$spirv_tools/source/opt/upgrade_memory_model.h",
"$spirv_tools/source/opt/value_number_table.cpp",
"$spirv_tools/source/opt/value_number_table.h",
"$spirv_tools/source/opt/vector_dce.cpp",
"$spirv_tools/source/opt/vector_dce.h",
"$spirv_tools/source/opt/workaround1209.cpp",
"$spirv_tools/source/opt/workaround1209.h",
"$spirv_tools/source/opt/wrap_opkill.cpp",
"$spirv_tools/source/opt/wrap_opkill.h",
]
deps = [
":spvtools",
":spvtools_vendor_tables_spv-amd-shader-ballot",
]
configs += [ ":spvtools_internal_config" ]
}
source_set("spvtools_link") {
sources = [ "$spirv_tools/source/link/linker.cpp" ]
deps = [
":spvtools",
":spvtools_opt",
":spvtools_val",
]
configs += [ ":spvtools_internal_config" ]
}
source_set("spvtools_reduce") {
sources = [
"$spirv_tools/source/reduce/change_operand_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/change_operand_reduction_opportunity.h",
"$spirv_tools/source/reduce/change_operand_to_undef_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/change_operand_to_undef_reduction_opportunity.h",
"$spirv_tools/source/reduce/conditional_branch_to_simple_conditional_branch_opportunity_finder.cpp",
"$spirv_tools/source/reduce/conditional_branch_to_simple_conditional_branch_opportunity_finder.h",
"$spirv_tools/source/reduce/conditional_branch_to_simple_conditional_branch_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/conditional_branch_to_simple_conditional_branch_reduction_opportunity.h",
"$spirv_tools/source/reduce/merge_blocks_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/merge_blocks_reduction_opportunity.h",
"$spirv_tools/source/reduce/merge_blocks_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/merge_blocks_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/operand_to_const_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/operand_to_const_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/operand_to_dominating_id_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/operand_to_dominating_id_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/operand_to_undef_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/operand_to_undef_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/reducer.cpp",
"$spirv_tools/source/reduce/reducer.h",
"$spirv_tools/source/reduce/reduction_opportunity.cpp",
"$spirv_tools/source/reduce/reduction_opportunity.h",
"$spirv_tools/source/reduce/reduction_pass.cpp",
"$spirv_tools/source/reduce/reduction_pass.h",
"$spirv_tools/source/reduce/reduction_util.cpp",
"$spirv_tools/source/reduce/reduction_util.h",
"$spirv_tools/source/reduce/remove_block_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/remove_block_reduction_opportunity.h",
"$spirv_tools/source/reduce/remove_block_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/remove_block_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/remove_function_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/remove_function_reduction_opportunity.h",
"$spirv_tools/source/reduce/remove_function_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/remove_function_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/remove_instruction_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/remove_instruction_reduction_opportunity.h",
"$spirv_tools/source/reduce/remove_opname_instruction_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/remove_opname_instruction_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/remove_relaxed_precision_decoration_opportunity_finder.cpp",
"$spirv_tools/source/reduce/remove_relaxed_precision_decoration_opportunity_finder.h",
"$spirv_tools/source/reduce/remove_selection_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/remove_selection_reduction_opportunity.h",
"$spirv_tools/source/reduce/remove_selection_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/remove_selection_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/remove_unreferenced_instruction_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/remove_unreferenced_instruction_reduction_opportunity_finder.h",
"$spirv_tools/source/reduce/simple_conditional_branch_to_branch_opportunity_finder.cpp",
"$spirv_tools/source/reduce/simple_conditional_branch_to_branch_opportunity_finder.h",
"$spirv_tools/source/reduce/simple_conditional_branch_to_branch_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/simple_conditional_branch_to_branch_reduction_opportunity.h",
"$spirv_tools/source/reduce/structured_loop_to_selection_reduction_opportunity.cpp",
"$spirv_tools/source/reduce/structured_loop_to_selection_reduction_opportunity.h",
"$spirv_tools/source/reduce/structured_loop_to_selection_reduction_opportunity_finder.cpp",
"$spirv_tools/source/reduce/structured_loop_to_selection_reduction_opportunity_finder.h",
"$spirv_tools/source/spirv_reducer_options.cpp",
"$spirv_tools/source/spirv_reducer_options.h",
]
deps = [
":spvtools",
":spvtools_opt",
]
configs += [ ":spvtools_internal_config" ]
}
group("SPIRV-Tools") {
deps = [
":spvtools",
":spvtools_link",
":spvtools_opt",
":spvtools_reduce",
":spvtools_val",
]
}