109 lines
2.8 KiB
Plaintext
109 lines
2.8 KiB
Plaintext
# Copyright 2016 The SwiftShader Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
import("src/Reactor/reactor.gni")
|
|
|
|
config("swiftshader_config") {
|
|
cflags = []
|
|
defines = []
|
|
asmflags = []
|
|
|
|
if (is_clang) {
|
|
cflags += [ "-Wno-shadow" ]
|
|
}
|
|
|
|
if (is_debug) {
|
|
if (swiftshader_startup_dialog) {
|
|
defines += [ "DEBUGGER_WAIT_DIALOG" ]
|
|
}
|
|
} else {
|
|
defines += [ "ANGLE_DISABLE_TRACE" ]
|
|
}
|
|
|
|
if (!is_win || is_clang) {
|
|
defines +=
|
|
[ "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))" ]
|
|
} else {
|
|
defines += [ "NO_SANITIZE_FUNCTION=" ]
|
|
}
|
|
|
|
if (is_win) {
|
|
# Disable MSVC warnings about std::aligned_storage being broken before
|
|
# VS 2017 15.8
|
|
defines += [ "_ENABLE_EXTENDED_ALIGNED_STORAGE" ]
|
|
|
|
# Diable some MSVC warnings.
|
|
if (!is_clang) {
|
|
cflags += [
|
|
"/wd4065", # switch statement contains 'default' but no 'case' labels
|
|
"/wd4309", # Truncation of constant value. See PixelRoutine.cpp casts
|
|
# of signed shorts.
|
|
]
|
|
}
|
|
|
|
cflags_cc = [ "/std:c++17" ]
|
|
} else {
|
|
cflags_cc = [ "-std=c++17" ]
|
|
cflags_objcc = [ "-std=c++17" ]
|
|
|
|
if (!is_debug) {
|
|
cflags += [ "-Os" ]
|
|
}
|
|
}
|
|
|
|
if (build_with_chromium) {
|
|
if (is_clang) {
|
|
if (current_cpu == "arm64") {
|
|
import("//build/config/arm.gni")
|
|
|
|
if (arm_control_flow_integrity == "standard") {
|
|
cflags += [ "-mbranch-protection=standard" ]
|
|
asmflags += [ "-mbranch-protection=standard" ]
|
|
} else if (arm_control_flow_integrity == "pac") {
|
|
cflags += [ "-mbranch-protection=pac-ret" ]
|
|
asmflags += [ "-mbranch-protection=pac-ret" ]
|
|
} else {
|
|
assert(arm_control_flow_integrity == "none",
|
|
"Invalid branch protection option!")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
group("swiftshader") {
|
|
data_deps = [
|
|
"src/Vulkan:icd_file",
|
|
"src/Vulkan:swiftshader_libvulkan",
|
|
]
|
|
}
|
|
|
|
if (build_with_chromium) {
|
|
group("swiftshader_tests") {
|
|
testonly = true
|
|
|
|
data_deps = [ "tests/SystemUnitTests:swiftshader_system_unittests" ]
|
|
|
|
if (supports_llvm) {
|
|
data_deps +=
|
|
[ "tests/ReactorUnitTests:swiftshader_reactor_llvm_unittests" ]
|
|
}
|
|
|
|
if (supports_subzero) {
|
|
data_deps +=
|
|
[ "tests/ReactorUnitTests:swiftshader_reactor_subzero_unittests" ]
|
|
}
|
|
}
|
|
}
|