blob: f6d86c981aa01483d7be538e23a866a38cd81362 [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
Nico Weber766eb912021-07-08 14:13:38 -040026 if (!is_debug) {
27 defines += [ "ANGLE_DISABLE_TRACE" ]
28 }
29
Nico Weberba18c782021-07-10 15:26:15 -040030 if (!is_win || is_clang) {
31 defines +=
32 [ "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))" ]
33 } else {
34 defines += [ "NO_SANITIZE_FUNCTION=" ]
35 }
Nico Weberb45ad7a2021-07-08 11:18:12 -040036
Nico Weberba18c782021-07-10 15:26:15 -040037 if (is_win) {
38 # Disable MSVC warnings about std::aligned_storage being broken before
39 # VS 2017 15.8
40 defines += [ "_ENABLE_EXTENDED_ALIGNED_STORAGE" ]
Alexis Hetuc55dd842017-08-08 08:31:13 -040041
Jamie Madill9746f8b2019-09-05 13:17:09 -040042 # Diable some MSVC warnings.
43 if (!is_clang) {
44 cflags += [
Nico Weberb45ad7a2021-07-08 11:18:12 -040045 "/wd4065", # switch statement contains 'default' but no 'case' labels
46 "/wd4309", # Truncation of constant value. See PixelRoutine.cpp casts
47 # of signed shorts.
Jamie Madill9746f8b2019-09-05 13:17:09 -040048 ]
49 }
Nicolas Capensb3e5c442021-01-20 06:16:24 +000050
51 cflags_cc = [ "/std:c++17" ]
Alexis Hetu03b67af2016-08-31 17:25:40 -040052 } else {
Nicolas Capensb3e5c442021-01-20 06:16:24 +000053 cflags_cc = [ "-std=c++17" ]
Nicolas Capens1cdfcb62021-10-01 00:08:31 -040054 cflags_objcc = [ "-std=c++17" ]
Nico Weberb45ad7a2021-07-08 11:18:12 -040055
Nico Weberb45ad7a2021-07-08 11:18:12 -040056 if (!is_debug) {
Nico Weber6f0ce122021-07-08 13:41:17 -040057 cflags += [ "-Os" ]
Alexis Hetuc55dd842017-08-08 08:31:13 -040058 }
Alexis Hetu91f10e32016-06-07 19:53:42 -040059 }
André Kempe34d436e2021-08-11 17:27:38 +010060
61 if (build_with_chromium) {
62 if (is_clang) {
63 if (current_cpu == "arm64") {
64 import("//build/config/arm.gni")
65
66 if (arm_control_flow_integrity == "standard") {
67 cflags += [ "-mbranch-protection=standard" ]
68 asmflags += [ "-mbranch-protection=standard" ]
69 } else {
70 assert(arm_control_flow_integrity == "none",
71 "Invalid branch protection option!")
72 }
73 }
74 }
75 }
Alexis Hetu91f10e32016-06-07 19:53:42 -040076}
77
Alexis Hetu68f564d2016-07-06 17:43:22 -040078group("swiftshader") {
Alexis Hetu996663b2016-09-21 13:47:42 -040079 data_deps = [
Alexis Hetu996663b2016-09-21 13:47:42 -040080 "src/OpenGL/libEGL:swiftshader_libEGL",
Nico Weberb45ad7a2021-07-08 11:18:12 -040081 "src/OpenGL/libGLESv2:swiftshader_libGLESv2",
Alexis Hetu996663b2016-09-21 13:47:42 -040082 ]
Alexis Hetua6e99c02016-11-16 13:53:57 -050083}
84
Jamie Madillbbd8c422019-08-28 17:08:17 -040085if (build_with_chromium) {
Nico Weberb45ad7a2021-07-08 11:18:12 -040086 group("swiftshader_tests") {
87 testonly = true
Alexis Hetua6e99c02016-11-16 13:53:57 -050088
Nico Weberb45ad7a2021-07-08 11:18:12 -040089 data_deps = [
90 "tests/GLESUnitTests:swiftshader_unittests",
91 "tests/SystemUnitTests:swiftshader_system_unittests",
92 ]
Nicolas Capens282aa412020-11-16 11:37:29 -050093
Nico Weberb45ad7a2021-07-08 11:18:12 -040094 if (supports_llvm) {
95 data_deps +=
96 [ "tests/ReactorUnitTests:swiftshader_reactor_llvm_unittests" ]
Jamie Madillbbd8c422019-08-28 17:08:17 -040097 }
Nico Weberb45ad7a2021-07-08 11:18:12 -040098
99 if (supports_subzero) {
100 data_deps +=
101 [ "tests/ReactorUnitTests:swiftshader_reactor_subzero_unittests" ]
102 }
103 }
David 'Digit' Turnerc9fa9fe2019-08-13 19:05:01 +0200104}