blob: c01ce931a515cba4a607dc1437c823b7bafd3797 [file] [log] [blame]
//
// Copyright (C) 2010 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: "rs-version",
cflags: [
"-DRS_VERSION=24",
],
}
cc_defaults {
name: "slang-defaults",
defaults: [
"clang-defaults",
"rs-version",
],
cflags: [
"-Wall",
"-Werror",
"-std=c++11",
"-D__DISABLE_ASSERTS",
"-DTARGET_BUILD_VARIANT=user",
],
product_variables: {
debuggable: {
cflags: [
"-U__DISABLE_ASSERTS",
"-UTARGET_BUILD_VARIANT",
"-DTARGET_BUILD_VARIANT=userdebug",
],
},
eng: {
cflags: [
"-O0",
"-D__ENABLE_INTERNAL_OPTIONS",
"-UTARGET_BUILD_VARIANT",
"-DTARGET_BUILD_VARIANT=eng",
],
},
},
}
static_libraries_needed_by_slang = [
"libLLVMBitWriter_2_9",
"libLLVMBitWriter_2_9_func",
"libLLVMBitWriter_3_2",
"libStripUnkAttr",
]
// Exported header files
cc_library_headers {
name: "slang_headers",
export_include_dirs: ["."],
host_supported: true,
target: {
windows: {
enabled: true,
},
},
}
// Static library libslang for host
// ========================================================
cc_library_host_static {
name: "libslang",
defaults: ["slang-defaults"],
compile_multilib: "first",
target: {
linux: {
host_ldlibs: [
"-ldl",
"-lpthread",
],
},
darwin: {
host_ldlibs: [
"-ldl",
"-lpthread",
],
},
windows: {
// Skip missing-field-initializer warnings for mingw.
cflags: ["-Wno-error=missing-field-initializers"],
},
},
srcs: [
"slang.cpp",
"slang_bitcode_gen.cpp",
"slang_backend.cpp",
"slang_diagnostic_buffer.cpp",
],
shared_libs: ["libbcinfo"],
product_variables: {
unbundled_build: {
enabled: false,
},
},
}
// ========================================================
cc_binary_host {
name: "llvm-rs-as",
defaults: ["slang-defaults"],
srcs: ["llvm-rs-as.cpp"],
static_libs: ["libslang"] + static_libraries_needed_by_slang,
shared_libs: ["libLLVM"],
product_variables: {
unbundled_build: {
enabled: false,
},
},
}
// Executable llvm-rs-cc for host
// ========================================================
// For build RSCCOptions.inc from RSCCOptions.td
llvm_tblgen {
name: "slang-gen-options",
in: "RSCCOptions.td",
outs: ["RSCCOptions.inc"],
}
cc_binary_host {
name: "llvm-rs-cc",
defaults: ["slang-defaults"],
generated_headers: ["slang-gen-options"],
srcs: [
"llvm-rs-cc.cpp",
"rs_cc_options.cpp",
"slang_rs_foreach_lowering.cpp",
"slang_rs_ast_replace.cpp",
"slang_rs_check_ast.cpp",
"slang_rs_context.cpp",
"slang_rs_pragma_handler.cpp",
"slang_rs_exportable.cpp",
"slang_rs_export_type.cpp",
"slang_rs_export_element.cpp",
"slang_rs_export_var.cpp",
"slang_rs_export_func.cpp",
"slang_rs_export_foreach.cpp",
"slang_rs_export_reduce.cpp",
"slang_rs_object_ref_count.cpp",
"slang_rs_reflection.cpp",
"slang_rs_reflection_cpp.cpp",
"slang_rs_reflection_state.cpp",
"slang_rs_reflect_utils.cpp",
"slang_rs_special_func.cpp",
"slang_rs_special_kernel_param.cpp",
],
static_libs: ["libslang"] + static_libraries_needed_by_slang,
shared_libs: [
"libbcinfo",
"libclang",
"libLLVM",
],
target: {
windows: {
host_ldlibs: [
"-limagehlp",
"-lpsapi",
],
cflags: [
// Skip missing-field-initializer warnings for mingw.
"-Wno-error=missing-field-initializers",
],
},
linux: {
host_ldlibs: [
"-ldl",
"-lpthread",
],
},
darwin: {
host_ldlibs: [
"-ldl",
"-lpthread",
],
},
},
product_variables: {
unbundled_build: {
enabled: false,
},
},
}
subdirs = [
"BitWriter_2_9",
"BitWriter_2_9_func",
"BitWriter_3_2",
"StripUnkAttr",
]