You've already forked GPUOpen-LibrariesAndSDKs.VulkanMemoryAllocator
57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
# Copyright 2020 The ANGLE Project Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
#
|
|
# Custom GN integration for VulkanMemoryAllocator.
|
|
|
|
# To use this template, instantiate a vulkan_memory_allocator with the right
|
|
# dependencies that you need. For example:
|
|
#
|
|
# vulkan_memory_allocator("my_vma") {
|
|
# deps = [ ":my_vulkan_headers" ]
|
|
# vulkan_memory_allocator_dir = "$my_vma_path"
|
|
# }
|
|
#
|
|
# Because some projects may load entry points differently this template pattern
|
|
# lets us handle different implementations in the same code base.
|
|
|
|
template("vulkan_memory_allocator") {
|
|
config("${target_name}_config") {
|
|
include_dirs = [ "${invoker.vulkan_memory_allocator_dir}/src" ]
|
|
if (is_clang) {
|
|
cflags_cc = [
|
|
"-Wno-implicit-fallthrough",
|
|
"-Wno-nullability-completeness",
|
|
"-Wno-unused-private-field",
|
|
"-Wno-unused-variable",
|
|
]
|
|
}
|
|
if (is_win && !is_clang) {
|
|
cflags_cc = [
|
|
"/wd4189", # local variable is initialized but not referenced
|
|
]
|
|
}
|
|
}
|
|
|
|
source_set(target_name) {
|
|
sources = [
|
|
# vk_mem_alloc.cpp allows the functions to be compiled into an object file
|
|
# and the consumers of vulkan_memory_allocator to use the prototypes.
|
|
"${invoker.vulkan_memory_allocator_dir}/src/vk_mem_alloc.h",
|
|
]
|
|
|
|
forward_variables_from(invoker, "*")
|
|
if (defined(defines)) {
|
|
defines += [ "VMA_IMPLEMENTATION" ]
|
|
} else {
|
|
defines = [ "VMA_IMPLEMENTATION" ]
|
|
}
|
|
|
|
if (defined(public_configs)) {
|
|
public_configs += [ ":${target_name}_config" ]
|
|
} else {
|
|
public_configs = [ ":${target_name}_config" ]
|
|
}
|
|
}
|
|
}
|