summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--android/util.go7
-rw-r--r--cc/rs.go2
-rw-r--r--java/java.go10
-rw-r--r--java/java_test.go10
4 files changed, 26 insertions, 3 deletions
diff --git a/android/util.go b/android/util.go
index 4d30a7400..29bb9b106 100644
--- a/android/util.go
+++ b/android/util.go
@@ -157,3 +157,10 @@ func callerName(skip int) (pkgPath, funcName string, ok bool) {
ok = true
return
}
+
+func GetNumericSdkVersion(v string) string {
+ if strings.Contains(v, "system_") {
+ return strings.Replace(v, "system_", "", 1)
+ }
+ return v
+}
diff --git a/cc/rs.go b/cc/rs.go
index c2335dd36..68ba54b14 100644
--- a/cc/rs.go
+++ b/cc/rs.go
@@ -86,7 +86,7 @@ func rsFlags(ctx ModuleContext, flags Flags, properties *BaseCompilerProperties)
case "current", "system_current", "test_current":
// Nothing
default:
- targetApi = ctx.sdkVersion()
+ targetApi = android.GetNumericSdkVersion(ctx.sdkVersion())
}
}
diff --git a/java/java.go b/java/java.go
index f875c799f..4355200fb 100644
--- a/java/java.go
+++ b/java/java.go
@@ -251,7 +251,7 @@ func sdkStringToNumber(ctx android.BaseContext, v string) int {
case "", "current", "system_current", "test_current":
return 10000
default:
- if i, err := strconv.Atoi(v); err != nil {
+ if i, err := strconv.Atoi(android.GetNumericSdkVersion(v)); err != nil {
ctx.PropertyErrorf("sdk_version", "invalid sdk version")
return -1
} else {
@@ -275,6 +275,12 @@ func decodeSdkDep(ctx android.BaseContext, v string) sdkDep {
aidlPath := android.ExistentPathForSource(ctx, "sdkdir", aidl)
if (!jarPath.Valid() || !aidlPath.Valid()) && ctx.Config().AllowMissingDependencies() {
+ if strings.Contains(v, "system_") {
+ return sdkDep{
+ invalidVersion: true,
+ module: "vsdk_v" + strings.Replace(v, "system_", "", 1),
+ }
+ }
return sdkDep{
invalidVersion: true,
module: "sdk_v" + v,
@@ -887,7 +893,7 @@ func (j *Module) minSdkVersionNumber(ctx android.ModuleContext) string {
case "", "current", "test_current", "system_current":
return strconv.Itoa(ctx.Config().DefaultAppTargetSdkInt())
default:
- return String(j.deviceProperties.Sdk_version)
+ return android.GetNumericSdkVersion(String(j.deviceProperties.Sdk_version))
}
}
diff --git a/java/java_test.go b/java/java_test.go
index 0a9eba94d..5b364279d 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -139,6 +139,8 @@ func testJavaWithEnvFs(t *testing.T, bp string,
"prebuilts/sdk/current/framework.aidl": nil,
"prebuilts/sdk/system_current/android.jar": nil,
"prebuilts/sdk/system_current/framework.aidl": nil,
+ "prebuilts/sdk/system_14/android.jar": nil,
+ "prebuilts/sdk/system_14/framework.aidl": nil,
"prebuilts/sdk/test_current/android.jar": nil,
"prebuilts/sdk/test_current/framework.aidl": nil,
@@ -286,6 +288,14 @@ var classpathTestcases = []struct {
},
{
+ name: "system_14",
+ properties: `sdk_version: "system_14",`,
+ bootclasspath: []string{`""`},
+ system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
+ classpath: []string{"prebuilts/sdk/system_14/android.jar"},
+ },
+ {
+
name: "test_current",
properties: `sdk_version: "test_current",`,
bootclasspath: []string{`""`},