diff options
author | Jaewoong Jung | 2018-10-09 13:09:37 -0500 |
---|---|---|
committer | Jaewoong Jung | 2018-10-15 14:38:19 -0500 |
commit | 59171a4401fcb5b887dc4cb3c1e3d1b085a6ffdb (patch) | |
tree | 62453178028f74dae8194afc34311cd5f26a5e6f /androidmk | |
parent | 109029fb5c0eb7f9c8263223adff063bb6d6ff03 (diff) | |
download | platform-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.go | 25 | ||||
-rw-r--r-- | androidmk/cmd/androidmk/androidmk_test.go | 41 |
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 | ||
466 | func 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 | |||
466 | func prebuiltClass(ctx variableAssignmentContext) error { | 489 | func 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: ` | ||
698 | include $(CLEAR_VARS) | ||
699 | LOCAL_MODULE := libtest | ||
700 | LOCAL_STRIP_MODULE := false | ||
701 | include $(BUILD_SHARED_LIBRARY) | ||
702 | |||
703 | include $(CLEAR_VARS) | ||
704 | LOCAL_MODULE := libtest2 | ||
705 | LOCAL_STRIP_MODULE := true | ||
706 | include $(BUILD_SHARED_LIBRARY) | ||
707 | |||
708 | include $(CLEAR_VARS) | ||
709 | LOCAL_MODULE := libtest3 | ||
710 | LOCAL_STRIP_MODULE := keep_symbols | ||
711 | include $(BUILD_SHARED_LIBRARY) | ||
712 | `, | ||
713 | expected: ` | ||
714 | cc_library_shared { | ||
715 | name: "libtest", | ||
716 | strip: { | ||
717 | none: true, | ||
718 | } | ||
719 | } | ||
720 | |||
721 | cc_library_shared { | ||
722 | name: "libtest2", | ||
723 | strip: { | ||
724 | all: true, | ||
725 | } | ||
726 | } | ||
727 | |||
728 | cc_library_shared { | ||
729 | name: "libtest3", | ||
730 | strip: { | ||
731 | keep_symbols: true, | ||
732 | } | ||
733 | } | ||
734 | `, | ||
735 | }, | ||
695 | } | 736 | } |
696 | 737 | ||
697 | func TestEndToEnd(t *testing.T) { | 738 | func TestEndToEnd(t *testing.T) { |