Make order of properties in snapshot module consistent

Previously the compile_multilib property was added after the member
list properties at the top level but before them in the target.os
level. This change makes it always be added before them.

Bug: 186290299
Test: m nothing
Change-Id: I01fe272933fd11f7f730cc379f60fb2ce70f2114
diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go
index b19fcc5..a4f985b 100644
--- a/sdk/cc_sdk_test.go
+++ b/sdk/cc_sdk_test.go
@@ -157,8 +157,8 @@
     name: "mysdk@current",
     visibility: ["//visibility:public"],
     host_supported: true,
-    native_shared_libs: ["mysdk_sdkmember@current"],
     compile_multilib: "64",
+    native_shared_libs: ["mysdk_sdkmember@current"],
     target: {
         host: {
             enabled: false,
@@ -960,9 +960,9 @@
     visibility: ["//visibility:public"],
     device_supported: false,
     host_supported: true,
+    compile_multilib: "64",
     native_binaries: ["myexports_mynativebinary@current"],
     native_shared_libs: ["myexports_mynativelib@current"],
-    compile_multilib: "64",
     target: {
         host: {
             enabled: false,
@@ -1920,8 +1920,8 @@
     visibility: ["//visibility:public"],
     device_supported: false,
     host_supported: true,
-    native_static_libs: ["myexports_mynativelib@current"],
     compile_multilib: "64",
+    native_static_libs: ["myexports_mynativelib@current"],
     target: {
         host: {
             enabled: false,
diff --git a/sdk/update.go b/sdk/update.go
index 248cf5d..0bec505 100644
--- a/sdk/update.go
+++ b/sdk/update.go
@@ -380,9 +380,6 @@
 	extractor := newCommonValueExtractor(commonDynamicMemberProperties)
 	extractCommonProperties(ctx, extractor, commonDynamicMemberProperties, dynamicMemberPropertiesContainers)
 
-	// Add properties common to all os types.
-	s.addMemberPropertiesToPropertySet(builder, snapshotModule, commonDynamicMemberProperties)
-
 	// Optimize other per-variant properties, besides the dynamic member lists.
 	type variantProperties struct {
 		Compile_multilib string `android:"arch_variant"`
@@ -399,11 +396,14 @@
 	commonVariantProperties := variantProperties{}
 	extractor = newCommonValueExtractor(commonVariantProperties)
 	extractCommonProperties(ctx, extractor, &commonVariantProperties, variantPropertiesContainers)
+
 	if commonVariantProperties.Compile_multilib != "" && commonVariantProperties.Compile_multilib != "both" {
 		// Compile_multilib defaults to both so only needs to be set when it's
 		// specified and not both.
 		snapshotModule.AddProperty("compile_multilib", commonVariantProperties.Compile_multilib)
 	}
+	// Add properties common to all os types.
+	s.addMemberPropertiesToPropertySet(builder, snapshotModule, commonDynamicMemberProperties)
 
 	targetPropertySet := snapshotModule.AddPropertySet("target")