blob: 72c5acf3d2300086195e1ab5a973c22c1a9084ae [file] [log] [blame]
Colin Cross50eeccb2016-12-07 13:17:55 -08001//
2// Copyright (C) 2010 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
17cc_defaults {
18 name: "rs-version",
19 cflags: [
20 "-DRS_VERSION=24",
21 ],
22}
23
24cc_defaults {
25 name: "slang-defaults",
26 defaults: [
27 "clang-defaults",
28 "rs-version",
29 ],
30
31 cflags: [
32 "-Wall",
33 "-Werror",
34 "-std=c++11",
35
36 "-D__DISABLE_ASSERTS",
37
38 "-DTARGET_BUILD_VARIANT=user",
39 ],
40
41 product_variables: {
42 debuggable: {
43 cflags: [
44 "-U__DISABLE_ASSERTS",
45
46 "-UTARGET_BUILD_VARIANT",
47 "-DTARGET_BUILD_VARIANT=userdebug",
48 ],
49 },
50 eng: {
51 cflags: [
52 "-O0",
53 "-D__ENABLE_INTERNAL_OPTIONS",
54
55 "-UTARGET_BUILD_VARIANT",
56 "-DTARGET_BUILD_VARIANT=eng",
57 ],
58 },
59 },
60}
61
62static_libraries_needed_by_slang = [
63 "libLLVMBitWriter_2_9",
64 "libLLVMBitWriter_2_9_func",
65 "libLLVMBitWriter_3_2",
David Gross97ac1a52017-05-16 15:27:52 -070066 "libStripUnkAttr",
Colin Cross50eeccb2016-12-07 13:17:55 -080067]
68
David Gross37dbf5c2017-03-29 20:54:15 +000069// Exported header files
70cc_library_headers {
71 name: "slang_headers",
72 export_include_dirs: ["."],
73 host_supported: true,
74 target: {
75 windows: {
76 enabled: true,
77 },
78 },
79}
80
Colin Cross50eeccb2016-12-07 13:17:55 -080081// Static library libslang for host
82// ========================================================
83cc_library_host_static {
84 name: "libslang",
85 defaults: ["slang-defaults"],
Colin Cross925085e2016-12-17 12:13:43 -080086 compile_multilib: "first",
Colin Cross50eeccb2016-12-07 13:17:55 -080087
88 target: {
89 linux: {
90 host_ldlibs: [
91 "-ldl",
92 "-lpthread",
93 ],
94 },
95 darwin: {
96 host_ldlibs: [
97 "-ldl",
98 "-lpthread",
99 ],
100 },
101 windows: {
102 // Skip missing-field-initializer warnings for mingw.
103 cflags: ["-Wno-error=missing-field-initializers"],
104 },
105 },
106
107 srcs: [
108 "slang.cpp",
109 "slang_bitcode_gen.cpp",
110 "slang_backend.cpp",
111 "slang_diagnostic_buffer.cpp",
112 ],
113
Colin Cross925085e2016-12-17 12:13:43 -0800114 shared_libs: ["libbcinfo"],
Colin Cross50eeccb2016-12-07 13:17:55 -0800115
116 product_variables: {
117 unbundled_build: {
118 enabled: false,
119 },
120 },
121}
122
123// ========================================================
124
125cc_binary_host {
126 name: "llvm-rs-as",
127 defaults: ["slang-defaults"],
128
129 srcs: ["llvm-rs-as.cpp"],
130
131 static_libs: ["libslang"] + static_libraries_needed_by_slang,
132 shared_libs: ["libLLVM"],
133
134 product_variables: {
135 unbundled_build: {
136 enabled: false,
137 },
138 },
139}
140
141// Executable llvm-rs-cc for host
142// ========================================================
143
144// For build RSCCOptions.inc from RSCCOptions.td
145llvm_tblgen {
146 name: "slang-gen-options",
147 in: "RSCCOptions.td",
148 outs: ["RSCCOptions.inc"],
149}
150
151cc_binary_host {
152 name: "llvm-rs-cc",
153 defaults: ["slang-defaults"],
154
155 generated_headers: ["slang-gen-options"],
156 srcs: [
157 "llvm-rs-cc.cpp",
158 "rs_cc_options.cpp",
159 "slang_rs_foreach_lowering.cpp",
160 "slang_rs_ast_replace.cpp",
161 "slang_rs_check_ast.cpp",
162 "slang_rs_context.cpp",
163 "slang_rs_pragma_handler.cpp",
164 "slang_rs_exportable.cpp",
165 "slang_rs_export_type.cpp",
166 "slang_rs_export_element.cpp",
167 "slang_rs_export_var.cpp",
168 "slang_rs_export_func.cpp",
169 "slang_rs_export_foreach.cpp",
170 "slang_rs_export_reduce.cpp",
171 "slang_rs_object_ref_count.cpp",
172 "slang_rs_reflection.cpp",
173 "slang_rs_reflection_cpp.cpp",
174 "slang_rs_reflect_utils.cpp",
175 "slang_rs_special_func.cpp",
176 "slang_rs_special_kernel_param.cpp",
Colin Cross50eeccb2016-12-07 13:17:55 -0800177 ],
178
Colin Cross50eeccb2016-12-07 13:17:55 -0800179 static_libs: ["libslang"] + static_libraries_needed_by_slang,
180
181 shared_libs: [
Colin Cross925085e2016-12-17 12:13:43 -0800182 "libbcinfo",
Colin Cross50eeccb2016-12-07 13:17:55 -0800183 "libclang",
184 "libLLVM",
185 ],
186
187 target: {
188 windows: {
189 host_ldlibs: [
190 "-limagehlp",
191 "-lpsapi",
192 ],
193 cflags: [
194 // Skip missing-field-initializer warnings for mingw.
195 "-Wno-error=missing-field-initializers",
196 ],
197 },
198 linux: {
199 host_ldlibs: [
200 "-ldl",
201 "-lpthread",
202 ],
203 },
204 darwin: {
205 host_ldlibs: [
206 "-ldl",
207 "-lpthread",
208 ],
209 },
210 },
211
212 product_variables: {
213 unbundled_build: {
214 enabled: false,
215 },
216 },
217}
218
219subdirs = [
220 "BitWriter_2_9",
221 "BitWriter_2_9_func",
222 "BitWriter_3_2",
David Gross97ac1a52017-05-16 15:27:52 -0700223 "StripUnkAttr",
Colin Cross50eeccb2016-12-07 13:17:55 -0800224]