Make __ANDROID_APEX_<NAME>__ macro optional
This is rarely used feature but cost alot for the local build and build inra. Bug: 150506627 Test: m Change-Id: Iec3ada4a97c7b228f2818563fa0e81b407f2715a
This commit is contained in:
@@ -1389,13 +1389,13 @@ func TestMacro(t *testing.T) {
|
|||||||
apex {
|
apex {
|
||||||
name: "myapex",
|
name: "myapex",
|
||||||
key: "myapex.key",
|
key: "myapex.key",
|
||||||
native_shared_libs: ["mylib"],
|
native_shared_libs: ["mylib", "mylib2"],
|
||||||
}
|
}
|
||||||
|
|
||||||
apex {
|
apex {
|
||||||
name: "otherapex",
|
name: "otherapex",
|
||||||
key: "myapex.key",
|
key: "myapex.key",
|
||||||
native_shared_libs: ["mylib"],
|
native_shared_libs: ["mylib", "mylib2"],
|
||||||
}
|
}
|
||||||
|
|
||||||
apex_key {
|
apex_key {
|
||||||
@@ -1409,29 +1409,53 @@ func TestMacro(t *testing.T) {
|
|||||||
srcs: ["mylib.cpp"],
|
srcs: ["mylib.cpp"],
|
||||||
system_shared_libs: [],
|
system_shared_libs: [],
|
||||||
stl: "none",
|
stl: "none",
|
||||||
// TODO: remove //apex_available:platform
|
|
||||||
apex_available: [
|
apex_available: [
|
||||||
"//apex_available:platform",
|
|
||||||
"myapex",
|
"myapex",
|
||||||
"otherapex",
|
"otherapex",
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
cc_library {
|
||||||
|
name: "mylib2",
|
||||||
|
srcs: ["mylib.cpp"],
|
||||||
|
system_shared_libs: [],
|
||||||
|
stl: "none",
|
||||||
|
apex_available: [
|
||||||
|
"myapex",
|
||||||
|
"otherapex",
|
||||||
|
],
|
||||||
|
use_apex_name_macro: true,
|
||||||
|
}
|
||||||
`)
|
`)
|
||||||
|
|
||||||
// non-APEX variant does not have __ANDROID_APEX(_NAME)__ defined
|
// non-APEX variant does not have __ANDROID_APEX__ defined
|
||||||
mylibCFlags := ctx.ModuleForTests("mylib", "android_arm64_armv8-a_static").Rule("cc").Args["cFlags"]
|
mylibCFlags := ctx.ModuleForTests("mylib", "android_arm64_armv8-a_static").Rule("cc").Args["cFlags"]
|
||||||
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
||||||
|
|
||||||
|
// APEX variant has __ANDROID_APEX__ defined
|
||||||
|
mylibCFlags = ctx.ModuleForTests("mylib", "android_arm64_armv8-a_static_myapex").Rule("cc").Args["cFlags"]
|
||||||
|
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
||||||
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_MYAPEX__")
|
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_MYAPEX__")
|
||||||
|
|
||||||
|
// APEX variant has __ANDROID_APEX__ defined
|
||||||
|
mylibCFlags = ctx.ModuleForTests("mylib", "android_arm64_armv8-a_static_otherapex").Rule("cc").Args["cFlags"]
|
||||||
|
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
||||||
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_OTHERAPEX__")
|
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_OTHERAPEX__")
|
||||||
|
|
||||||
// APEX variant has __ANDROID_APEX(_NAME)__ defined
|
// When cc_library sets use_apex_name_macro: true
|
||||||
mylibCFlags = ctx.ModuleForTests("mylib", "android_arm64_armv8-a_static_myapex").Rule("cc").Args["cFlags"]
|
// apex variants define additional macro to distinguish which apex variant it is built for
|
||||||
|
|
||||||
|
// non-APEX variant does not have __ANDROID_APEX__ defined
|
||||||
|
mylibCFlags = ctx.ModuleForTests("mylib2", "android_arm64_armv8-a_static").Rule("cc").Args["cFlags"]
|
||||||
|
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
||||||
|
|
||||||
|
// APEX variant has __ANDROID_APEX__ defined
|
||||||
|
mylibCFlags = ctx.ModuleForTests("mylib2", "android_arm64_armv8-a_static_myapex").Rule("cc").Args["cFlags"]
|
||||||
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
||||||
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX_MYAPEX__")
|
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX_MYAPEX__")
|
||||||
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_OTHERAPEX__")
|
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_OTHERAPEX__")
|
||||||
|
|
||||||
// APEX variant has __ANDROID_APEX(_NAME)__ defined
|
// APEX variant has __ANDROID_APEX__ defined
|
||||||
mylibCFlags = ctx.ModuleForTests("mylib", "android_arm64_armv8-a_static_otherapex").Rule("cc").Args["cFlags"]
|
mylibCFlags = ctx.ModuleForTests("mylib2", "android_arm64_armv8-a_static_otherapex").Rule("cc").Args["cFlags"]
|
||||||
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX__")
|
||||||
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_MYAPEX__")
|
ensureNotContains(t, mylibCFlags, "-D__ANDROID_APEX_MYAPEX__")
|
||||||
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX_OTHERAPEX__")
|
ensureContains(t, mylibCFlags, "-D__ANDROID_APEX_OTHERAPEX__")
|
||||||
|
@@ -176,6 +176,9 @@ type BaseCompilerProperties struct {
|
|||||||
|
|
||||||
// Build and link with OpenMP
|
// Build and link with OpenMP
|
||||||
Openmp *bool `android:"arch_variant"`
|
Openmp *bool `android:"arch_variant"`
|
||||||
|
|
||||||
|
// Adds __ANDROID_APEX_<APEX_MODULE_NAME>__ macro defined for apex variants in addition to __ANDROID_APEX__
|
||||||
|
Use_apex_name_macro *bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewBaseCompiler() *baseCompiler {
|
func NewBaseCompiler() *baseCompiler {
|
||||||
@@ -321,9 +324,10 @@ func (compiler *baseCompiler) compilerFlags(ctx ModuleContext, flags Flags, deps
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ctx.apexName() != "" {
|
if ctx.apexName() != "" {
|
||||||
flags.Global.CommonFlags = append(flags.Global.CommonFlags,
|
flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_APEX__")
|
||||||
"-D__ANDROID_APEX__",
|
if Bool(compiler.Properties.Use_apex_name_macro) {
|
||||||
"-D__ANDROID_APEX_"+makeDefineString(ctx.apexName())+"__")
|
flags.Global.CommonFlags = append(flags.Global.CommonFlags, "-D__ANDROID_APEX_"+makeDefineString(ctx.apexName())+"__")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
instructionSet := String(compiler.Properties.Instruction_set)
|
instructionSet := String(compiler.Properties.Instruction_set)
|
||||||
|
Reference in New Issue
Block a user