Index: gyp/shaderc.gyp |
diff --git a/gyp/shaderc.gyp b/gyp/shaderc.gyp |
index 32026850afa1803b10a9235ffe67083a1b2e0617..31fd897aeabfc5190b1ab0926ad2865a144012aa 100644 |
--- a/gyp/shaderc.gyp |
+++ b/gyp/shaderc.gyp |
@@ -5,80 +5,334 @@ |
# Builds shaderc for the Vulkan backend |
{ |
- 'variables': { |
- 'variables': { # This is the dreaded nested variables dict so that we can |
- # have dependent variables |
- 'shaderc_build_configuration': '<(CONFIGURATION_NAME)', |
- 'conditions': [ |
- [ 'skia_os == "win"', { |
- 'shaderc_lib_name' : 'shaderc_combined.lib', |
- }, { |
- 'shaderc_lib_name' : 'libshaderc_combined.a', |
- }], |
- [ 'skia_os == "win"', { |
- 'conditions': [ |
- [ 'MSVS_VERSION == "2013"', { |
- 'shaderc_project_type' : 'MSVS2013', |
- }], |
- [ 'MSVS_VERSION == "2015"', { |
- 'shaderc_project_type' : 'MSVS2015', |
- }], |
- ], |
- }, { |
- 'shaderc_project_type' : 'ninja', |
- }], |
- ], |
- 'shaderc_out_path': '<(PRODUCT_DIR)/shaderc_out_<(skia_arch_type)', |
- }, |
- # Export out of nested variables. |
- 'shaderc_build_configuration': '<(shaderc_build_configuration)', |
- 'shaderc_project_type': '<(shaderc_project_type)', |
- 'shaderc_out_path': '<(shaderc_out_path)', |
- 'shaderc_lib_name': '<(shaderc_lib_name)', |
- 'android_toolchain%': '', |
- |
- # On Windows the library winds up inside a 'Debug' or 'Release' dir, not so |
- # with ninja project build. |
- 'conditions': [ |
- [ 'skia_os == "win"', { |
- 'shaderc_lib_full_path': '<(shaderc_out_path)/libshaderc/<(shaderc_build_configuration)/<(shaderc_lib_name)', |
- }, { |
- 'shaderc_lib_full_path': '<(shaderc_out_path)/libshaderc/<(shaderc_lib_name)', |
- }], |
- ] |
- }, |
- 'targets': [ |
+ 'targets': [ |
{ |
- # Call out to a python script to build shaderc_combined and then copy it |
- # to out/<Configuration> |
'target_name': 'shaderc_combined', |
+ 'type': 'static_library', |
+ 'dependencies': [ |
+ 'libshaderc', |
+ 'libshaderc_util', |
+ 'liboglcompiler', |
+ 'libspirv', |
+ 'libglslangosdependent', |
+ 'libglslang', |
+ ], |
+ }, |
+ { |
+ 'target_name': 'libshaderc', |
+ 'type': 'static_library', |
+ 'cflags': [ |
+ '-w', |
+ ], |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w' |
+ ], |
+ }, |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/libshaderc/include', |
+ '../third_party/externals/shaderc2/libshaderc_util/include', |
+ '../third_party/externals/shaderc2/third_party/glslang', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/libshaderc/include/shaderc/shaderc.hpp', |
+ '../third_party/externals/shaderc2/libshaderc/src/shaderc.cc', |
+ ], |
+ }, |
+ { |
+ 'target_name': 'libshaderc_util', |
+ 'type': 'static_library', |
+ 'dependencies': [ |
+ 'libspirvtools' |
+ ], |
+ 'cflags': [ |
+ '-w', |
+ ], |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w' |
+ ], |
+ }, |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/libshaderc_util/include', |
+ '../third_party/externals/shaderc2/third_party/glslang', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/include', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/libshaderc_util/src/compiler.cc', |
+ '../third_party/externals/shaderc2/libshaderc_util/src/file_finder.cc', |
+ '../third_party/externals/shaderc2/libshaderc_util/src/io.cc', |
+ '../third_party/externals/shaderc2/libshaderc_util/src/message.cc', |
+ '../third_party/externals/shaderc2/libshaderc_util/src/resources.cc', |
+ '../third_party/externals/shaderc2/libshaderc_util/src/shader_stage.cc', |
+ '../third_party/externals/shaderc2/libshaderc_util/src/version_profile.cc', |
+ ], |
+ }, |
+ { |
+ 'target_name': 'libspirv', |
+ 'type': 'static_library', |
+ 'cflags': [ |
+ '-w', |
+ ], |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w' |
+ ], |
+ }, |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/third_party/glslang', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/SPIRV/GlslangToSpv.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/SPIRV/InReadableOrder.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/SPIRV/SpvBuilder.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/SPIRV/SPVRemapper.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/SPIRV/doc.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/SPIRV/disassemble.cpp', |
+ ], |
+ }, |
+ { |
+ 'target_name': 'liboglcompiler', |
+ 'type': 'static_library', |
+ 'cflags': [ |
+ '-w', |
+ ], |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w' |
+ ], |
+ }, |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/OGLCompilersDLL', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/OGLCompilersDLL/InitializeDll.cpp', |
+ ], |
+ }, |
+ { |
+ 'target_name': 'libglslangosdependent', |
+ 'type': 'static_library', |
+ 'cflags': [ |
+ '-w', |
+ ], |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w' |
+ ], |
+ }, |
+ 'conditions': [ |
+ ['skia_os == "win"', { |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/OSDependent/Windows', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/OSDependent/Windows/ossource.cpp', |
+ ], |
+ }, { |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/OSDependent/Unix', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/OSDependent/Unix/ossource.cpp', |
+ ], |
+ }], |
+ ], |
+ }, |
+ { |
+ 'target_name': 'libglslang', |
+ 'type': 'static_library', |
+ 'cflags': [ |
+ '-w', |
+ ], |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w' |
+ ], |
+ }, |
+ 'msvs_settings': { |
+ 'VCCLCompilerTool': { |
+ 'AdditionalOptions': [ |
+ '/wd4800', |
+ '/wd4005', |
+ '/wd4189', |
+ ], |
+ }, |
+ }, |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/Include', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/glslang.y', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/glslang_tab.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/Constant.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/InfoSink.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/Initialize.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/IntermTraverse.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/Intermediate.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/ParseHelper.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/PoolAlloc.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/RemoveTree.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/Scan.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/ShaderLang.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/SymbolTable.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/Versions.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/intermOut.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/limits.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/linkValidate.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/parseConst.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/reflection.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/preprocessor/PpMemory.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/preprocessor/PpSymbols.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/GenericCodeGen/CodeGen.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/glslang/GenericCodeGen/Link.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/hlsl/hlslParseHelper.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/hlsl/hlslScanContext.cpp', |
+ '../third_party/externals/shaderc2/third_party/glslang/hlsl/hlslGrammar.cpp', |
+ ], |
+ }, |
+ { |
+ 'target_name': 'libspirvtools', |
+ 'type': 'static_library', |
+ 'dependencies': [ |
+ 'genspirvtools', |
+ ], |
+ 'cflags': [ |
+ '-w', |
+ ], |
+ 'xcode_settings': { |
+ 'WARNING_CFLAGS': [ |
+ '-w' |
+ ], |
+ }, |
+ 'msvs_settings': { |
+ 'VCCLCompilerTool': { |
+ 'AdditionalOptions': [ |
+ '/wd4800', |
+ ], |
+ }, |
+ }, |
+ 'include_dirs': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/include', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source', |
+ ], |
+ 'sources': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/assembly_grammar.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/binary.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/diagnostic.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/disassemble.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/ext_inst.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/instruction.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/opcode.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/operand.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/print.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv_endian.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv_target_env.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/table.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/text.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/text_handler.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/validate.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/validate_cfg.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/validate_id.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/validate_instruction.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/validate_layout.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/validate_ssa.cpp', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/validate_types.cpp', |
+ ], |
+ }, |
+ { |
+ 'target_name': 'genspirvtools', |
'type': 'none', |
'actions': [ |
{ |
- 'action_name': 'compile_shaderc', |
+ 'action_name': 'produce_glsl-1-0', |
'inputs': [ |
- '<!@(python find.py ../third_party/externals/shaderc2 "*")', |
- '../tools/build_shaderc.py', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-0.core.grammar.json', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/extinst-1-0.glsl.std.450.grammar.json', |
], |
'outputs': [ |
- '<(shaderc_lib_full_path)', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/glsl.std.450.insts-1-0.inc', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '--spirv-core-grammar', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-0.core.grammar.json', |
+ '--extinst-glsl-grammar', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/extinst-1-0.glsl.std.450.grammar.json', |
+ '--glsl-insts-output', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/glsl.std.450.insts-1-0.inc', |
+ ], |
+ }, |
+ { |
+ 'action_name': 'produce_core_operand-1-0', |
+ 'inputs': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-0.core.grammar.json', |
+ ], |
+ 'outputs': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/core.insts-1-0.inc', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/operand.kinds-1-0.inc', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '--spirv-core-grammar', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-0.core.grammar.json', |
+ '--core-insts-output', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/core.insts-1-0.inc', |
+ '--operand-kinds-output', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/operand.kinds-1-0.inc' |
+ ], |
+ }, |
+ { |
+ 'action_name': 'produce_core_operand-1-1', |
+ 'inputs': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-1.core.grammar.json', |
+ ], |
+ 'outputs': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/core.insts-1-1.inc', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/operand.kinds-1-1.inc', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '--spirv-core-grammar', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-1.core.grammar.json', |
+ '--core-insts-output', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/core.insts-1-1.inc', |
+ '--operand-kinds-output', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/operand.kinds-1-1.inc' |
], |
- 'action': ['python', '../tools/build_shaderc.py', '-s', '../third_party/externals/shaderc2', '-o', '<(shaderc_out_path)', '-a', '<(skia_arch_type)', '-t', '<(shaderc_build_configuration)', '-p', '<(shaderc_project_type)', '-c', '<(android_toolchain)'], |
}, |
- ], |
- 'copies': [ |
{ |
- 'destination': '<(PRODUCT_DIR)', |
- 'files': ['<(shaderc_lib_full_path)'], |
+ 'action_name': 'produce_opencl-1-0', |
+ 'inputs': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-0.core.grammar.json', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/extinst-1-0.opencl.std.grammar.json', |
+ ], |
+ 'outputs': [ |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/opencl.std.insts-1-0.inc', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/utils/generate_grammar_tables.py', |
+ '--spirv-core-grammar', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/spirv-1-1.core.grammar.json', |
+ '--extinst-opencl-grammar', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/extinst-1-0.opencl.std.grammar.json', |
+ '--opencl-insts-output', |
+ '../third_party/externals/shaderc2/third_party/spirv-tools/source/opencl.std.insts-1-0.inc' |
+ ], |
}, |
], |
- 'all_dependent_settings': { |
- 'link_settings': { |
- 'libraries': [ |
- '<(shaderc_lib_name)', |
- ], |
- }, |
- }, |
}, |
], |
} |