1*03ce13f7SAndroid Build Coastguard Worker# Copyright 2016 The SwiftShader Authors. All Rights Reserved. 2*03ce13f7SAndroid Build Coastguard Worker# 3*03ce13f7SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 4*03ce13f7SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 5*03ce13f7SAndroid Build Coastguard Worker# You may obtain a copy of the License at 6*03ce13f7SAndroid Build Coastguard Worker# 7*03ce13f7SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 8*03ce13f7SAndroid Build Coastguard Worker# 9*03ce13f7SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 10*03ce13f7SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 11*03ce13f7SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*03ce13f7SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 13*03ce13f7SAndroid Build Coastguard Worker# limitations under the License. 14*03ce13f7SAndroid Build Coastguard Worker 15*03ce13f7SAndroid Build Coastguard Workerimport("src/Reactor/reactor.gni") 16*03ce13f7SAndroid Build Coastguard Worker 17*03ce13f7SAndroid Build Coastguard Workerconfig("swiftshader_config") { 18*03ce13f7SAndroid Build Coastguard Worker cflags = [] 19*03ce13f7SAndroid Build Coastguard Worker defines = [] 20*03ce13f7SAndroid Build Coastguard Worker asmflags = [] 21*03ce13f7SAndroid Build Coastguard Worker 22*03ce13f7SAndroid Build Coastguard Worker if (is_clang) { 23*03ce13f7SAndroid Build Coastguard Worker cflags += [ "-Wno-shadow" ] 24*03ce13f7SAndroid Build Coastguard Worker } 25*03ce13f7SAndroid Build Coastguard Worker 26*03ce13f7SAndroid Build Coastguard Worker if (is_debug) { 27*03ce13f7SAndroid Build Coastguard Worker if (swiftshader_startup_dialog) { 28*03ce13f7SAndroid Build Coastguard Worker defines += [ "DEBUGGER_WAIT_DIALOG" ] 29*03ce13f7SAndroid Build Coastguard Worker } 30*03ce13f7SAndroid Build Coastguard Worker } 31*03ce13f7SAndroid Build Coastguard Worker if (is_win) { 32*03ce13f7SAndroid Build Coastguard Worker # Disable MSVC warnings about std::aligned_storage being broken before 33*03ce13f7SAndroid Build Coastguard Worker # VS 2017 15.8 34*03ce13f7SAndroid Build Coastguard Worker defines += [ "_ENABLE_EXTENDED_ALIGNED_STORAGE" ] 35*03ce13f7SAndroid Build Coastguard Worker 36*03ce13f7SAndroid Build Coastguard Worker # Diable some MSVC warnings. 37*03ce13f7SAndroid Build Coastguard Worker if (!is_clang) { 38*03ce13f7SAndroid Build Coastguard Worker cflags += [ 39*03ce13f7SAndroid Build Coastguard Worker "/wd4065", # switch statement contains 'default' but no 'case' labels 40*03ce13f7SAndroid Build Coastguard Worker "/wd4309", # Truncation of constant value. See PixelRoutine.cpp casts 41*03ce13f7SAndroid Build Coastguard Worker # of signed shorts. 42*03ce13f7SAndroid Build Coastguard Worker ] 43*03ce13f7SAndroid Build Coastguard Worker } 44*03ce13f7SAndroid Build Coastguard Worker } else if (!is_debug) { 45*03ce13f7SAndroid Build Coastguard Worker cflags += [ "-Os" ] 46*03ce13f7SAndroid Build Coastguard Worker } 47*03ce13f7SAndroid Build Coastguard Worker 48*03ce13f7SAndroid Build Coastguard Worker if (build_with_chromium) { 49*03ce13f7SAndroid Build Coastguard Worker if (is_clang) { 50*03ce13f7SAndroid Build Coastguard Worker if (current_cpu == "arm64") { 51*03ce13f7SAndroid Build Coastguard Worker import("//build/config/arm.gni") 52*03ce13f7SAndroid Build Coastguard Worker 53*03ce13f7SAndroid Build Coastguard Worker if (arm_control_flow_integrity == "standard") { 54*03ce13f7SAndroid Build Coastguard Worker cflags += [ "-mbranch-protection=standard" ] 55*03ce13f7SAndroid Build Coastguard Worker asmflags += [ "-mbranch-protection=standard" ] 56*03ce13f7SAndroid Build Coastguard Worker } else if (arm_control_flow_integrity == "pac") { 57*03ce13f7SAndroid Build Coastguard Worker cflags += [ "-mbranch-protection=pac-ret" ] 58*03ce13f7SAndroid Build Coastguard Worker asmflags += [ "-mbranch-protection=pac-ret" ] 59*03ce13f7SAndroid Build Coastguard Worker } else { 60*03ce13f7SAndroid Build Coastguard Worker assert(arm_control_flow_integrity == "none", 61*03ce13f7SAndroid Build Coastguard Worker "Invalid branch protection option!") 62*03ce13f7SAndroid Build Coastguard Worker } 63*03ce13f7SAndroid Build Coastguard Worker } 64*03ce13f7SAndroid Build Coastguard Worker } 65*03ce13f7SAndroid Build Coastguard Worker } 66*03ce13f7SAndroid Build Coastguard Worker} 67*03ce13f7SAndroid Build Coastguard Worker 68*03ce13f7SAndroid Build Coastguard Workergroup("swiftshader") { 69*03ce13f7SAndroid Build Coastguard Worker data_deps = [ 70*03ce13f7SAndroid Build Coastguard Worker "src/Vulkan:icd_file", 71*03ce13f7SAndroid Build Coastguard Worker "src/Vulkan:swiftshader_libvulkan", 72*03ce13f7SAndroid Build Coastguard Worker ] 73*03ce13f7SAndroid Build Coastguard Worker} 74*03ce13f7SAndroid Build Coastguard Worker 75*03ce13f7SAndroid Build Coastguard Workerif (build_with_chromium) { 76*03ce13f7SAndroid Build Coastguard Worker group("swiftshader_tests") { 77*03ce13f7SAndroid Build Coastguard Worker testonly = true 78*03ce13f7SAndroid Build Coastguard Worker 79*03ce13f7SAndroid Build Coastguard Worker data_deps = [ "tests/SystemUnitTests:swiftshader_system_unittests" ] 80*03ce13f7SAndroid Build Coastguard Worker 81*03ce13f7SAndroid Build Coastguard Worker if (supports_llvm) { 82*03ce13f7SAndroid Build Coastguard Worker data_deps += 83*03ce13f7SAndroid Build Coastguard Worker [ "tests/ReactorUnitTests:swiftshader_reactor_llvm_unittests" ] 84*03ce13f7SAndroid Build Coastguard Worker } 85*03ce13f7SAndroid Build Coastguard Worker 86*03ce13f7SAndroid Build Coastguard Worker if (supports_subzero) { 87*03ce13f7SAndroid Build Coastguard Worker data_deps += 88*03ce13f7SAndroid Build Coastguard Worker [ "tests/ReactorUnitTests:swiftshader_reactor_subzero_unittests" ] 89*03ce13f7SAndroid Build Coastguard Worker } 90*03ce13f7SAndroid Build Coastguard Worker } 91*03ce13f7SAndroid Build Coastguard Worker} 92