Allow .o files as srcs.

Test: m nothing
Test: TreeHugger
Bug: 134581881
Bug: 137267623

Change-Id: I26307dd1129e58878f0468da3b61c53f074bd674
This commit is contained in:
Pete Bentley 2019-08-16 20:14:32 +01:00 committed by Colin Cross
parent f02f30952d
commit fcf55bf656
5 changed files with 15 additions and 4 deletions

View File

@ -989,6 +989,10 @@ type ModuleOutPath struct {
var _ Path = ModuleOutPath{}
func (p ModuleOutPath) objPathWithExt(ctx ModuleContext, subdir, ext string) ModuleObjPath {
return PathForModuleObj(ctx, subdir, pathtools.ReplaceExtension(p.path, ext))
}
func pathForModule(ctx ModuleContext) OutputPath {
return PathForOutput(ctx, ".intermediates", ctx.ModuleDir(), ctx.ModuleName(), ctx.ModuleSubDir())
}

View File

@ -411,6 +411,9 @@ func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles and
},
})
continue
case ".o":
objFiles[i] = srcFile
continue
}
var moduleCflags string

View File

@ -2203,7 +2203,7 @@ func TestStaticExecutable(t *testing.T) {
ctx := testCc(t, `
cc_binary {
name: "static_test",
srcs: ["foo.c"],
srcs: ["foo.c", "baz.o"],
static_executable: true,
}`)

View File

@ -24,23 +24,26 @@ func TestLibraryReuse(t *testing.T) {
ctx := testCc(t, `
cc_library {
name: "libfoo",
srcs: ["foo.c"],
srcs: ["foo.c", "baz.o"],
}`)
libfooShared := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_core_shared").Rule("ld")
libfooStatic := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_core_static").Output("libfoo.a")
if len(libfooShared.Inputs) != 1 {
if len(libfooShared.Inputs) != 2 {
t.Fatalf("unexpected inputs to libfoo shared: %#v", libfooShared.Inputs.Strings())
}
if len(libfooStatic.Inputs) != 1 {
if len(libfooStatic.Inputs) != 2 {
t.Fatalf("unexpected inputs to libfoo static: %#v", libfooStatic.Inputs.Strings())
}
if libfooShared.Inputs[0] != libfooStatic.Inputs[0] {
t.Errorf("static object not reused for shared library")
}
if libfooShared.Inputs[1] != libfooStatic.Inputs[1] {
t.Errorf("static object not reused for shared library")
}
})
t.Run("extra static source", func(t *testing.T) {

View File

@ -263,6 +263,7 @@ func CreateTestContext(bp string, fs map[string][]byte,
"Android.bp": []byte(bp),
"foo.c": nil,
"bar.c": nil,
"baz.o": nil,
"a.proto": nil,
"b.aidl": nil,
"sub/c.aidl": nil,