OSDN Git Service

Restrict building Subzero to Marshmallow and up.
[android-x86/external-swiftshader.git] / BUILD.gn
1 # 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
15 import("//build/config/compiler/compiler.gni")
16
17 config("swiftshader_config") {
18   defines = [ "STRICT_CONFORMANCE" ]  # Disables OpenGL ES 3.0
19
20   if (is_win) {
21     cflags = [
22       "/GS",  # Detects some buffer overruns
23       "/Zc:wchar_t",
24       "/EHsc",
25       "/nologo",
26       "/Gd",  # Default calling convention
27     ]
28
29     defines += [
30       "_CRT_SECURE_NO_DEPRECATE",
31       "NOMINMAX",
32       "_WINDLL",
33       "NO_SANITIZE_FUNCTION=",
34     ]
35
36     if (is_debug) {
37       cflags += [ "/RTC1" ]  # Run-Time Error Checks
38     } else {
39       defines += [ "ANGLE_DISABLE_TRACE" ]
40     }
41   } else {
42     cflags = [
43       "-std=c++11",
44       "-fno-exceptions",
45       "-fno-operator-names",
46     ]
47
48     defines += [
49       "__STDC_CONSTANT_MACROS",
50       "__STDC_LIMIT_MACROS",
51       "NO_SANITIZE_FUNCTION=__attribute__((no_sanitize(\"function\")))",
52     ]
53
54     if (is_debug) {
55       cflags += [
56         "-g",
57         "-g3",
58       ]
59     } else {  # Release
60       # All Release builds use function/data sections to make the shared libraries smaller
61       cflags += [
62         "-ffunction-sections",
63         "-fdata-sections",
64         "-fomit-frame-pointer",
65         "-Os",
66       ]
67
68       defines += [
69         "ANGLE_DISABLE_TRACE",
70         "NDEBUG",
71       ]
72     }
73
74     if (target_cpu == "x64") {  # 64 bit version
75       cflags += [
76         "-m64",
77         "-fPIC",
78         "-march=core2",
79       ]
80     } else {  # 32 bit version
81       cflags += [
82         "-m32",
83         "-msse2",
84         "-march=i686",
85       ]
86     }
87
88     if (is_linux) {
89       ldflags = [
90         "-Wl,--hash-style=both",
91         "-Wl,--gc-sections",
92       ]
93
94       # A bug in the gold linker prevents using ICF on 32-bit (crbug.com/729532)
95       if (use_gold && target_cpu == "x86") {
96         ldflags += [ "-Wl,--icf=none" ]
97       }
98     }
99   }
100 }
101
102 group("swiftshader") {
103   data_deps = [
104     "src/OpenGL/libGLESv2:swiftshader_libGLESv2",
105     "src/OpenGL/libEGL:swiftshader_libEGL",
106   ]
107 }
108
109 group("swiftshader_tests") {
110   testonly = true
111
112   data_deps = [
113     "tests/unittests:swiftshader_unittests",
114   ]
115 }