blob: da23872cee7f404a91828d9eee6f5acb8f100fc2 [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 }
Nicolas Capensb3e5c442021-01-20 06:16:24 +000044
45 cflags_cc = [ "/std:c++17" ]
Alexis Hetu03b67af2016-08-31 17:25:40 -040046 } else {
Nicolas Capensb3e5c442021-01-20 06:16:24 +000047 cflags_cc = [ "-std=c++17" ]
Nicolas Capens1cdfcb62021-10-01 00:08:31 -040048 cflags_objcc = [ "-std=c++17" ]
Nico Weberb45ad7a2021-07-08 11:18:12 -040049
Nico Weberb45ad7a2021-07-08 11:18:12 -040050 if (!is_debug) {
Nico Weber6f0ce122021-07-08 13:41:17 -040051 cflags += [ "-Os" ]
Alexis Hetuc55dd842017-08-08 08:31:13 -040052 }
Alexis Hetu91f10e32016-06-07 19:53:42 -040053 }
André Kempe34d436e2021-08-11 17:27:38 +010054
55 if (build_with_chromium) {
56 if (is_clang) {
57 if (current_cpu == "arm64") {
58 import("//build/config/arm.gni")
59
60 if (arm_control_flow_integrity == "standard") {
61 cflags += [ "-mbranch-protection=standard" ]
62 asmflags += [ "-mbranch-protection=standard" ]
André Kempedbaf11f2021-12-09 08:44:42 +000063 } else if (arm_control_flow_integrity == "pac") {
64 cflags += [ "-mbranch-protection=pac-ret" ]
65 asmflags += [ "-mbranch-protection=pac-ret" ]
André Kempe34d436e2021-08-11 17:27:38 +010066 } else {
67 assert(arm_control_flow_integrity == "none",
68 "Invalid branch protection option!")
69 }
70 }
71 }
72 }
Alexis Hetu91f10e32016-06-07 19:53:42 -040073}
74
Alexis Hetu68f564d2016-07-06 17:43:22 -040075group("swiftshader") {
Alexis Hetu996663b2016-09-21 13:47:42 -040076 data_deps = [
Alexis Hetu1d450ae2022-04-07 23:04:23 -040077 "src/Vulkan:icd_file",
78 "src/Vulkan:swiftshader_libvulkan",
Alexis Hetu996663b2016-09-21 13:47:42 -040079 ]
Alexis Hetua6e99c02016-11-16 13:53:57 -050080}
81
Jamie Madillbbd8c422019-08-28 17:08:17 -040082if (build_with_chromium) {
Nico Weberb45ad7a2021-07-08 11:18:12 -040083 group("swiftshader_tests") {
84 testonly = true
Alexis Hetua6e99c02016-11-16 13:53:57 -050085
Alexis Hetu1d450ae2022-04-07 23:04:23 -040086 data_deps = [ "tests/SystemUnitTests:swiftshader_system_unittests" ]
Nicolas Capens282aa412020-11-16 11:37:29 -050087
Nico Weberb45ad7a2021-07-08 11:18:12 -040088 if (supports_llvm) {
89 data_deps +=
90 [ "tests/ReactorUnitTests:swiftshader_reactor_llvm_unittests" ]
Jamie Madillbbd8c422019-08-28 17:08:17 -040091 }
Nico Weberb45ad7a2021-07-08 11:18:12 -040092
93 if (supports_subzero) {
94 data_deps +=
95 [ "tests/ReactorUnitTests:swiftshader_reactor_subzero_unittests" ]
96 }
97 }
David 'Digit' Turnerc9fa9fe2019-08-13 19:05:01 +020098}