Index: gyp/shaderc.gyp |
diff --git a/gyp/shaderc.gyp b/gyp/shaderc.gyp |
index 2b1b8f1debc0f76b18eb8a4bd552e10b25a305d1..26af80a4d1e19f5f0613dc214bd7c21c368f19ad 100644 |
--- a/gyp/shaderc.gyp |
+++ b/gyp/shaderc.gyp |
@@ -6,25 +6,49 @@ |
# Builds shaderc for the Vulkan backend |
{ |
'variables': { |
+ 'variables': { # This is the dreaded nested variables dict so that we can |
+ # have dependent variables |
+ 'conditions': [ |
+ [ 'CONFIGURATION_NAME == "Release_Developer"', { |
+ 'shaderc_build_configuration' : 'Release', |
+ }, { |
+ 'shaderc_build_configuration' : '<(CONFIGURATION_NAME)', |
+ }], |
+ [ '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': '../out/<(CONFIGURATION_NAME)/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)', |
+ |
+ # On Windows the library winds up inside a 'Debug' or 'Release' dir, not so |
+ # with ninja project build. |
'conditions': [ |
- [ 'CONFIGURATION_NAME == "Release_Developer"', { |
- 'shaderc_build_type' : 'Release', |
- }, { |
- 'shaderc_build_type' : '<(CONFIGURATION_NAME)', |
- }], |
[ 'skia_os == "win"', { |
- 'shaderc_lib_name' : 'shaderc_combined.lib', |
+ 'shaderc_lib_full_path': '<(shaderc_out_path)/libshaderc/<(shaderc_build_configuration)/<(shaderc_lib_name)', |
}, { |
- 'shaderc_lib_name' : 'libshaderc_combined.a', |
- }], |
- [ 'MSVS_VERSION == "2013"', { |
- 'shaderc_project_type' : 'MSVS2013', |
- }], |
- [ 'MSVS_VERSION == "2015"', { |
- 'shaderc_project_type' : 'MSVS2015', |
+ 'shaderc_lib_full_path': '<(shaderc_out_path)/libshaderc/<(shaderc_lib_name)', |
}], |
- ], |
- 'skia_build_type' : '<(CONFIGURATION_NAME)', |
+ ] |
}, |
'targets': [ |
{ |
@@ -40,21 +64,21 @@ |
'../tools/build_shaderc.py', |
], |
'outputs': [ |
- '../out/<(skia_build_type)/shaderc_out_<(skia_arch_type)/libshaderc/<(shaderc_build_type)/<(shaderc_lib_name)', |
+ '<(shaderc_lib_full_path)', |
], |
- 'action': ['python', '../tools/build_shaderc.py', '-s', '../third_party/externals/shaderc2', '-o', '../out/<(skia_build_type)/shaderc_out_<(skia_arch_type)', '-a', '<(skia_arch_type)', '-t', '<(shaderc_build_type)', '-p', '<(shaderc_project_type)'], |
+ '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)'], |
}, |
], |
'copies': [ |
{ |
- 'destination': '../out/<(skia_build_type)', |
- 'files': ['../out/<(skia_build_type)/shaderc_out_<(skia_arch_type)/libshaderc/<(shaderc_build_type)/<(shaderc_lib_name)'], |
+ 'destination': '../out/<(CONFIGURATION_NAME)', |
+ 'files': ['<(shaderc_lib_full_path)'], |
}, |
], |
'all_dependent_settings': { |
'link_settings': { |
'libraries': [ |
- '-lshaderc_combined', |
+ '<(shaderc_lib_name)', |
], |
}, |
}, |