| # Copyright 2016 Google Inc. |
| # |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # 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': [ |
| [ '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': [ |
| { |
| # Call out to a python script to build shaderc_combined and then copy it |
| # to out/<Configuration> |
| 'target_name': 'shaderc_combined', |
| 'type': 'none', |
| 'actions': [ |
| { |
| 'action_name': 'compile_shaderc', |
| 'inputs': [ |
| '<!@(python find.py ../third_party/externals/shaderc2 "*")', |
| '../tools/build_shaderc.py', |
| ], |
| 'outputs': [ |
| '<(shaderc_lib_full_path)', |
| ], |
| '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/<(CONFIGURATION_NAME)', |
| 'files': ['<(shaderc_lib_full_path)'], |
| }, |
| ], |
| 'all_dependent_settings': { |
| 'link_settings': { |
| 'libraries': [ |
| '<(shaderc_lib_name)', |
| ], |
| }, |
| }, |
| }, |
| ], |
| } |