blob: b405f51223bb716ab9b9dfa5b097e6b0da9501a6 [file] [log] [blame]
Alexis Hetu91f10e32016-06-07 19:53:42 -04001# Copyright 2016 The SwiftShader Authors. All Rights Reserved.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
Nicolas Capens282aa412020-11-16 11:37:29 -050015import("src/Reactor/reactor.gni")
Nicolas Capensd51e2162017-06-05 13:59:55 -040016
Alexis Hetu91f10e32016-06-07 19:53:42 -040017config("swiftshader_config") {
Geoff Langc710de92021-09-23 10:10:03 -040018 cflags = []
Alexis Hetu0def1022017-08-16 17:15:48 -040019 defines = []
André Kempe34d436e2021-08-11 17:27:38 +010020 asmflags = []
Alexis Hetu2ddef882017-03-14 15:11:15 -040021
Geoff Langc710de92021-09-23 10:10:03 -040022 if (is_clang) {
23 cflags += [ "-Wno-shadow" ]
24 }
25
Nicolas Capens77ebb7f2021-11-24 11:06:46 -050026 if (is_debug) {
27 if (swiftshader_startup_dialog) {
28 defines += [ "DEBUGGER_WAIT_DIALOG" ]
29 }
Nico Weber766eb912021-07-08 14:13:38 -040030 }
Nico Weberba18c782021-07-10 15:26:15 -040031 if (is_win) {
32 # Disable MSVC warnings about std::aligned_storage being broken before
33 # VS 2017 15.8
34 defines += [ "_ENABLE_EXTENDED_ALIGNED_STORAGE" ]
Alexis Hetuc55dd842017-08-08 08:31:13 -040035
Jamie Madill9746f8b2019-09-05 13:17:09 -040036 # Diable some MSVC warnings.
37 if (!is_clang) {
38 cflags += [
Nico Weberb45ad7a2021-07-08 11:18:12 -040039 "/wd4065", # switch statement contains 'default' but no 'case' labels
40 "/wd4309", # Truncation of constant value. See PixelRoutine.cpp casts
41 # of signed shorts.
Jamie Madill9746f8b2019-09-05 13:17:09 -040042 ]
43 }
Peter Kastinga36600f2023-02-13 09:34:21 -080044 } else if (!is_debug) {
45 cflags += [ "-Os" ]
Alexis Hetu91f10e32016-06-07 19:53:42 -040046 }
André Kempe34d436e2021-08-11 17:27:38 +010047
48 if (build_with_chromium) {
49 if (is_clang) {
50 if (current_cpu == "arm64") {
51 import("//build/config/arm.gni")
52
53 if (arm_control_flow_integrity == "standard") {
54 cflags += [ "-mbranch-protection=standard" ]
55 asmflags += [ "-mbranch-protection=standard" ]
André Kempedbaf11f2021-12-09 08:44:42 +000056 } else if (arm_control_flow_integrity == "pac") {
57 cflags += [ "-mbranch-protection=pac-ret" ]
58 asmflags += [ "-mbranch-protection=pac-ret" ]
André Kempe34d436e2021-08-11 17:27:38 +010059 } else {
60 assert(arm_control_flow_integrity == "none",
61 "Invalid branch protection option!")
62 }
63 }
64 }
65 }
Alexis Hetu91f10e32016-06-07 19:53:42 -040066}
67
Alexis Hetu68f564d2016-07-06 17:43:22 -040068group("swiftshader") {
Alexis Hetu996663b2016-09-21 13:47:42 -040069 data_deps = [
Alexis Hetu1d450ae2022-04-07 23:04:23 -040070 "src/Vulkan:icd_file",
71 "src/Vulkan:swiftshader_libvulkan",
Alexis Hetu996663b2016-09-21 13:47:42 -040072 ]
Alexis Hetua6e99c02016-11-16 13:53:57 -050073}
74
Jamie Madillbbd8c422019-08-28 17:08:17 -040075if (build_with_chromium) {
Nico Weberb45ad7a2021-07-08 11:18:12 -040076 group("swiftshader_tests") {
77 testonly = true
Alexis Hetua6e99c02016-11-16 13:53:57 -050078
Alexis Hetu1d450ae2022-04-07 23:04:23 -040079 data_deps = [ "tests/SystemUnitTests:swiftshader_system_unittests" ]
Nicolas Capens282aa412020-11-16 11:37:29 -050080
Nico Weberb45ad7a2021-07-08 11:18:12 -040081 if (supports_llvm) {
82 data_deps +=
83 [ "tests/ReactorUnitTests:swiftshader_reactor_llvm_unittests" ]
Jamie Madillbbd8c422019-08-28 17:08:17 -040084 }
Nico Weberb45ad7a2021-07-08 11:18:12 -040085
86 if (supports_subzero) {
87 data_deps +=
88 [ "tests/ReactorUnitTests:swiftshader_reactor_subzero_unittests" ]
89 }
90 }
David 'Digit' Turnerc9fa9fe2019-08-13 19:05:01 +020091}