blob: 9269d62bbd1f207e72f273d8cb02be7ffa33b91b [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",
Tim Kleina0de4c52019-05-14 00:22:22 +010072 vendor_available: true,
David Gross37dbf5c2017-03-29 20:54:15 +000073 export_include_dirs: ["."],
74 host_supported: true,
Victor Khimenko3d69acd2020-07-02 01:22:42 +020075 // TODO(b/153609531): remove when no longer needed.
76 native_bridge_supported: true,
David Gross37dbf5c2017-03-29 20:54:15 +000077 target: {
78 windows: {
79 enabled: true,
80 },
81 },
82}
83
Colin Cross50eeccb2016-12-07 13:17:55 -080084// Static library libslang for host
85// ========================================================
86cc_library_host_static {
87 name: "libslang",
88 defaults: ["slang-defaults"],
Colin Cross925085e2016-12-17 12:13:43 -080089 compile_multilib: "first",
Colin Cross50eeccb2016-12-07 13:17:55 -080090
91 target: {
Colin Cross50eeccb2016-12-07 13:17:55 -080092 windows: {
93 // Skip missing-field-initializer warnings for mingw.
94 cflags: ["-Wno-error=missing-field-initializers"],
95 },
96 },
97
98 srcs: [
99 "slang.cpp",
100 "slang_bitcode_gen.cpp",
101 "slang_backend.cpp",
102 "slang_diagnostic_buffer.cpp",
103 ],
104
Colin Cross925085e2016-12-17 12:13:43 -0800105 shared_libs: ["libbcinfo"],
Colin Cross50eeccb2016-12-07 13:17:55 -0800106}
107
108// ========================================================
109
110cc_binary_host {
111 name: "llvm-rs-as",
112 defaults: ["slang-defaults"],
113
114 srcs: ["llvm-rs-as.cpp"],
115
116 static_libs: ["libslang"] + static_libraries_needed_by_slang,
Pirama Arumuga Nainar24bfa422017-08-03 11:41:05 -0700117 shared_libs: ["libLLVM_android"],
Colin Cross50eeccb2016-12-07 13:17:55 -0800118
119 product_variables: {
120 unbundled_build: {
121 enabled: false,
122 },
123 },
124}
125
126// Executable llvm-rs-cc for host
127// ========================================================
128
129// For build RSCCOptions.inc from RSCCOptions.td
130llvm_tblgen {
131 name: "slang-gen-options",
132 in: "RSCCOptions.td",
133 outs: ["RSCCOptions.inc"],
134}
135
136cc_binary_host {
137 name: "llvm-rs-cc",
138 defaults: ["slang-defaults"],
139
140 generated_headers: ["slang-gen-options"],
141 srcs: [
142 "llvm-rs-cc.cpp",
143 "rs_cc_options.cpp",
144 "slang_rs_foreach_lowering.cpp",
145 "slang_rs_ast_replace.cpp",
146 "slang_rs_check_ast.cpp",
147 "slang_rs_context.cpp",
148 "slang_rs_pragma_handler.cpp",
149 "slang_rs_exportable.cpp",
150 "slang_rs_export_type.cpp",
151 "slang_rs_export_element.cpp",
152 "slang_rs_export_var.cpp",
153 "slang_rs_export_func.cpp",
154 "slang_rs_export_foreach.cpp",
155 "slang_rs_export_reduce.cpp",
156 "slang_rs_object_ref_count.cpp",
157 "slang_rs_reflection.cpp",
158 "slang_rs_reflection_cpp.cpp",
David Grossd80e58b2017-07-24 11:41:12 -0700159 "slang_rs_reflection_state.cpp",
Colin Cross50eeccb2016-12-07 13:17:55 -0800160 "slang_rs_reflect_utils.cpp",
161 "slang_rs_special_func.cpp",
162 "slang_rs_special_kernel_param.cpp",
Colin Cross50eeccb2016-12-07 13:17:55 -0800163 ],
164
Colin Cross50eeccb2016-12-07 13:17:55 -0800165 static_libs: ["libslang"] + static_libraries_needed_by_slang,
166
167 shared_libs: [
Colin Cross925085e2016-12-17 12:13:43 -0800168 "libbcinfo",
Pirama Arumuga Nainar24bfa422017-08-03 11:41:05 -0700169 "libclang_android",
170 "libLLVM_android",
Colin Cross50eeccb2016-12-07 13:17:55 -0800171 ],
172
173 target: {
174 windows: {
175 host_ldlibs: [
176 "-limagehlp",
177 "-lpsapi",
178 ],
179 cflags: [
180 // Skip missing-field-initializer warnings for mingw.
181 "-Wno-error=missing-field-initializers",
182 ],
183 },
Colin Cross50eeccb2016-12-07 13:17:55 -0800184 },
Colin Cross50eeccb2016-12-07 13:17:55 -0800185}
186
Stephen Hinesa4f47d32020-03-02 15:22:11 -0800187cc_binary_host {
188 name: "lld",
189 srcs: ["lld_main.cpp"],
190 ldflags: ["-static"],
191 stl: "libc++_static",
192 target: {
193 darwin: {
194 enabled: false,
195 },
196 linux: {
197 enabled: false,
198 },
199 windows: {
200 enabled: true,
201 },
202 },
203}
204
Colin Cross50eeccb2016-12-07 13:17:55 -0800205subdirs = [
206 "BitWriter_2_9",
207 "BitWriter_2_9_func",
208 "BitWriter_3_2",
David Gross97ac1a52017-05-16 15:27:52 -0700209 "StripUnkAttr",
Colin Cross50eeccb2016-12-07 13:17:55 -0800210]