blob: 54de172fb8a196ed5ebd316c41539fe7cf814f5b [file] [log] [blame]
//
// Copyright (C) 2014 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
cc_defaults {
name: "libbcc-defaults",
defaults: [
"llvm-defaults",
"rs-version",
"libbcc-targets",
],
clang: true,
cflags: [
"-Wall",
"-Wno-unused-parameter",
"-Werror",
"-D__DISABLE_ASSERTS",
],
target: {
android: {
cflags: [
"-DTARGET_BUILD",
],
},
host: {
compile_multilib: "first",
cflags: [
"-D__HOST__",
],
},
},
product_variables: {
eng: {
cflags: ["-U__DISABLE_ASSERTS"],
},
},
include_dirs: [
"frameworks/compile/libbcc/include",
"frameworks/rs",
],
}
//=====================================================================
// Architecture Selection
//=====================================================================
// Note: We should only use -DFORCE_ARCH_CODEGEN on target build.
// For the host build, we will include as many architecture as possible,
// so that we can test the execution engine easily.
cc_defaults {
name: "libbcc-targets",
arch: {
arm: {
cflags: [
"-DFORCE_ARM_CODEGEN",
"-DARCH_ARM_HAVE_VFP",
],
armv7_a_neon: {
cflags: [
"-DARCH_ARM_HAVE_VFP_D32",
"-DARCH_ARM_HAVE_NEON",
],
},
},
arm64: {
cflags: [
"-DFORCE_ARM64_CODEGEN",
"-DARCH_ARM_HAVE_NEON",
"-DARCH_ARM_HAVE_VFP",
"-DARCH_ARM_HAVE_VFP_D32",
"-DDISABLE_CLCORE_NEON",
],
},
mips: {
cflags: ["-DFORCE_MIPS_CODEGEN"],
},
mips64: {
cflags: ["-DFORCE_MIPS64_CODEGEN"],
},
},
target: {
android_x86: {
cflags: ["-DFORCE_X86_CODEGEN"],
},
android_x86_64: {
cflags: ["-DFORCE_X86_64_CODEGEN"],
},
arm_on_x86: {
cflags: [
"-DPROVIDE_ARM_CODEGEN",
"-DFORCE_BUILD_ARM",
],
},
arm_on_x86_64: {
cflags: [
"-DPROVIDE_ARM_CODEGEN",
"-DFORCE_BUILD_ARM",
"-DPROVIDE_ARM64_CODEGEN",
],
},
},
}
//=====================================================================
// Shared Library libbcc
//=====================================================================
cc_library_shared {
name: "libbcc",
host_supported: true,
whole_static_libs: [
"libbccRenderscript",
"libbccCore",
"libbccSupport",
],
shared_libs: [
"libbcinfo",
],
target: {
windows: {
enabled: true,
shared_libs: ["libLLVM"],
},
darwin: {
host_ldlibs: [
"-ldl",
"-lpthread",
],
shared_libs: ["libLLVM"],
},
linux: {
host_ldlibs: [
"-ldl",
"-lpthread",
],
static_libs: ["libLLVMLinker"],
allow_undefined_symbols: true,
},
host: {
compile_multilib: "first",
static_libs: [
"libutils",
"libcutils",
"liblog",
],
},
android: {
shared_libs: [
"libLLVM",
"libdl",
"libutils",
"libcutils",
"liblog",
],
},
},
product_variables: {
unbundled_build: {
// Don't build in unbundled branches
enabled: false,
},
},
}
subdirs = [
"bcinfo",
"lib",
"tools",
]