Loading android/apex.go +11 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ import ( "sort" "strconv" "sync" "github.com/google/blueprint" ) const ( Loading Loading @@ -117,6 +119,15 @@ type ApexProperties struct { Info ApexInfo `blueprint:"mutated"` } // Marker interface that identifies dependencies that are excluded from APEX // contents. type ExcludeFromApexContentsTag interface { blueprint.DependencyTag // Method that differentiates this interface from others. ExcludeFromApexContents() } // Provides default implementation for the ApexModule interface. APEX-aware // modules are expected to include this struct and call InitApexModule(). type ApexModuleBase struct { Loading android/prebuilt.go +6 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,12 @@ var PrebuiltDepTag prebuiltDependencyTag // Mark this tag so dependencies that use it are excluded from visibility enforcement. func (t prebuiltDependencyTag) ExcludeFromVisibilityEnforcement() {} // Mark this tag so dependencies that use it are excluded from APEX contents. func (t prebuiltDependencyTag) ExcludeFromApexContents() {} var _ ExcludeFromVisibilityEnforcementTag = PrebuiltDepTag var _ ExcludeFromApexContentsTag = PrebuiltDepTag type PrebuiltProperties struct { // When prefer is set to true the prebuilt will be used instead of any source module with // a matching name. Loading apex/apex.go +4 −1 Original line number Diff line number Diff line Loading @@ -1986,6 +1986,9 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { // TODO(jiyong) do this using walkPayloadDeps ctx.WalkDepsBlueprint(func(child, parent blueprint.Module) bool { depTag := ctx.OtherModuleDependencyTag(child) if _, ok := depTag.(android.ExcludeFromApexContentsTag); ok { return false } depName := ctx.OtherModuleName(child) if _, isDirectDep := parent.(*apexBundle); isDirectDep { switch depTag { Loading Loading @@ -2154,7 +2157,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { filesInfo = append(filesInfo, apexFileForPrebuiltEtc(ctx, prebuilt, depName)) } } else if am.CanHaveApexVariants() && am.IsInstallableToApex() { ctx.ModuleErrorf("unexpected tag %q for indirect dependency %q", depTag, depName) ctx.ModuleErrorf("unexpected tag %s for indirect dependency %q", PrettyPrintTag(depTag), depName) } } } Loading apex/apex_test.go +12 −1 Original line number Diff line number Diff line Loading @@ -159,6 +159,7 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr "my_include": nil, "foo/bar/MyClass.java": nil, "prebuilt.jar": nil, "prebuilt.so": nil, "vendor/foo/devkeys/test.x509.pem": nil, "vendor/foo/devkeys/test.pk8": nil, "testkey.x509.pem": nil, Loading Loading @@ -368,7 +369,7 @@ func TestBasicApex(t *testing.T) { apex_available: [ "myapex" ], } cc_library { cc_library_shared { name: "mylib2", srcs: ["mylib.cpp"], system_shared_libs: [], Loading @@ -382,6 +383,16 @@ func TestBasicApex(t *testing.T) { ], } cc_prebuilt_library_shared { name: "mylib2", srcs: ["prebuilt.so"], // TODO: remove //apex_available:platform apex_available: [ "//apex_available:platform", "myapex", ], } cc_library_static { name: "libstatic", srcs: ["mylib.cpp"], Loading Loading
android/apex.go +11 −0 Original line number Diff line number Diff line Loading @@ -19,6 +19,8 @@ import ( "sort" "strconv" "sync" "github.com/google/blueprint" ) const ( Loading Loading @@ -117,6 +119,15 @@ type ApexProperties struct { Info ApexInfo `blueprint:"mutated"` } // Marker interface that identifies dependencies that are excluded from APEX // contents. type ExcludeFromApexContentsTag interface { blueprint.DependencyTag // Method that differentiates this interface from others. ExcludeFromApexContents() } // Provides default implementation for the ApexModule interface. APEX-aware // modules are expected to include this struct and call InitApexModule(). type ApexModuleBase struct { Loading
android/prebuilt.go +6 −0 Original line number Diff line number Diff line Loading @@ -39,6 +39,12 @@ var PrebuiltDepTag prebuiltDependencyTag // Mark this tag so dependencies that use it are excluded from visibility enforcement. func (t prebuiltDependencyTag) ExcludeFromVisibilityEnforcement() {} // Mark this tag so dependencies that use it are excluded from APEX contents. func (t prebuiltDependencyTag) ExcludeFromApexContents() {} var _ ExcludeFromVisibilityEnforcementTag = PrebuiltDepTag var _ ExcludeFromApexContentsTag = PrebuiltDepTag type PrebuiltProperties struct { // When prefer is set to true the prebuilt will be used instead of any source module with // a matching name. Loading
apex/apex.go +4 −1 Original line number Diff line number Diff line Loading @@ -1986,6 +1986,9 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { // TODO(jiyong) do this using walkPayloadDeps ctx.WalkDepsBlueprint(func(child, parent blueprint.Module) bool { depTag := ctx.OtherModuleDependencyTag(child) if _, ok := depTag.(android.ExcludeFromApexContentsTag); ok { return false } depName := ctx.OtherModuleName(child) if _, isDirectDep := parent.(*apexBundle); isDirectDep { switch depTag { Loading Loading @@ -2154,7 +2157,7 @@ func (a *apexBundle) GenerateAndroidBuildActions(ctx android.ModuleContext) { filesInfo = append(filesInfo, apexFileForPrebuiltEtc(ctx, prebuilt, depName)) } } else if am.CanHaveApexVariants() && am.IsInstallableToApex() { ctx.ModuleErrorf("unexpected tag %q for indirect dependency %q", depTag, depName) ctx.ModuleErrorf("unexpected tag %s for indirect dependency %q", PrettyPrintTag(depTag), depName) } } } Loading
apex/apex_test.go +12 −1 Original line number Diff line number Diff line Loading @@ -159,6 +159,7 @@ func testApexContext(t *testing.T, bp string, handlers ...testCustomizer) (*andr "my_include": nil, "foo/bar/MyClass.java": nil, "prebuilt.jar": nil, "prebuilt.so": nil, "vendor/foo/devkeys/test.x509.pem": nil, "vendor/foo/devkeys/test.pk8": nil, "testkey.x509.pem": nil, Loading Loading @@ -368,7 +369,7 @@ func TestBasicApex(t *testing.T) { apex_available: [ "myapex" ], } cc_library { cc_library_shared { name: "mylib2", srcs: ["mylib.cpp"], system_shared_libs: [], Loading @@ -382,6 +383,16 @@ func TestBasicApex(t *testing.T) { ], } cc_prebuilt_library_shared { name: "mylib2", srcs: ["prebuilt.so"], // TODO: remove //apex_available:platform apex_available: [ "//apex_available:platform", "myapex", ], } cc_library_static { name: "libstatic", srcs: ["mylib.cpp"], Loading