1// Copyright (C) 2017 The Android Open Source Project
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
15cc_library {
16    name: "libbcc",
17    vendor_available: true,
18    host_supported: true,
19    defaults: ["libbcc-defaults"],
20
21    srcs: [
22        "BCCContext.cpp",
23        "BCCContextImpl.cpp",
24        "Compiler.cpp",
25        "CompilerConfig.cpp",
26        "FileBase.cpp",
27        "Initialization.cpp",
28        "RSAddDebugInfoPass.cpp",
29        "RSCompilerDriver.cpp",
30        "RSEmbedInfo.cpp",
31        "RSGlobalInfoPass.cpp",
32        "RSInvariant.cpp",
33        "RSInvokeHelperPass.cpp",
34        "RSIsThreadablePass.cpp",
35        "RSKernelExpand.cpp",
36        "RSScreenFunctionsPass.cpp",
37        "RSScriptGroupFusion.cpp",
38        "RSFunctionsList.cpp",
39        "RSX86CallConvPass.cpp",
40        "RSX86TranslateGEPPass.cpp",
41        "Script.cpp",
42        "Source.cpp",
43    ],
44
45    shared_libs: ["libbcinfo"],
46
47    header_libs: ["slang_headers"],
48
49    target: {
50        windows: {
51            enabled: true,
52            shared_libs: ["libLLVM_android"],
53        },
54        darwin: {
55            shared_libs: ["libLLVM_android"],
56        },
57        linux_glibc: {
58            static_libs: ["libLLVMLinker"],
59            allow_undefined_symbols: true,
60        },
61        host: {
62            static_libs: [
63                "libutils",
64                "libcutils",
65                "liblog",
66            ],
67        },
68        android: {
69            shared_libs: [
70                "libLLVM_android",
71                "libdl",
72                "liblog",
73            ],
74        },
75    },
76
77    product_variables: {
78        unbundled_build: {
79            // Don't build in unbundled branches
80            enabled: false,
81        },
82    },
83}
84