From 3a67b8e46bb6b3af81223f64359dc76891d5d242 Mon Sep 17 00:00:00 2001 From: Chris Dalton Date: Thu, 3 May 2018 09:30:29 -0600 Subject: Add support for building with MoltenVK Bug: skia: Change-Id: If55785d7fcc6e2c92c961ac390700add874c8d6d Reviewed-on: https://skia-review.googlesource.com/125601 Commit-Queue: Mike Klein Reviewed-by: Mike Klein --- BUILD.gn | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) (limited to 'BUILD.gn') diff --git a/BUILD.gn b/BUILD.gn index 6548b842ae..aee0fd1a1e 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -44,6 +44,7 @@ declare_args() { skia_enable_vulkan_debug_layers = is_skia_dev_build && is_debug skia_vulkan_header = "" skia_vulkan_sdk = getenv("VULKAN_SDK") + skia_moltenvk_path = "" skia_qt_path = getenv("QT_PATH") skia_compile_processors = false skia_generate_workarounds = false @@ -69,7 +70,7 @@ declare_args() { } else if (is_fuchsia) { skia_use_vulkan = fuchsia_use_vulkan } else { - skia_use_vulkan = skia_vulkan_sdk != "" + skia_use_vulkan = skia_vulkan_sdk != "" || skia_moltenvk_path != "" } if (is_ios) { @@ -223,6 +224,32 @@ config("skia_library") { defines = [ "SKIA_IMPLEMENTATION=1" ] } +config("moltenvk") { + if (is_ios) { + moltenvk_framework_path = "$skia_moltenvk_path/MoltenVK/iOS" + } else { + moltenvk_framework_path = "$skia_moltenvk_path/MoltenVK/macOS" + } + cflags = [ + "-F$moltenvk_framework_path", + "-isystem$skia_moltenvk_path/MoltenVK/include", # for + ] + ldflags = [ "-F$moltenvk_framework_path" ] + libs = [ + "MoltenVK.framework", + "Metal.framework", + "IOSurface.framework", + "QuartzCore.framework", + "Foundation.framework", + ] + if (is_ios) { + libs += [ "UIKit.framework" ] + } else { + libs += [ "IOKit.framework" ] + } + defines = [ "SK_MOLTENVK" ] +} + skia_library_configs = [ ":skia_public", ":skia_private", @@ -350,6 +377,9 @@ template("optional") { if (defined(invoker.public_defines)) { defines = invoker.public_defines } + if (defined(invoker.public_configs)) { + configs = invoker.public_configs + } } source_set(target_name) { forward_variables_from(invoker, @@ -591,6 +621,7 @@ optional("gpu") { deps += [ ":workaround_list" ] } public_defines = [] + public_configs = [] sources = skia_gpu_sources + skia_sksl_sources + skia_gpu_processor_outputs @@ -633,10 +664,13 @@ optional("gpu") { } if (skia_vulkan_header != "") { public_defines += [ "SK_VULKAN_HEADER=\"$skia_vulkan_header\"" ] - } else { - if (is_skia_dev_build) { - public_defines += [ "SK_VULKAN_HEADER=\"GrVulkanDefines.h\"" ] - } + } else if (skia_moltenvk_path != "") { + public_defines += [ "SK_VULKAN_HEADER=" ] + } else if (is_skia_dev_build) { + public_defines += [ "SK_VULKAN_HEADER=\"GrVulkanDefines.h\"" ] + } + if (skia_moltenvk_path != "") { + public_configs += [ ":moltenvk" ] } } if (skia_use_legacy_gpu_pixel_ops) { -- cgit v1.2.3