aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar bsalomon <bsalomon@google.com>2016-03-04 13:38:26 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2016-03-04 13:38:27 -0800
commit41dc3d63a587b6bf4e437ac114485e62c42abe41 (patch)
tree931eae0e6b0b0df735b6e261d81282978000da89
parent6a738217eaeb9aed45a07efdfc1ae52372430d87 (diff)
Support building Vulkan on Linux.
-rw-r--r--gyp/gpu.gyp37
-rw-r--r--gyp/shaderc.gyp64
2 files changed, 67 insertions, 34 deletions
diff --git a/gyp/gpu.gyp b/gyp/gpu.gyp
index 7b644bb474..c6202555db 100644
--- a/gyp/gpu.gyp
+++ b/gyp/gpu.gyp
@@ -235,33 +235,42 @@
},
}],
[ 'skia_vulkan', {
- 'variables': {
- 'conditions': [
- [ 'skia_os == "win"', {
+ 'conditions': [
+ [ 'skia_os == "win"', {
+ 'variables': {
+ 'vulkan_lib_name': '-lvulkan-1',
'vulkan_sdk_path' : '<!(echo %VK_SDK_PATH%)',
- }, {
- 'vulkan_sdk_path' : '<!(echo $VK_SDK_PATH)',
- }],
- ],
- },
+ },
+ 'include_dirs': [
+ '<(vulkan_sdk_path)/Include',
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
+ '<(vulkan_sdk_path)/Include',
+ ],
+ },
+ 'link_settings': {
+ 'library_dirs': [ '<(vulkan_sdk_path)/Bin', ],
+ },
+ }, {
+ 'variables': {
+ 'vulkan_lib_name': '-lvulkan',
+ },
+ }],
+ ],
'dependencies': [
'shaderc.gyp:shaderc_combined',
],
'include_dirs': [
- '../third_party/', # To include files under third_party/vulkan
'../third_party/externals/shaderc2/libshaderc/include',
- '<(vulkan_sdk_path)/Include',
],
'direct_dependent_settings': {
'include_dirs': [
- '../third_party/', # To include files under third_party/vulkan
'../third_party/externals/shaderc2/libshaderc/include',
- '<(vulkan_sdk_path)/Include',
],
},
'link_settings': {
- 'library_dirs': [ '<(vulkan_sdk_path)/Bin', ],
- 'libraries': [ '-lvulkan-1', ],
+ 'libraries': [ '<(vulkan_lib_name)', ],
},
}, {
'sources!': [
diff --git a/gyp/shaderc.gyp b/gyp/shaderc.gyp
index 2b1b8f1deb..26af80a4d1 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)',
],
},
},