Revert "Integrate Rust-specific System Properties into rules generation."

This reverts commit 65374edd0e25e76b38933c76c95cf03069955ef2.

Reason for revert: b/323833345

Change-Id: Ia722b68923617b4abfe3fd96b54b3fe108e9de74
diff --git a/sysprop/Android.bp b/sysprop/Android.bp
index d601fac..e5263fe 100644
--- a/sysprop/Android.bp
+++ b/sysprop/Android.bp
@@ -12,7 +12,6 @@
         "soong-bp2build",
         "soong-cc",
         "soong-java",
-        "soong-rust",
     ],
     srcs: [
         "sysprop_library.go",
diff --git a/sysprop/sysprop_library.go b/sysprop/sysprop_library.go
index 2927e2b..a2c0fb7 100644
--- a/sysprop/sysprop_library.go
+++ b/sysprop/sysprop_library.go
@@ -21,7 +21,6 @@
 	"io"
 	"os"
 	"path"
-	"strings"
 	"sync"
 
 	"android/soong/bazel"
@@ -32,7 +31,6 @@
 	"android/soong/android"
 	"android/soong/cc"
 	"android/soong/java"
-	"android/soong/rust"
 )
 
 type dependencyTag struct {
@@ -55,16 +53,7 @@
 	genSrcjars android.Paths
 }
 
-type syspropRustGenRule struct {
-	android.ModuleBase
-
-	properties syspropGenProperties
-
-	genSrcs android.Paths
-}
-
 var _ android.OutputFileProducer = (*syspropJavaGenRule)(nil)
-var _ android.OutputFileProducer = (*syspropRustGenRule)(nil)
 
 var (
 	syspropJava = pctx.AndroidStaticRule("syspropJava",
@@ -77,20 +66,11 @@
 				"$soongZipCmd",
 			},
 		}, "scope")
-	syspropRust = pctx.AndroidStaticRule("syspropRust",
-		blueprint.RuleParams{
-			Command: `rm -rf $out_dir && mkdir -p $out_dir && ` +
-				`$syspropRustCmd --scope $scope --rust-output-dir $out_dir $in`,
-			CommandDeps: []string{
-				"$syspropRustCmd",
-			},
-		}, "scope", "out_dir")
 )
 
 func init() {
 	pctx.HostBinToolVariable("soongZipCmd", "soong_zip")
 	pctx.HostBinToolVariable("syspropJavaCmd", "sysprop_java")
-	pctx.HostBinToolVariable("syspropRustCmd", "sysprop_rust")
 }
 
 // syspropJavaGenRule module generates srcjar containing generated java APIs.
@@ -144,56 +124,6 @@
 	return g
 }
 
-// syspropRustGenRule module generates rust source files containing generated rust APIs.
-// It also depends on check api rule, so api check has to pass to use sysprop_library.
-func (g *syspropRustGenRule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
-	var checkApiFileTimeStamp android.WritablePath
-
-	ctx.VisitDirectDeps(func(dep android.Module) {
-		if m, ok := dep.(*syspropLibrary); ok {
-			checkApiFileTimeStamp = m.checkApiFileTimeStamp
-		}
-	})
-
-	for _, syspropFile := range android.PathsForModuleSrc(ctx, g.properties.Srcs) {
-		syspropDir := strings.TrimSuffix(syspropFile.String(), syspropFile.Ext())
-		outputDir := android.PathForModuleGen(ctx, syspropDir, "src")
-		libPath := android.PathForModuleGen(ctx, syspropDir, "src", "lib.rs")
-		parsersPath := android.PathForModuleGen(ctx, syspropDir, "src", "gen_parsers_and_formatters.rs")
-
-		ctx.Build(pctx, android.BuildParams{
-			Rule:        syspropRust,
-			Description: "sysprop_rust " + syspropFile.Rel(),
-			Outputs:     android.WritablePaths{libPath, parsersPath},
-			Input:       syspropFile,
-			Implicit:    checkApiFileTimeStamp,
-			Args: map[string]string{
-				"scope":   g.properties.Scope,
-				"out_dir": outputDir.String(),
-			},
-		})
-
-		g.genSrcs = append(g.genSrcs, libPath, parsersPath)
-	}
-}
-
-func (g *syspropRustGenRule) DepsMutator(ctx android.BottomUpMutatorContext) {
-	// Add a dependency from the stubs to sysprop library so that the generator rule can depend on
-	// the check API rule of the sysprop library.
-	ctx.AddFarVariationDependencies(nil, nil, proptools.String(g.properties.Check_api))
-}
-
-func (g *syspropRustGenRule) OutputFiles(_ string) (android.Paths, error) {
-	return g.genSrcs, nil
-}
-
-func syspropRustGenFactory() android.Module {
-	g := &syspropRustGenRule{}
-	g.AddProperties(&g.properties)
-	android.InitAndroidModule(g)
-	return g
-}
-
 type syspropLibrary struct {
 	android.ModuleBase
 	android.ApexModuleBase
@@ -247,12 +177,6 @@
 		// Forwarded to java_library.min_sdk_version
 		Min_sdk_version *string
 	}
-
-	Rust struct {
-		// Minimum sdk version that the artifact should support when it runs as part of mainline modules(APEX).
-		// Forwarded to rust_library.min_sdk_version
-		Min_sdk_version *string
-	}
 }
 
 var (
@@ -306,21 +230,6 @@
 	return m.BaseModuleName() + "_java_gen_public"
 }
 
-func (m *syspropLibrary) rustGenModuleName() string {
-	return m.rustCrateName() + "_rust_gen"
-}
-
-func (m *syspropLibrary) rustGenStubName() string {
-	return "lib" + m.rustCrateName() + "_rust"
-}
-
-func (m *syspropLibrary) rustCrateName() string {
-	moduleName := strings.ToLower(m.BaseModuleName())
-	moduleName = strings.ReplaceAll(moduleName, "-", "_")
-	moduleName = strings.ReplaceAll(moduleName, ".", "_")
-	return moduleName
-}
-
 func (m *syspropLibrary) BaseModuleName() string {
 	return m.ModuleBase.Name()
 }
@@ -525,18 +434,6 @@
 	}
 }
 
-type rustLibraryProperties struct {
-	Name              *string
-	Srcs              []string
-	Installable       *bool
-	Crate_name        string
-	Rustlibs          []string
-	Vendor_available  *bool
-	Product_available *bool
-	Apex_available    []string
-	Min_sdk_version   *string
-}
-
 func syspropLibraryHook(ctx android.LoadHookContext, m *syspropLibrary) {
 	if len(m.properties.Srcs) == 0 {
 		ctx.PropertyErrorf("srcs", "sysprop_library must specify srcs")
@@ -682,28 +579,6 @@
 		})
 	}
 
-	// Generate a Rust implementation library.
-	ctx.CreateModule(syspropRustGenFactory, &syspropGenProperties{
-		Srcs:      m.properties.Srcs,
-		Scope:     scope,
-		Name:      proptools.StringPtr(m.rustGenModuleName()),
-		Check_api: proptools.StringPtr(ctx.ModuleName()),
-	})
-	rustProps := rustLibraryProperties{
-		Name:        proptools.StringPtr(m.rustGenStubName()),
-		Srcs:        []string{":" + m.rustGenModuleName()},
-		Installable: proptools.BoolPtr(false),
-		Crate_name:  m.rustCrateName(),
-		Rustlibs: []string{
-			"librustutils",
-		},
-		Vendor_available:  m.properties.Vendor_available,
-		Product_available: m.properties.Product_available,
-		Apex_available:    m.ApexProperties.Apex_available,
-		Min_sdk_version:   proptools.StringPtr("29"),
-	}
-	ctx.CreateModule(rust.RustLibraryFactory, &rustProps)
-
 	// syspropLibraries will be used by property_contexts to check types.
 	// Record absolute paths of sysprop_library to prevent soong_namespace problem.
 	if m.ExportedToMake() {
diff --git a/sysprop/sysprop_test.go b/sysprop/sysprop_test.go
index e6464a7..80b86e0 100644
--- a/sysprop/sysprop_test.go
+++ b/sysprop/sysprop_test.go
@@ -22,7 +22,6 @@
 	"android/soong/android"
 	"android/soong/cc"
 	"android/soong/java"
-	"android/soong/rust"
 
 	"github.com/google/blueprint/proptools"
 )
@@ -46,6 +45,18 @@
 			recovery_available: true,
 		}
 
+		cc_library {
+			name: "liblog",
+			no_libcrt: true,
+			nocrt: true,
+			system_shared_libs: [],
+			recovery_available: true,
+			host_supported: true,
+			llndk: {
+				symbol_file: "liblog.map.txt",
+			}
+		}
+
 		java_library {
 			name: "sysprop-library-stub-platform",
 			sdk_version: "core_current",
@@ -62,15 +73,6 @@
 			product_specific: true,
 			sdk_version: "core_current",
 		}
-
-		rust_library {
-			name: "librustutils",
-			crate_name: "rustutils",
-			srcs: ["librustutils/lib.rs"],
-			product_available: true,
-			vendor_available: true,
-			min_sdk_version: "29",
-		}
 	`
 
 	mockFS := android.MockFS{
@@ -112,14 +114,11 @@
 		"android/sysprop/PlatformProperties.sysprop": nil,
 		"com/android/VendorProperties.sysprop":       nil,
 		"com/android2/OdmProperties.sysprop":         nil,
-
-		"librustutils/lib.rs": nil,
 	}
 
 	result := android.GroupFixturePreparers(
 		cc.PrepareForTestWithCcDefaultModules,
 		java.PrepareForTestWithJavaDefaultModules,
-		rust.PrepareForTestWithRustDefaultModules,
 		PrepareForTestWithSyspropBuildComponents,
 		android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
 			variables.DeviceSystemSdkVersions = []string{"28"}
@@ -343,10 +342,6 @@
 	javaModule := result.ModuleForTests("sysprop-platform", "android_common").Module().(*java.Library)
 	propFromJava := javaModule.ApexProperties.Apex_available
 	android.AssertDeepEquals(t, "apex_available forwarding to java module", expected, propFromJava)
-
-	rustModule := result.ModuleForTests("libsysprop_platform_rust", "android_arm64_armv8-a_rlib_rlib-std").Module().(*rust.Module)
-	propFromRust := rustModule.ApexProperties.Apex_available
-	android.AssertDeepEquals(t, "apex_available forwarding to rust module", expected, propFromRust)
 }
 
 func TestMinSdkVersionIsForwarded(t *testing.T) {
@@ -362,9 +357,6 @@
 			java: {
 				min_sdk_version: "30",
 			},
-			rust: {
-				min_sdk_version: "29",
-			}
 		}
 	`)
 
@@ -375,8 +367,4 @@
 	javaModule := result.ModuleForTests("sysprop-platform", "android_common").Module().(*java.Library)
 	propFromJava := javaModule.MinSdkVersionString()
 	android.AssertStringEquals(t, "min_sdk_version forwarding to java module", "30", propFromJava)
-
-	rustModule := result.ModuleForTests("libsysprop_platform_rust", "android_arm64_armv8-a_rlib_rlib-std").Module().(*rust.Module)
-	propFromRust := proptools.String(rustModule.Properties.Min_sdk_version)
-	android.AssertStringEquals(t, "min_sdk_version forwarding to rust module", "29", propFromRust)
 }