Move gn setup for vulkan library/headers into their own third_party directory.
Bug: skia: Change-Id: I4605f0d962271efb77bf3c17f1b0daaaddfb51c8 Reviewed-on: https://skia-review.googlesource.com/128540 Commit-Queue: Greg Daniel <egdaniel@google.com> Reviewed-by: Mike Klein <mtklein@google.com> Reviewed-by: Ben Wagner <bungeman@google.com>
This commit is contained in:
parent
4dc5a45405
commit
477094250c
69
BUILD.gn
69
BUILD.gn
@ -43,9 +43,6 @@ declare_args() {
|
|||||||
skia_enable_spirv_validation = is_skia_dev_build && is_debug
|
skia_enable_spirv_validation = is_skia_dev_build && is_debug
|
||||||
skia_enable_tools = is_skia_dev_build
|
skia_enable_tools = is_skia_dev_build
|
||||||
skia_enable_vulkan_debug_layers = is_skia_dev_build && is_debug
|
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_qt_path = getenv("QT_PATH")
|
||||||
skia_compile_processors = false
|
skia_compile_processors = false
|
||||||
skia_generate_workarounds = false
|
skia_generate_workarounds = false
|
||||||
@ -79,17 +76,6 @@ declare_args() {
|
|||||||
skia_ios_profile = "Google Development"
|
skia_ios_profile = "Google Development"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
declare_args() {
|
|
||||||
skia_tools_vulkan_header_dir = ""
|
|
||||||
if (skia_use_vulkan) {
|
|
||||||
# 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) {
|
|
||||||
skia_tools_vulkan_header_dir = "$skia_vulkan_sdk/include"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (defined(skia_settings)) {
|
if (defined(skia_settings)) {
|
||||||
import(skia_settings)
|
import(skia_settings)
|
||||||
@ -131,9 +117,6 @@ if (skia_use_metal) {
|
|||||||
# Skia public API, generally provided by :skia.
|
# Skia public API, generally provided by :skia.
|
||||||
config("skia_public") {
|
config("skia_public") {
|
||||||
include_dirs = skia_public_includes
|
include_dirs = skia_public_includes
|
||||||
if (skia_tools_vulkan_header_dir != "") {
|
|
||||||
include_dirs += [ skia_tools_vulkan_header_dir ]
|
|
||||||
}
|
|
||||||
defines = []
|
defines = []
|
||||||
if (is_component_build) {
|
if (is_component_build) {
|
||||||
defines += [ "SKIA_DLL" ]
|
defines += [ "SKIA_DLL" ]
|
||||||
@ -225,32 +208,6 @@ config("skia_library") {
|
|||||||
defines = [ "SKIA_IMPLEMENTATION=1" ]
|
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 <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" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
skia_library_configs = [
|
skia_library_configs = [
|
||||||
":skia_public",
|
":skia_public",
|
||||||
":skia_private",
|
":skia_private",
|
||||||
@ -402,6 +359,7 @@ template("optional") {
|
|||||||
"*",
|
"*",
|
||||||
[
|
[
|
||||||
"public_defines",
|
"public_defines",
|
||||||
|
"public_deps",
|
||||||
"deps",
|
"deps",
|
||||||
"libs",
|
"libs",
|
||||||
"sources",
|
"sources",
|
||||||
@ -623,6 +581,7 @@ optional("gpu") {
|
|||||||
}
|
}
|
||||||
public_defines = []
|
public_defines = []
|
||||||
public_configs = []
|
public_configs = []
|
||||||
|
public_deps = []
|
||||||
|
|
||||||
sources = skia_gpu_sources + skia_sksl_sources + skia_gpu_processor_outputs
|
sources = skia_gpu_sources + skia_sksl_sources + skia_gpu_processor_outputs
|
||||||
|
|
||||||
@ -658,22 +617,17 @@ optional("gpu") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (skia_use_vulkan) {
|
if (skia_use_vulkan) {
|
||||||
public_defines += [ "SK_VULKAN" ]
|
# TODO: We should make this deps be //third_party/vulkan and then update clients to have a
|
||||||
|
# //third_party/vulkan directory in their trees so they can set up the vulkan library however
|
||||||
|
# they want. For example this would allow us to remove the fuchsia specific vulkan code in our
|
||||||
|
# vulkan files.
|
||||||
|
public_deps += [ "third_party/vulkan" ]
|
||||||
sources += skia_vk_sources
|
sources += skia_vk_sources
|
||||||
if (skia_enable_vulkan_debug_layers) {
|
if (skia_enable_vulkan_debug_layers) {
|
||||||
public_defines += [ "SK_ENABLE_VK_LAYERS" ]
|
public_defines += [ "SK_ENABLE_VK_LAYERS" ]
|
||||||
}
|
}
|
||||||
if (skia_vulkan_header != "") {
|
|
||||||
public_defines += [ "SK_VULKAN_HEADER=\"$skia_vulkan_header\"" ]
|
|
||||||
} else if (skia_moltenvk_path != "") {
|
|
||||||
public_defines += [ "SK_VULKAN_HEADER=<MoltenVK/mvk_vulkan.h>" ]
|
|
||||||
} 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) {
|
if (skia_use_legacy_gpu_pixel_ops) {
|
||||||
public_defines += [ "SK_LEGACY_GPU_PIXEL_OPS" ]
|
public_defines += [ "SK_LEGACY_GPU_PIXEL_OPS" ]
|
||||||
}
|
}
|
||||||
@ -891,7 +845,6 @@ component("skia") {
|
|||||||
":fontmgr_empty",
|
":fontmgr_empty",
|
||||||
":fontmgr_fontconfig",
|
":fontmgr_fontconfig",
|
||||||
":fontmgr_fuchsia",
|
":fontmgr_fuchsia",
|
||||||
":gpu",
|
|
||||||
":heif",
|
":heif",
|
||||||
":hsw",
|
":hsw",
|
||||||
":jpeg",
|
":jpeg",
|
||||||
@ -908,6 +861,12 @@ component("skia") {
|
|||||||
":xml",
|
":xml",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# We need the public deps here for Vulkan. Our third_party/vulkan target sets some defines that
|
||||||
|
# need to get propagated up to the tools that depend on :skia and thus :gpu.
|
||||||
|
public_deps = [
|
||||||
|
":gpu",
|
||||||
|
]
|
||||||
|
|
||||||
# This file (and all GN files in Skia) are designed to work with an
|
# This file (and all GN files in Skia) are designed to work with an
|
||||||
# empty sources assignment filter; we handle all that explicitly.
|
# empty sources assignment filter; we handle all that explicitly.
|
||||||
# We clear the filter here for clients who may have set up a global filter.
|
# We clear the filter here for clients who may have set up a global filter.
|
||||||
|
@ -33,6 +33,9 @@ declare_args() {
|
|||||||
win_toolchain_version = ""
|
win_toolchain_version = ""
|
||||||
|
|
||||||
clang_win = ""
|
clang_win = ""
|
||||||
|
|
||||||
|
skia_vulkan_sdk = getenv("VULKAN_SDK")
|
||||||
|
skia_moltenvk_path = ""
|
||||||
}
|
}
|
||||||
declare_args() {
|
declare_args() {
|
||||||
is_debug = !is_official_build
|
is_debug = !is_official_build
|
||||||
|
65
third_party/vulkan/BUILD.gn
vendored
Normal file
65
third_party/vulkan/BUILD.gn
vendored
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
# Copyright 2018 Google Inc.
|
||||||
|
#
|
||||||
|
# Use of this source code is governed by a BSD-style license that can be
|
||||||
|
# found in the LICENSE file.
|
||||||
|
|
||||||
|
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) {
|
||||||
|
skia_tools_vulkan_header_dir = "$skia_vulkan_sdk/include"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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 <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 = []
|
||||||
|
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 (skia_moltenvk_path != "") {
|
||||||
|
defines += [ "SK_VULKAN_HEADER=<MoltenVK/mvk_vulkan.h>" ]
|
||||||
|
} else if (defined(is_skia_standalone) && is_skia_standalone &&
|
||||||
|
!is_official_build) {
|
||||||
|
defines += [ "SK_VULKAN_HEADER=\"GrVulkanDefines.h\"" ]
|
||||||
|
}
|
||||||
|
if (skia_moltenvk_path != "") {
|
||||||
|
public_configs += [ ":moltenvk" ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
source_set("vulkan") {
|
||||||
|
public_configs = [ ":vulkan_config" ]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user