Add cc_prebuilt_library helpers for use by the llvm_prebuilt_library_static converter.
Test: bazel build //prebuilts/clang/host/linux-x86:prebuilt_libFuzzer Test: bazel build //prebuilts/clang/host/linux-x86:prebuilt_libomp Test: bazel build //prebuilts/clang/host/linux-x86:prebuilt_libunwind Test: bazel build //prebuilts/clang/host/linux-x86:prebuilt_libunwind-exported Change-Id: I9343e19a149b62785e8ee3096254776c19675032
This commit is contained in:
@@ -307,19 +307,19 @@ var (
|
||||
}
|
||||
|
||||
PlatformTargetMap = map[string]string{
|
||||
TARGET_ANDROID_ARM: "//build/bazel/platforms:android_arm",
|
||||
TARGET_ANDROID_ARM64: "//build/bazel/platforms:android_arm64",
|
||||
TARGET_ANDROID_X86: "//build/bazel/platforms:android_x86",
|
||||
TARGET_ANDROID_X86_64: "//build/bazel/platforms:android_x86_64",
|
||||
TARGET_DARWIN_X86_64: "//build/bazel/platforms:darwin_x86_64",
|
||||
TARGET_FUCHSIA_ARM64: "//build/bazel/platforms:fuchsia_arm64",
|
||||
TARGET_FUCHSIA_X86_64: "//build/bazel/platforms:fuchsia_x86_64",
|
||||
TARGET_LINUX_X86: "//build/bazel/platforms:linux_glibc_x86",
|
||||
TARGET_LINUX_x86_64: "//build/bazel/platforms:linux_glibc_x86_64",
|
||||
TARGET_LINUX_BIONIC_ARM64: "//build/bazel/platforms:linux_bionic_arm64",
|
||||
TARGET_LINUX_BIONIC_X86_64: "//build/bazel/platforms:linux_bionic_x86_64",
|
||||
TARGET_WINDOWS_X86: "//build/bazel/platforms:windows_x86",
|
||||
TARGET_WINDOWS_X86_64: "//build/bazel/platforms:windows_x86_64",
|
||||
TARGET_ANDROID_ARM: "//build/bazel/platforms/os_arch:android_arm",
|
||||
TARGET_ANDROID_ARM64: "//build/bazel/platforms/os_arch:android_arm64",
|
||||
TARGET_ANDROID_X86: "//build/bazel/platforms/os_arch:android_x86",
|
||||
TARGET_ANDROID_X86_64: "//build/bazel/platforms/os_arch:android_x86_64",
|
||||
TARGET_DARWIN_X86_64: "//build/bazel/platforms/os_arch:darwin_x86_64",
|
||||
TARGET_FUCHSIA_ARM64: "//build/bazel/platforms/os_arch:fuchsia_arm64",
|
||||
TARGET_FUCHSIA_X86_64: "//build/bazel/platforms/os_arch:fuchsia_x86_64",
|
||||
TARGET_LINUX_X86: "//build/bazel/platforms/os_arch:linux_glibc_x86",
|
||||
TARGET_LINUX_x86_64: "//build/bazel/platforms/os_arch:linux_glibc_x86_64",
|
||||
TARGET_LINUX_BIONIC_ARM64: "//build/bazel/platforms/os_arch:linux_bionic_arm64",
|
||||
TARGET_LINUX_BIONIC_X86_64: "//build/bazel/platforms/os_arch:linux_bionic_x86_64",
|
||||
TARGET_WINDOWS_X86: "//build/bazel/platforms/os_arch:windows_x86",
|
||||
TARGET_WINDOWS_X86_64: "//build/bazel/platforms/os_arch:windows_x86_64",
|
||||
CONDITIONS_DEFAULT: ConditionsDefaultSelectKey, // The default condition of an os select map.
|
||||
}
|
||||
|
||||
|
@@ -497,7 +497,7 @@ cc_library_static { name: "android_dep_for_shared" }
|
||||
"//build/bazel/platforms/os:android": ["-DANDROID_SHARED"],
|
||||
"//conditions:default": [],
|
||||
}) + select({
|
||||
"//build/bazel/platforms:android_arm": ["-DANDROID_ARM_SHARED"],
|
||||
"//build/bazel/platforms/os_arch:android_arm": ["-DANDROID_ARM_SHARED"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
shared_srcs = ["sharedonly.cpp"] + select({
|
||||
@@ -844,8 +844,8 @@ func TestCcLibraryLabelAttributeGetTargetProperties(t *testing.T) {
|
||||
],
|
||||
srcs = ["a.cpp"],
|
||||
version_script = select({
|
||||
"//build/bazel/platforms:android_arm": "android_arm.map",
|
||||
"//build/bazel/platforms:linux_bionic_arm64": "linux_bionic_arm64.map",
|
||||
"//build/bazel/platforms/os_arch:android_arm": "android_arm.map",
|
||||
"//build/bazel/platforms/os_arch:linux_bionic_arm64": "linux_bionic_arm64.map",
|
||||
"//conditions:default": None,
|
||||
}),
|
||||
)`},
|
||||
|
@@ -1282,14 +1282,14 @@ cc_library_static {
|
||||
"//build/bazel/platforms/os:android": ["android_src.c"],
|
||||
"//conditions:default": [],
|
||||
}) + select({
|
||||
"//build/bazel/platforms:android_arm": ["android_arm_src.c"],
|
||||
"//build/bazel/platforms:android_arm64": ["android_arm64_src.c"],
|
||||
"//build/bazel/platforms:android_x86": ["android_x86_src.c"],
|
||||
"//build/bazel/platforms:android_x86_64": ["android_x86_64_src.c"],
|
||||
"//build/bazel/platforms/os_arch:android_arm": ["android_arm_src.c"],
|
||||
"//build/bazel/platforms/os_arch:android_arm64": ["android_arm64_src.c"],
|
||||
"//build/bazel/platforms/os_arch:android_x86": ["android_x86_src.c"],
|
||||
"//build/bazel/platforms/os_arch:android_x86_64": ["android_x86_64_src.c"],
|
||||
"//conditions:default": [],
|
||||
}) + select({
|
||||
"//build/bazel/platforms:linux_bionic_arm64": ["linux_bionic_arm64_src.c"],
|
||||
"//build/bazel/platforms:linux_bionic_x86_64": ["linux_bionic_x86_64_src.c"],
|
||||
"//build/bazel/platforms/os_arch:linux_bionic_arm64": ["linux_bionic_arm64_src.c"],
|
||||
"//build/bazel/platforms/os_arch:linux_bionic_x86_64": ["linux_bionic_x86_64_src.c"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
)`},
|
||||
|
@@ -266,6 +266,66 @@ func bp2buildParseStaticOrSharedProps(ctx android.TopDownMutatorContext, module
|
||||
return attrs
|
||||
}
|
||||
|
||||
// Convenience struct to hold all attributes parsed from prebuilt properties.
|
||||
type prebuiltAttributes struct {
|
||||
Src bazel.LabelAttribute
|
||||
}
|
||||
|
||||
func Bp2BuildParsePrebuiltLibraryProps(ctx android.TopDownMutatorContext, module *Module) prebuiltAttributes {
|
||||
prebuiltLibraryLinker := module.linker.(*prebuiltLibraryLinker)
|
||||
prebuiltLinker := prebuiltLibraryLinker.prebuiltLinker
|
||||
|
||||
var srcLabelAttribute bazel.LabelAttribute
|
||||
|
||||
if len(prebuiltLinker.properties.Srcs) > 1 {
|
||||
ctx.ModuleErrorf("Bp2BuildParsePrebuiltLibraryProps: Expected at most once source file\n")
|
||||
}
|
||||
|
||||
if len(prebuiltLinker.properties.Srcs) == 1 {
|
||||
srcLabelAttribute.Value = android.BazelLabelForModuleSrcSingle(ctx, prebuiltLinker.properties.Srcs[0])
|
||||
for arch, props := range module.GetArchProperties(ctx, &prebuiltLinkerProperties{}) {
|
||||
if prebuiltLinkerProperties, ok := props.(*prebuiltLinkerProperties); ok {
|
||||
if len(prebuiltLinkerProperties.Srcs) > 1 {
|
||||
ctx.ModuleErrorf("Bp2BuildParsePrebuiltLibraryProps: Expected at most once source file for arch %s\n", arch.Name)
|
||||
}
|
||||
if len(prebuiltLinkerProperties.Srcs) == 1 {
|
||||
srcLabelAttribute.SetValueForArch(arch.Name, android.BazelLabelForModuleSrcSingle(ctx, prebuiltLinkerProperties.Srcs[0]))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for os, targetProperties := range module.GetTargetProperties(ctx, &prebuiltLinkerProperties{}) {
|
||||
if prebuiltLinkerProperties, ok := targetProperties.Properties.(*prebuiltLinkerProperties); ok {
|
||||
if len(prebuiltLinkerProperties.Srcs) > 1 {
|
||||
ctx.ModuleErrorf("Bp2BuildParsePrebuiltLibraryProps: Expected at most once source file for os %s\n", os.Name)
|
||||
|
||||
}
|
||||
|
||||
if len(prebuiltLinkerProperties.Srcs) == 1 {
|
||||
srcLabelAttribute.SetOsValueForTarget(os.Name, android.BazelLabelForModuleSrcSingle(ctx, prebuiltLinkerProperties.Srcs[0]))
|
||||
}
|
||||
}
|
||||
for arch, archProperties := range targetProperties.ArchProperties {
|
||||
if prebuiltLinkerProperties, ok := archProperties.(*prebuiltLinkerProperties); ok {
|
||||
if len(prebuiltLinkerProperties.Srcs) > 1 {
|
||||
ctx.ModuleErrorf("Bp2BuildParsePrebuiltLibraryProps: Expected at most once source file for os_arch %s_%s\n", os.Name, arch.Name)
|
||||
|
||||
}
|
||||
|
||||
if len(prebuiltLinkerProperties.Srcs) == 1 {
|
||||
srcLabelAttribute.SetOsArchValueForTarget(os.Name, arch.Name, android.BazelLabelForModuleSrcSingle(ctx, prebuiltLinkerProperties.Srcs[0]))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return prebuiltAttributes{
|
||||
Src: srcLabelAttribute,
|
||||
}
|
||||
}
|
||||
|
||||
// Convenience struct to hold all attributes parsed from compiler properties.
|
||||
type compilerAttributes struct {
|
||||
// Options for all languages
|
||||
@@ -633,11 +693,20 @@ func bp2BuildMakePathsRelativeToModule(ctx android.BazelConversionPathContext, p
|
||||
return relativePaths
|
||||
}
|
||||
|
||||
// bp2BuildParseExportedIncludes creates a string list attribute contains the
|
||||
// exported included directories of a module.
|
||||
func bp2BuildParseExportedIncludes(ctx android.TopDownMutatorContext, module *Module) bazel.StringListAttribute {
|
||||
libraryDecorator := module.linker.(*libraryDecorator)
|
||||
return bp2BuildParseExportedIncludesHelper(ctx, module, libraryDecorator)
|
||||
}
|
||||
|
||||
func Bp2BuildParseExportedIncludesForPrebuiltLibrary(ctx android.TopDownMutatorContext, module *Module) bazel.StringListAttribute {
|
||||
prebuiltLibraryLinker := module.linker.(*prebuiltLibraryLinker)
|
||||
libraryDecorator := prebuiltLibraryLinker.libraryDecorator
|
||||
return bp2BuildParseExportedIncludesHelper(ctx, module, libraryDecorator)
|
||||
}
|
||||
|
||||
// bp2BuildParseExportedIncludes creates a string list attribute contains the
|
||||
// exported included directories of a module.
|
||||
func bp2BuildParseExportedIncludesHelper(ctx android.TopDownMutatorContext, module *Module, libraryDecorator *libraryDecorator) bazel.StringListAttribute {
|
||||
// Export_system_include_dirs and export_include_dirs are already module dir
|
||||
// relative, so they don't need to be relativized like include_dirs, which
|
||||
// are root-relative.
|
||||
|
Reference in New Issue
Block a user