aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaewoong Jung2018-10-09 13:09:37 -0500
committerJaewoong Jung2018-10-15 14:38:19 -0500
commit59171a4401fcb5b887dc4cb3c1e3d1b085a6ffdb (patch)
tree62453178028f74dae8194afc34311cd5f26a5e6f /androidmk
parent109029fb5c0eb7f9c8263223adff063bb6d6ff03 (diff)
downloadplatform-build-soong-59171a4401fcb5b887dc4cb3c1e3d1b085a6ffdb.tar.gz
platform-build-soong-59171a4401fcb5b887dc4cb3c1e3d1b085a6ffdb.tar.xz
platform-build-soong-59171a4401fcb5b887dc4cb3c1e3d1b085a6ffdb.zip
Fix how soong converts LOCAL_STRIP_MODULE.
It should be translated to a poperty map with one entry, not a string value. Bug: 74083867 Change-Id: Ida659749a63e67eb55184e7c79959f57b8549dad Test: androidmk_test.go
Diffstat (limited to 'androidmk')
-rw-r--r--androidmk/cmd/androidmk/android.go25
-rw-r--r--androidmk/cmd/androidmk/androidmk_test.go41
2 files changed, 65 insertions, 1 deletions
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index 10e5b0a2..b3d5aec5 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -51,6 +51,7 @@ var rewriteProperties = map[string](func(variableAssignmentContext) error){
51 "LOCAL_MODULE_HOST_OS": hostOs, 51 "LOCAL_MODULE_HOST_OS": hostOs,
52 "LOCAL_SANITIZE": sanitize(""), 52 "LOCAL_SANITIZE": sanitize(""),
53 "LOCAL_SANITIZE_DIAG": sanitize("diag."), 53 "LOCAL_SANITIZE_DIAG": sanitize("diag."),
54 "LOCAL_STRIP_MODULE": strip(),
54 "LOCAL_CFLAGS": cflags, 55 "LOCAL_CFLAGS": cflags,
55 "LOCAL_UNINSTALLABLE_MODULE": invert("installable"), 56 "LOCAL_UNINSTALLABLE_MODULE": invert("installable"),
56 "LOCAL_PROGUARD_ENABLED": proguardEnabled, 57 "LOCAL_PROGUARD_ENABLED": proguardEnabled,
@@ -81,7 +82,6 @@ func init() {
81 map[string]string{ 82 map[string]string{
82 "LOCAL_MODULE": "name", 83 "LOCAL_MODULE": "name",
83 "LOCAL_CXX_STL": "stl", 84 "LOCAL_CXX_STL": "stl",
84 "LOCAL_STRIP_MODULE": "strip",
85 "LOCAL_MULTILIB": "compile_multilib", 85 "LOCAL_MULTILIB": "compile_multilib",
86 "LOCAL_ARM_MODE_HACK": "instruction_set", 86 "LOCAL_ARM_MODE_HACK": "instruction_set",
87 "LOCAL_SDK_VERSION": "sdk_version", 87 "LOCAL_SDK_VERSION": "sdk_version",
@@ -463,6 +463,29 @@ func sanitize(sub string) func(ctx variableAssignmentContext) error {
463 } 463 }
464} 464}
465 465
466func strip() func(ctx variableAssignmentContext) error {
467 return func(ctx variableAssignmentContext) error {
468 val, err := makeVariableToBlueprint(ctx.file, ctx.mkvalue, bpparser.StringType)
469 if err != nil {
470 return err
471 }
472
473 if _, ok := val.(*bpparser.String); !ok {
474 return fmt.Errorf("unsupported strip expression")
475 }
476
477 bpTrue := &bpparser.Bool{
478 Value: true,
479 }
480 v := val.(*bpparser.String).Value
481 sub := (map[string]string{"false": "none", "true": "all", "keep_symbols": "keep_symbols"})[v]
482 if sub == "" {
483 return fmt.Errorf("unexpected strip option: %s", v)
484 }
485 return setVariable(ctx.file, false, ctx.prefix, "strip."+sub, bpTrue, true)
486 }
487}
488
466func prebuiltClass(ctx variableAssignmentContext) error { 489func prebuiltClass(ctx variableAssignmentContext) error {
467 class := ctx.mkvalue.Value(ctx.file.scope) 490 class := ctx.mkvalue.Value(ctx.file.scope)
468 if v, ok := prebuiltTypes[class]; ok { 491 if v, ok := prebuiltTypes[class]; ok {
diff --git a/androidmk/cmd/androidmk/androidmk_test.go b/androidmk/cmd/androidmk/androidmk_test.go
index 80e7a75f..0f6c5ac7 100644
--- a/androidmk/cmd/androidmk/androidmk_test.go
+++ b/androidmk/cmd/androidmk/androidmk_test.go
@@ -692,6 +692,47 @@ include $(call all-makefiles-under,$(LOCAL_PATH))
692 } 692 }
693 `, 693 `,
694 }, 694 },
695 {
696 desc: "LOCAL_STRIP_MODULE",
697 in: `
698include $(CLEAR_VARS)
699LOCAL_MODULE := libtest
700LOCAL_STRIP_MODULE := false
701include $(BUILD_SHARED_LIBRARY)
702
703include $(CLEAR_VARS)
704LOCAL_MODULE := libtest2
705LOCAL_STRIP_MODULE := true
706include $(BUILD_SHARED_LIBRARY)
707
708include $(CLEAR_VARS)
709LOCAL_MODULE := libtest3
710LOCAL_STRIP_MODULE := keep_symbols
711include $(BUILD_SHARED_LIBRARY)
712`,
713 expected: `
714cc_library_shared {
715 name: "libtest",
716 strip: {
717 none: true,
718 }
719}
720
721cc_library_shared {
722 name: "libtest2",
723 strip: {
724 all: true,
725 }
726}
727
728cc_library_shared {
729 name: "libtest3",
730 strip: {
731 keep_symbols: true,
732 }
733}
734`,
735 },
695} 736}
696 737
697func TestEndToEnd(t *testing.T) { 738func TestEndToEnd(t *testing.T) {