Revert "Sandbox soong_build by changing to root directory"
This reverts commit 05c25ccb4adb5329add700b533416c226cdbfa96.
Reason for revert: broke absolute OUT_DIR
Bug: 146437378
Change-Id: I523ed79d40e1c1ef040212ba794a7a084abea75d
diff --git a/android/paths.go b/android/paths.go
index 02f56d0..a03fe17 100644
--- a/android/paths.go
+++ b/android/paths.go
@@ -16,8 +16,6 @@
import (
"fmt"
- "io/ioutil"
- "os"
"path/filepath"
"reflect"
"sort"
@@ -27,11 +25,10 @@
"github.com/google/blueprint/pathtools"
)
-var absSrcDir string
-
// PathContext is the subset of a (Module|Singleton)Context required by the
// Path methods.
type PathContext interface {
+ Fs() pathtools.FileSystem
Config() Config
AddNinjaFileDeps(deps ...string)
}
@@ -393,7 +390,7 @@
return PathsWithModuleSrcSubDir(ctx, paths, ""), nil
} else {
p := pathForModuleSrc(ctx, s)
- if exists, _, err := ctx.Config().fs.Exists(p.String()); err != nil {
+ if exists, _, err := ctx.Fs().Exists(p.String()); err != nil {
reportPathErrorf(ctx, "%s: %s", p, err.Error())
} else if !exists {
reportPathErrorf(ctx, "module source path %q does not exist", p)
@@ -723,7 +720,7 @@
var deps []string
// We cannot add build statements in this context, so we fall back to
// AddNinjaFileDeps
- files, deps, err = ctx.Config().fs.Glob(path.String(), nil, pathtools.FollowSymlinks)
+ files, deps, err = pathtools.Glob(path.String(), nil, pathtools.FollowSymlinks)
ctx.AddNinjaFileDeps(deps...)
}
@@ -755,7 +752,7 @@
if !exists {
modCtx.AddMissingDependencies([]string{path.String()})
}
- } else if exists, _, err := ctx.Config().fs.Exists(path.String()); err != nil {
+ } else if exists, _, err := ctx.Fs().Exists(path.String()); err != nil {
reportPathErrorf(ctx, "%s: %s", path, err.Error())
} else if !exists {
reportPathErrorf(ctx, "source path %q does not exist", path)
@@ -1359,6 +1356,7 @@
config Config
}
+func (x *testPathContext) Fs() pathtools.FileSystem { return x.config.fs }
func (x *testPathContext) Config() Config { return x.config }
func (x *testPathContext) AddNinjaFileDeps(...string) {}
@@ -1404,16 +1402,3 @@
}
return rel, true, nil
}
-
-// Writes a file to the output directory. Attempting to write directly to the output directory
-// will fail due to the sandbox of the soong_build process.
-func WriteFileToOutputDir(path WritablePath, data []byte, perm os.FileMode) error {
- return ioutil.WriteFile(absolutePath(path.String()), data, perm)
-}
-
-func absolutePath(path string) string {
- if filepath.IsAbs(path) {
- return path
- }
- return filepath.Join(absSrcDir, path)
-}