| # Copyright (c) 2017 The Chromium Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| # This file contains configs that need to be added or removed to all | |
| # SwiftShader libraries | |
| import("//build_overrides/build.gni") | |
| import("//build_overrides/spirv_tools.gni") | |
| import("//build_overrides/swiftshader.gni") | |
| if (!swiftshader_standalone) { | |
| import("//build/config/sanitizers/sanitizers.gni") | |
| } else { | |
| declare_args() { | |
| is_ubsan_vptr = false | |
| } | |
| } | |
| declare_args() { | |
| # By default, build SwiftShader with optimizations enabled in debug | |
| # for performance reasons. Set to false to build as unoptimized. | |
| swiftshader_optimized_debug_build = true | |
| # If enabled, debug builds on Windows will pop up a dialog when the | |
| # SwiftShader DLL gets loaded, to facilitate attaching a debugger. | |
| swiftshader_startup_dialog = false | |
| # Enable the ASTC codec sources from ARM | |
| swiftshader_enable_astc = true | |
| } | |
| configs_to_add = [] | |
| configs_to_delete = [] | |
| if (is_win) { | |
| configs_to_delete += [ "//build/config/win:unicode" ] | |
| } | |
| if (is_debug && swiftshader_optimized_debug_build) { | |
| configs_to_delete += [ "//build/config/compiler:default_optimization" ] | |
| configs_to_add += [ "//build/config/compiler:optimize" ] | |
| } | |
| configs_to_delete += [ "//build/config/compiler:chromium_code" ] | |
| configs_to_add += [ | |
| "//build/config/compiler:no_chromium_code", | |
| "$swiftshader_dir:swiftshader_config", | |
| ] | |
| template("swiftshader_source_set") { | |
| source_set(target_name) { | |
| if (is_apple) { | |
| # If a "build with ARC" config is present, remove it. | |
| if (filter_include(configs, [ "//build/config/compiler:enable_arc" ]) != | |
| []) { | |
| configs_to_delete += [ "//build/config/compiler:enable_arc" ] | |
| } | |
| } | |
| configs -= configs_to_delete | |
| configs += configs_to_add | |
| forward_variables_from(invoker, "*", [ "configs" ]) | |
| if (defined(invoker.configs)) { | |
| configs += invoker.configs | |
| } | |
| } | |
| } | |
| template("swiftshader_shared_library") { | |
| shared_library(target_name) { | |
| configs -= configs_to_delete | |
| configs += configs_to_add | |
| forward_variables_from(invoker, "*", [ "configs" ]) | |
| if (defined(invoker.configs)) { | |
| configs += invoker.configs | |
| } | |
| } | |
| } | |
| template("swiftshader_static_library") { | |
| static_library(target_name) { | |
| configs -= configs_to_delete | |
| configs += configs_to_add | |
| forward_variables_from(invoker, "*", [ "configs" ]) | |
| if (defined(invoker.configs)) { | |
| configs += invoker.configs | |
| } | |
| } | |
| } |