1# Copyright (c) 2017 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5# This file contains configs that need to be added or removed to all 6# SwiftShader libraries 7 8import("//build_overrides/build.gni") 9import("//build_overrides/spirv_tools.gni") 10import("//build_overrides/swiftshader.gni") 11 12if (!swiftshader_standalone) { 13 import("//build/config/sanitizers/sanitizers.gni") 14} else { 15 declare_args() { 16 is_ubsan_vptr = false 17 } 18} 19 20declare_args() { 21 # By default, build SwiftShader with optimizations enabled in debug 22 # for performance reasons. Set to false to build as unoptimized. 23 swiftshader_optimized_debug_build = true 24} 25 26configs_to_add = [] 27configs_to_delete = [] 28 29if (is_win) { 30 configs_to_delete += [ "//build/config/win:unicode" ] 31} 32 33if (is_debug && swiftshader_optimized_debug_build) { 34 configs_to_delete += [ "//build/config/compiler:default_optimization" ] 35 configs_to_add += [ "//build/config/compiler:optimize" ] 36} 37 38configs_to_delete += [ "//build/config/compiler:chromium_code" ] 39configs_to_add += [ 40 "//build/config/compiler:no_chromium_code", 41 "$swiftshader_dir:swiftshader_config", 42] 43 44template("swiftshader_source_set") { 45 source_set(target_name) { 46 configs -= configs_to_delete 47 configs += configs_to_add 48 forward_variables_from(invoker, "*", [ "configs" ]) 49 if (defined(invoker.configs)) { 50 configs += invoker.configs 51 } 52 } 53} 54 55template("swiftshader_shared_library") { 56 shared_library(target_name) { 57 configs -= configs_to_delete 58 configs += configs_to_add 59 forward_variables_from(invoker, "*", [ "configs" ]) 60 if (defined(invoker.configs)) { 61 configs += invoker.configs 62 } 63 } 64} 65 66template("swiftshader_static_library") { 67 static_library(target_name) { 68 configs -= configs_to_delete 69 configs += configs_to_add 70 forward_variables_from(invoker, "*", [ "configs" ]) 71 if (defined(invoker.configs)) { 72 configs += invoker.configs 73 } 74 } 75} 76