diff options
Diffstat (limited to 'common/paths.go')
-rw-r--r-- | common/paths.go | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/common/paths.go b/common/paths.go new file mode 100644 index 00000000..91b8f99c --- /dev/null +++ b/common/paths.go @@ -0,0 +1,83 @@ +// Copyright 2015 Google Inc. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package common + +import ( + "path/filepath" + + "blueprint" +) + +type Config interface { + CpPreserveSymlinksFlags() string + SrcDir() string +} + +// ModuleOutDir returns the path to the module-specific output directory. +func ModuleOutDir(ctx AndroidModuleContext) string { + return filepath.Join(".intermediates", ctx.ModuleDir(), ctx.ModuleName(), ctx.ModuleSubDir()) +} + +// ModuleSrcDir returns the path of the directory that all source file paths are +// specified relative to. +func ModuleSrcDir(ctx blueprint.ModuleContext) string { + config := ctx.Config().(Config) + return filepath.Join(config.SrcDir(), ctx.ModuleDir()) +} + +// ModuleBinDir returns the path to the module- and architecture-specific binary +// output directory. +func ModuleBinDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "bin") +} + +// ModuleLibDir returns the path to the module- and architecture-specific +// library output directory. +func ModuleLibDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "lib") +} + +// ModuleGenDir returns the module directory for generated files +// path. +func ModuleGenDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "gen") +} + +// ModuleObjDir returns the module- and architecture-specific object directory +// path. +func ModuleObjDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "obj") +} + +// ModuleGoPackageDir returns the module-specific package root directory path. +// This directory is where the final package .a files are output and where +// dependent modules search for this package via -I arguments. +func ModuleGoPackageDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "pkg") +} + +// ModuleIncludeDir returns the module-specific public include directory path. +func ModuleIncludeDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "include") +} + +// ModuleProtoDir returns the module-specific public proto include directory path. +func ModuleProtoDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "proto") +} + +func ModuleJSCompiledDir(ctx AndroidModuleContext) string { + return filepath.Join(ModuleOutDir(ctx), "js") +} |