You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

244 lines
6.0 KiB

//
// 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.
//
package {
default_applicable_licenses: ["frameworks_compile_slang_license"],
}
// Added automatically by a large-scale-change that took the approach of
// 'apply every license found to every target'. While this makes sure we respect
// every license restriction, it may not be entirely correct.
//
// e.g. GPL in an MIT project might only apply to the contrib/ directory.
//
// Please consider splitting the single license below into multiple licenses,
// taking care not to lose any license_kind information, and overriding the
// default license using the 'licenses: [...]' property on targets as needed.
//
// For unused files, consider creating a 'fileGroup' with "//visibility:private"
// to attach the license to, and including a comment whether the files may be
// used in the current project.
// See: http://go/android-license-faq
license {
name: "frameworks_compile_slang_license",
visibility: [":__subpackages__"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"SPDX-license-identifier-BSD",
"SPDX-license-identifier-MIT",
"SPDX-license-identifier-NCSA",
"legacy_unencumbered",
],
license_text: [
"NOTICE",
],
}
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",
vendor_available: true,
export_include_dirs: ["."],
host_supported: true,
// TODO(b/153609531): remove when no longer needed.
native_bridge_supported: true,
target: {
windows: {
enabled: true,
},
},
}
// Static library libslang for host
// ========================================================
cc_library_host_static {
name: "libslang",
defaults: ["slang-defaults"],
compile_multilib: "first",
target: {
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"],
}
// ========================================================
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_android"],
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_android",
"libLLVM_android",
],
target: {
windows: {
host_ldlibs: [
"-limagehlp",
"-lpsapi",
],
cflags: [
// Skip missing-field-initializer warnings for mingw.
"-Wno-error=missing-field-initializers",
],
},
},
}
cc_binary_host {
name: "lld",
srcs: ["lld_main.cpp"],
ldflags: ["-static"],
stl: "libc++_static",
target: {
darwin: {
enabled: false,
},
linux: {
enabled: false,
},
windows: {
enabled: true,
},
},
}
subdirs = [
"BitWriter_2_9",
"BitWriter_2_9_func",
"BitWriter_3_2",
"StripUnkAttr",
]