Create fewer empty version variants

Don't create empty version variants for binaries, objects, rust
rlibs or rust dylibs.

Test: no change to build.ninja
Change-Id: I62d4d43da476eafdb258a08b5ada758bb2971a1a
diff --git a/cc/cc.go b/cc/cc.go
index 006a4a5..e7aa1ac 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -1871,7 +1871,7 @@
 
 	variations = append([]blueprint.Variation(nil), variations...)
 
-	if version != "" && VersionVariantAvailable(c) {
+	if version != "" && CanBeOrLinkAgainstVersionVariants(c) {
 		// Version is explicitly specified. i.e. libFoo#30
 		variations = append(variations, blueprint.Variation{Mutator: "version", Variation: version})
 		depTag.explicitlyVersioned = true
@@ -1886,7 +1886,7 @@
 	// If the version is not specified, add dependency to all stubs libraries.
 	// The stubs library will be used when the depending module is built for APEX and
 	// the dependent module is not in the same APEX.
-	if version == "" && VersionVariantAvailable(c) {
+	if version == "" && CanBeOrLinkAgainstVersionVariants(c) {
 		if dep, ok := deps[0].(*Module); ok {
 			for _, ver := range dep.AllStubsVersions() {
 				// Note that depTag.ExplicitlyVersioned is false in this case.
@@ -2492,7 +2492,7 @@
 
 			if ccDep.CcLibrary() && !libDepTag.static() {
 				depIsStubs := ccDep.BuildStubs()
-				depHasStubs := VersionVariantAvailable(c) && ccDep.HasStubsVariants()
+				depHasStubs := CanBeOrLinkAgainstVersionVariants(c) && ccDep.HasStubsVariants()
 				depInSameApexes := android.DirectlyInAllApexes(c.InApexes(), depName)
 				depInPlatform := !android.DirectlyInAnyApex(ctx, depName)