123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- # 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("//build/config/c++/c++.gni")
- import("//build/config/compiler/compiler.gni")
- import("//build/config/mips.gni")
- config("swiftshader_config") {
- defines = []
- if (is_win) {
- cflags = [
- "/GS", # Detects some buffer overruns
- "/Zc:wchar_t",
- "/EHs-c-", # Disable C++ exceptions
- "/nologo",
- "/Gd", # Default calling convention
- ]
- if (!use_custom_libcxx) {
- # Disable EH usage in STL headers.
- # libc++ uses a predefined macro to control whether to use exceptions, so
- # defining this macro is unnecessary. Defining _HAS_EXCEPTIONS to 0 also
- # breaks libc++ because it depends on MSVC headers that only provide
- # certain declarations if _HAS_EXCEPTIONS is 1.
- defines += [
- "_HAS_EXCEPTIONS=0",
- ]
- }
- defines += [
- "_CRT_SECURE_NO_DEPRECATE",
- "NOMINMAX",
- "_WINDLL",
- "NO_SANITIZE_FUNCTION=",
- ]
- if (!is_debug) {
- defines += [ "ANGLE_DISABLE_TRACE" ]
- }
- } else {
- cflags = [
- "-std=c++11",
- "-fno-exceptions",
- "-fno-operator-names",
- ]
- defines += [
- "__STDC_CONSTANT_MACROS",
- "__STDC_LIMIT_MACROS",
- "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))",
- ]
- if (is_debug) {
- cflags += [
- "-g",
- "-g3",
- ]
- } else { # Release
- # All Release builds use function/data sections to make the shared libraries smaller
- cflags += [
- "-ffunction-sections",
- "-fdata-sections",
- "-fomit-frame-pointer",
- "-Os",
- ]
- defines += [
- "ANGLE_DISABLE_TRACE",
- "NDEBUG",
- ]
- }
- if (target_cpu == "x64") { # 64 bit version
- cflags += [
- "-m64",
- "-fPIC",
- "-march=x86-64",
- "-mtune=generic",
- ]
- } else if (target_cpu == "x86") { # 32 bit version
- cflags += [
- "-m32",
- "-msse2",
- "-mfpmath=sse",
- "-march=pentium4",
- "-mtune=generic",
- ]
- } else if (target_cpu == "mipsel" && current_cpu == target_cpu) {
- cflags += [
- "-march=mipsel",
- "-fPIC",
- "-mhard-float",
- "-mfp32",
- ]
- if (mips_arch_variant == "r1") {
- cflags += [
- "-mcpu=mips32",
- ]
- } else {
- cflags += [
- "-mcpu=mips32r2",
- ]
- }
- } else if (target_cpu == "mips64el" && current_cpu == target_cpu) {
- cflags += [
- "-march=mips64el",
- "-mcpu=mips64r2",
- "-mabi=64",
- "-fPIC",
- ]
- }
- if (is_linux) {
- ldflags = [ "-Wl,--gc-sections" ]
- if (target_cpu == "mipsel") {
- ldflags += [
- "-Wl,--hash-style=sysv",
- ]
- if (mips_arch_variant == "r1") {
- ldflags += [
- "-mips32",
- ]
- } else {
- ldflags += [
- "-mips32r2",
- ]
- }
- } else if (target_cpu == "mips64el") {
- ldflags += [
- "-Wl,--hash-style=sysv",
- "-mips64r2",
- ]
- } else {
- ldflags += [ "-Wl,--hash-style=both" ]
- }
- # A bug in the gold linker prevents using ICF on 32-bit (crbug.com/729532)
- if (use_gold && (target_cpu == "x86" || target_cpu == "mipsel")) {
- ldflags += [ "-Wl,--icf=none" ]
- }
- }
- }
- }
- source_set("vertex_routine_fuzzer") {
- sources = [
- "tests/fuzzers/VertexRoutineFuzzer.cpp"
- ]
- if (is_win) {
- cflags = [
- "/wd4201", # nameless struct/union
- "/wd4065", # switch statement contains 'default' but no 'case' labels
- "/wd5030", # attribute is not recognized
- ]
- }
- include_dirs = [
- "src/",
- ]
- deps = [
- "src/OpenGL/libGLESv2:swiftshader_libGLESv2_static",
- ]
- }
- group("swiftshader") {
- data_deps = [
- "src/OpenGL/libGLESv2:swiftshader_libGLESv2",
- "src/OpenGL/libEGL:swiftshader_libEGL",
- ]
- }
- group("swiftshader_tests") {
- testonly = true
- data_deps = [
- "tests/GLESUnitTests:swiftshader_unittests",
- ]
- }
|