Create config_setting per apex_name
These are created by bp2build in /build/bazel/rules/apex. Eventually these config_settings should likely be colocated with the source apex definition. Another alternative was to make Bazel's apex a macro that generates a config_setting. I did not pursue this further for now since it requires the apex_available of every allowlisted cc_library to also be allowlisted. This might not always be true (e.g. com.android.runtime) Test: go test ./bp2build Change-Id: Ibbb14b0d9c1491b3c79b7634a18d9d35b03922c1
This commit is contained in:
@@ -4454,3 +4454,32 @@ cc_library {
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
// Test that a config_setting specific to an apex is created by cc_library.
|
||||
func TestCcLibraryCreatesInApexConfigSetting(t *testing.T) {
|
||||
runCcLibraryTestCase(t, Bp2buildTestCase{
|
||||
Description: "cc_library creates a config_setting for each apex in apex_available",
|
||||
ModuleTypeUnderTest: "cc_library",
|
||||
ModuleTypeUnderTestFactory: cc.LibraryFactory,
|
||||
Dir: "build/bazel/rules/apex",
|
||||
Blueprint: `
|
||||
cc_library {
|
||||
name: "foo",
|
||||
apex_available: [
|
||||
"//apex_available:platform", // This will be skipped, since it is equivalent to //build/bazel/rules/apex:android-non_apex
|
||||
"myapex"
|
||||
],
|
||||
}`,
|
||||
ExpectedBazelTargets: []string{
|
||||
MakeBazelTargetNoRestrictions(
|
||||
"config_setting",
|
||||
"android-in_myapex",
|
||||
AttrNameToString{
|
||||
"flag_values": `{
|
||||
"//build/bazel/rules/apex:apex_name": "myapex",
|
||||
}`,
|
||||
},
|
||||
),
|
||||
},
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user