Support relative_install_path for cc modules
Support specifying an install path relative to the default install
path for cc libraries and binaries.
Change-Id: I47a97de9beaedde27d99c498c3f26c9d36358d94
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index 934ea0c..8038473 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -11,19 +11,20 @@
)
var stringProperties = map[string]string{
- "LOCAL_MODULE": "name",
- "LOCAL_MODULE_STEM": "stem",
- "LOCAL_MODULE_CLASS": "class",
- "LOCAL_CXX_STL": "stl",
- "LOCAL_STRIP_MODULE": "strip",
- "LOCAL_MULTILIB": "compile_multilib",
- "LOCAL_ARM_MODE_HACK": "instruction_set",
- "LOCAL_SDK_VERSION": "sdk_version",
- "LOCAL_NDK_STL_VARIANT": "stl",
- "LOCAL_JAR_MANIFEST": "manifest",
- "LOCAL_JARJAR_RULES": "jarjar_rules",
- "LOCAL_CERTIFICATE": "certificate",
- "LOCAL_PACKAGE_NAME": "name",
+ "LOCAL_MODULE": "name",
+ "LOCAL_MODULE_STEM": "stem",
+ "LOCAL_MODULE_CLASS": "class",
+ "LOCAL_CXX_STL": "stl",
+ "LOCAL_STRIP_MODULE": "strip",
+ "LOCAL_MULTILIB": "compile_multilib",
+ "LOCAL_ARM_MODE_HACK": "instruction_set",
+ "LOCAL_SDK_VERSION": "sdk_version",
+ "LOCAL_NDK_STL_VARIANT": "stl",
+ "LOCAL_JAR_MANIFEST": "manifest",
+ "LOCAL_JARJAR_RULES": "jarjar_rules",
+ "LOCAL_CERTIFICATE": "certificate",
+ "LOCAL_PACKAGE_NAME": "name",
+ "LOCAL_MODULE_RELATIVE_PATH": "relative_install_path",
}
var listProperties = map[string]string{
diff --git a/cc/cc.go b/cc/cc.go
index f634697..18e499d 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -211,6 +211,9 @@
// Minimum sdk version supported when compiling against the ndk
Sdk_version string
+
+ // relative_install_path: install to a subdirectory of the default install path for the module
+ Relative_install_path string
}
type unusedProperties struct {
@@ -1079,7 +1082,7 @@
installDir = "lib64"
}
- ctx.InstallFile(installDir, c.out)
+ ctx.InstallFile(filepath.Join(installDir, c.properties.Relative_install_path), c.out)
}
func (c *CCLibrary) installModule(ctx common.AndroidModuleContext, flags CCFlags) {
@@ -1280,7 +1283,7 @@
}
func (c *CCBinary) installModule(ctx common.AndroidModuleContext, flags CCFlags) {
- ctx.InstallFile("bin", c.out)
+ ctx.InstallFile(filepath.Join("bin", c.properties.Relative_install_path), c.out)
}
type ccTest struct {