| # Copyright 2018 Google Inc. |
| # |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| if (is_fuchsia) { |
| import("//build/vulkan/config.gni") |
| } |
| |
| declare_args() { |
| skia_vulkan_header = "" |
| skia_tools_vulkan_header_dir = "" |
| |
| # When buliding on Android we get the header via the NDK so no need for any extra path. |
| if (is_fuchsia) { |
| skia_tools_vulkan_header_dir = "$fuchsia_vulkan_sdk/include" |
| } else if (is_linux || is_win) { |
| if (defined(skia_vulkan_sdk) && skia_vulkan_sdk != "") { |
| skia_tools_vulkan_header_dir = "$skia_vulkan_sdk/include" |
| } |
| } |
| } |
| |
| config("moltenvk") { |
| if (defined(skia_moltenvk_path) && skia_moltenvk_path != "") { |
| 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 <vulkan/vulkan.h> |
| ] |
| 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" ] |
| } |
| } |
| |
| config("vulkan_config") { |
| include_dirs = [] |
| configs = [] |
| |
| if (skia_tools_vulkan_header_dir != "") { |
| include_dirs += [ skia_tools_vulkan_header_dir ] |
| } |
| defines = [ "SK_VULKAN" ] |
| if (skia_vulkan_header != "") { |
| defines += [ "SK_VULKAN_HEADER=\"$skia_vulkan_header\"" ] |
| } else if (defined(is_skia_standalone) && is_skia_standalone && |
| !is_official_build) { |
| defines += [ "SK_VULKAN_HEADER=\"GrVulkanDefines.h\"" ] |
| } |
| if (defined(skia_moltenvk_path) && skia_moltenvk_path != "") { |
| configs += [ ":moltenvk" ] |
| } |
| } |
| |
| source_set("vulkan") { |
| public_configs = [ ":vulkan_config" ] |
| } |