Use SRCDIR as a working directory

The existing behavior of using the build directory as the working
directory is useful if you want to move/copy the output directory around
and SRCDIR still refers the the source. But, it's more useful to have
the source directory be the working directory. Tools like cpp(__FILE__)
and other debug prints embed relative paths from the working directory.
We also have tools that expect the working directory to be $TOP.

Change-Id: Ia0f1d3c6b7df72d61cf5628efa2baa98bd19775b
This commit is contained in:
Dan Willemsen
2015-07-14 00:39:06 -07:00
parent c3ba6cb970
commit 87b17d1ff4
11 changed files with 90 additions and 47 deletions

View File

@@ -140,12 +140,14 @@ func TransformSourceToObj(ctx common.AndroidModuleContext, subdir string, srcFil
for i, srcFile := range srcFiles {
var objFile string
if strings.HasPrefix(srcFile, srcRoot) {
objFile = strings.TrimPrefix(srcFile, srcRoot)
objFile = filepath.Join(objDir, objFile)
} else if strings.HasPrefix(srcFile, intermediatesRoot) {
if strings.HasPrefix(srcFile, intermediatesRoot) {
objFile = strings.TrimPrefix(srcFile, intermediatesRoot)
objFile = filepath.Join(objDir, "gen", objFile)
} else if strings.HasPrefix(srcFile, srcRoot) {
srcFile, _ = filepath.Rel(srcRoot, srcFile)
objFile = filepath.Join(objDir, srcFile)
} else if srcRoot == "." && srcFile[0] != '/' {
objFile = filepath.Join(objDir, srcFile)
} else {
ctx.ModuleErrorf("source file %q is not in source directory %q", srcFile, srcRoot)
continue