• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
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",
66    "libStripUnkAttr",
67]
68
69// 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
81// Static library libslang for host
82// ========================================================
83cc_library_host_static {
84    name: "libslang",
85    defaults: ["slang-defaults"],
86    compile_multilib: "first",
87
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
114    shared_libs: ["libbcinfo"],
115
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",
177    ],
178
179    static_libs: ["libslang"] + static_libraries_needed_by_slang,
180
181    shared_libs: [
182        "libbcinfo",
183        "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",
223    "StripUnkAttr",
224]
225