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