Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 23f8adb6 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Enable sdk and sdk members in os_arch granularity"

parents b646bc18 8fe14e6a
Loading
Loading
Loading
Loading
+115 −89
Original line number Diff line number Diff line
@@ -120,10 +120,8 @@ cc_prebuilt_library_shared {
        android_arm64: {
            srcs: ["android/arm64/lib/sdkmember.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/sdkmember.so"],
        },
    },
@@ -143,10 +141,8 @@ cc_prebuilt_library_shared {
        android_arm64: {
            srcs: ["android/arm64/lib/sdkmember.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/sdkmember.so"],
        },
    },
@@ -162,7 +158,7 @@ sdk_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
    },
@@ -670,20 +666,21 @@ cc_prebuilt_binary {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
            compile_multilib: "both",
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/bin/mynativebinary"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/bin/mynativebinary"],
        },
        windows: {
            enabled: true,
            compile_multilib: "64",
        },
        windows_x86_64: {
            enabled: true,
            srcs: ["windows/x86_64/bin/mynativebinary.exe"],
        },
    },
@@ -701,20 +698,21 @@ cc_prebuilt_binary {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
            compile_multilib: "both",
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/bin/mynativebinary"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/bin/mynativebinary"],
        },
        windows: {
            enabled: true,
            compile_multilib: "64",
        },
        windows_x86_64: {
            enabled: true,
            srcs: ["windows/x86_64/bin/mynativebinary.exe"],
        },
    },
@@ -727,15 +725,20 @@ module_exports_snapshot {
    host_supported: true,
    native_binaries: ["myexports_mynativebinary@current"],
    target: {
        windows: {
            compile_multilib: "64",
        },
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        windows: {
        linux_glibc_x86: {
            enabled: true,
        },
        windows_x86_64: {
            enabled: true,
            compile_multilib: "64",
        },
    },
}
@@ -811,10 +814,8 @@ cc_prebuilt_binary {
        host: {
            enabled: false,
        },
        linux_bionic: {
            enabled: true,
        },
        linux_bionic_x86_64: {
            enabled: true,
            srcs: ["x86_64/bin/mynativebinary"],
        },
    },
@@ -832,10 +833,8 @@ cc_prebuilt_binary {
        host: {
            enabled: false,
        },
        linux_bionic: {
            enabled: true,
        },
        linux_bionic_x86_64: {
            enabled: true,
            srcs: ["x86_64/bin/mynativebinary"],
        },
    },
@@ -854,10 +853,8 @@ cc_prebuilt_library_shared {
        host: {
            enabled: false,
        },
        linux_bionic: {
            enabled: true,
        },
        linux_bionic_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.so"],
        },
    },
@@ -875,10 +872,8 @@ cc_prebuilt_library_shared {
        host: {
            enabled: false,
        },
        linux_bionic: {
            enabled: true,
        },
        linux_bionic_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.so"],
        },
    },
@@ -896,7 +891,7 @@ module_exports_snapshot {
        host: {
            enabled: false,
        },
        linux_bionic: {
        linux_bionic_x86_64: {
            enabled: true,
        },
    },
@@ -952,13 +947,12 @@ cc_prebuilt_binary {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/bin/linker"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["x86/bin/linker"],
        },
    },
@@ -978,13 +972,12 @@ cc_prebuilt_binary {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/bin/linker"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["x86/bin/linker"],
        },
    },
@@ -1000,7 +993,10 @@ module_exports_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -1345,14 +1341,13 @@ cc_prebuilt_library_shared {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.so"],
            export_include_dirs: ["x86_64/include_gen/mynativelib"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["x86/lib/mynativelib.so"],
            export_include_dirs: ["x86/include_gen/mynativelib"],
        },
@@ -1373,14 +1368,13 @@ cc_prebuilt_library_shared {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.so"],
            export_include_dirs: ["x86_64/include_gen/mynativelib"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["x86/lib/mynativelib.so"],
            export_include_dirs: ["x86/include_gen/mynativelib"],
        },
@@ -1397,7 +1391,10 @@ sdk_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -1464,20 +1461,21 @@ cc_prebuilt_library_shared {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
            compile_multilib: "both",
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/mynativelib.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/mynativelib.so"],
        },
        windows: {
            enabled: true,
            compile_multilib: "64",
        },
        windows_x86_64: {
            enabled: true,
            srcs: ["windows/x86_64/lib/mynativelib.dll"],
        },
    },
@@ -1495,20 +1493,21 @@ cc_prebuilt_library_shared {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
            compile_multilib: "both",
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/mynativelib.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/mynativelib.so"],
        },
        windows: {
            enabled: true,
            compile_multilib: "64",
        },
        windows_x86_64: {
            enabled: true,
            srcs: ["windows/x86_64/lib/mynativelib.dll"],
        },
    },
@@ -1521,15 +1520,20 @@ sdk_snapshot {
    host_supported: true,
    native_shared_libs: ["mysdk_mynativelib@current"],
    target: {
        windows: {
            compile_multilib: "64",
        },
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        windows: {
        linux_glibc_x86: {
            enabled: true,
        },
        windows_x86_64: {
            enabled: true,
            compile_multilib: "64",
        },
    },
}
@@ -1669,14 +1673,13 @@ cc_prebuilt_library_static {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.a"],
            export_include_dirs: ["x86_64/include_gen/mynativelib"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["x86/lib/mynativelib.a"],
            export_include_dirs: ["x86/include_gen/mynativelib"],
        },
@@ -1696,14 +1699,13 @@ cc_prebuilt_library_static {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.a"],
            export_include_dirs: ["x86_64/include_gen/mynativelib"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["x86/lib/mynativelib.a"],
            export_include_dirs: ["x86/include_gen/mynativelib"],
        },
@@ -1720,7 +1722,10 @@ module_exports_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -1885,10 +1890,8 @@ cc_prebuilt_library_static {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.a"],
            export_include_dirs: ["x86_64/include_gen/mynativelib"],
        },
@@ -1908,10 +1911,8 @@ cc_prebuilt_library_static {
        host: {
            enabled: false,
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["x86_64/lib/mynativelib.a"],
            export_include_dirs: ["x86_64/include_gen/mynativelib"],
        },
@@ -1929,7 +1930,7 @@ module_exports_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
    },
@@ -2027,7 +2028,10 @@ cc_prebuilt_library_headers {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -2046,7 +2050,10 @@ cc_prebuilt_library_headers {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -2062,7 +2069,10 @@ sdk_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -2118,9 +2128,14 @@ cc_prebuilt_library_headers {
            export_include_dirs: ["android/include/include-android"],
        },
        linux_glibc: {
            enabled: true,
            export_include_dirs: ["linux_glibc/include/include-host"],
        },
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
}

@@ -2140,9 +2155,14 @@ cc_prebuilt_library_headers {
            export_include_dirs: ["android/include/include-android"],
        },
        linux_glibc: {
            enabled: true,
            export_include_dirs: ["linux_glibc/include/include-host"],
        },
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
}

@@ -2155,7 +2175,10 @@ sdk_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -2346,13 +2369,12 @@ cc_prebuilt_library_shared {
        android_arm: {
            srcs: ["android/arm/lib/sslvariants.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/sslvariants.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/sslvariants.so"],
        },
    },
@@ -2377,13 +2399,12 @@ cc_prebuilt_library_shared {
        android_arm: {
            srcs: ["android/arm/lib/sslvariants.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/sslvariants.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/sslvariants.so"],
        },
    },
@@ -2398,7 +2419,10 @@ sdk_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -2536,13 +2560,12 @@ cc_prebuilt_library_shared {
        android_arm: {
            srcs: ["android/arm/lib/stubslib.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/stubslib.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/stubslib.so"],
        },
    },
@@ -2571,13 +2594,12 @@ cc_prebuilt_library_shared {
        android_arm: {
            srcs: ["android/arm/lib/stubslib.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/stubslib.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/stubslib.so"],
        },
    },
@@ -2592,7 +2614,10 @@ sdk_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
@@ -2637,13 +2662,12 @@ cc_prebuilt_library_shared {
        android_arm: {
            srcs: ["android/arm/lib/mylib.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/mylib-host.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/mylib-host.so"],
        },
    },
@@ -2666,13 +2690,12 @@ cc_prebuilt_library_shared {
        android_arm: {
            srcs: ["android/arm/lib/mylib.so"],
        },
        linux_glibc: {
            enabled: true,
        },
        linux_glibc_x86_64: {
            enabled: true,
            srcs: ["linux_glibc/x86_64/lib/mylib-host.so"],
        },
        linux_glibc_x86: {
            enabled: true,
            srcs: ["linux_glibc/x86/lib/mylib-host.so"],
        },
    },
@@ -2687,7 +2710,10 @@ sdk_snapshot {
        host: {
            enabled: false,
        },
        linux_glibc: {
        linux_glibc_x86_64: {
            enabled: true,
        },
        linux_glibc_x86: {
            enabled: true,
        },
    },
+33 −31
Original line number Diff line number Diff line
@@ -347,34 +347,11 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro

	targetPropertySet := snapshotModule.AddPropertySet("target")

	// If host is supported and any member is host OS dependent then disable host
	// by default, so that we can enable each host OS variant explicitly. This
	// avoids problems with implicitly enabled OS variants when the snapshot is
	// used, which might be different from this run (e.g. different build OS).
	hasHostOsDependentMember := false
	if s.HostSupported() {
		for _, memberRef := range memberRefs {
			if memberRef.memberType.IsHostOsDependent() {
				hasHostOsDependentMember = true
				break
			}
		}
		if hasHostOsDependentMember {
			hostPropertySet := targetPropertySet.AddPropertySet("host")
			hostPropertySet.AddProperty("enabled", false)
		}
	}

	// Iterate over the os types in a fixed order.
	for _, osType := range s.getPossibleOsTypes() {
		if sdkVariant, ok := osTypeToMemberProperties[osType]; ok {
			osPropertySet := targetPropertySet.AddPropertySet(sdkVariant.Target().Os.Name)

			// Enable the variant explicitly when we've disabled it by default on host.
			if hasHostOsDependentMember && osType.Class == android.Host {
				osPropertySet.AddProperty("enabled", true)
			}

			variantProps := variantToProperties[sdkVariant]
			if variantProps.Compile_multilib != "" && variantProps.Compile_multilib != "both" {
				osPropertySet.AddProperty("compile_multilib", variantProps.Compile_multilib)
@@ -384,6 +361,31 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro
		}
	}

	// If host is supported and any member is host OS dependent then disable host
	// by default, so that we can enable each host OS variant explicitly. This
	// avoids problems with implicitly enabled OS variants when the snapshot is
	// used, which might be different from this run (e.g. different build OS).
	if s.HostSupported() {
		var supportedHostTargets []string
		for _, memberRef := range memberRefs {
			if memberRef.memberType.IsHostOsDependent() && memberRef.variant.Target().Os.Class == android.Host {
				targetString := memberRef.variant.Target().Os.String() + "_" + memberRef.variant.Target().Arch.ArchType.String()
				if !android.InList(targetString, supportedHostTargets) {
					supportedHostTargets = append(supportedHostTargets, targetString)
				}
			}
		}
		if len(supportedHostTargets) > 0 {
			hostPropertySet := targetPropertySet.AddPropertySet("host")
			hostPropertySet.AddProperty("enabled", false)
		}
		// Enable the <os>_<arch> variant explicitly when we've disabled it by default on host.
		for _, hostTarget := range supportedHostTargets {
			propertySet := targetPropertySet.AddPropertySet(hostTarget)
			propertySet.AddProperty("enabled", true)
		}
	}

	// Prune any empty property sets.
	snapshotModule.transform(pruneEmptySetTransformer{})

@@ -984,7 +986,7 @@ func newOsTypeSpecificInfo(ctx android.SdkMemberContext, osType android.OsType,
			archTypeName := archType.Name

			archVariants := variantsByArchName[archTypeName]
			archInfo := newArchSpecificInfo(ctx, archType, osSpecificVariantPropertiesFactory, archVariants)
			archInfo := newArchSpecificInfo(ctx, archType, osType, osSpecificVariantPropertiesFactory, archVariants)

			osInfo.archInfos = append(osInfo.archInfos, archInfo)
		}
@@ -1067,11 +1069,6 @@ func (osInfo *osTypeSpecificInfo) addToPropertySet(ctx *memberContext, bpModule
		osPropertySet = targetPropertySet.AddPropertySet(osType.Name)
		archPropertySet = targetPropertySet

		// Enable the variant explicitly when we've disabled it by default on host.
		if ctx.memberType.IsHostOsDependent() && osType.Class == android.Host {
			osPropertySet.AddProperty("enabled", true)
		}

		// Arch specific properties need to be added to an os and arch specific
		// section prefixed with <os>_.
		archOsPrefix = osType.Name + "_"
@@ -1105,6 +1102,7 @@ type archTypeSpecificInfo struct {
	baseInfo

	archType android.ArchType
	osType   android.OsType

	linkInfos []*linkTypeSpecificInfo
}
@@ -1113,10 +1111,10 @@ var _ propertiesContainer = (*archTypeSpecificInfo)(nil)

// Create a new archTypeSpecificInfo for the specified arch type and its properties
// structures populated with information from the variants.
func newArchSpecificInfo(ctx android.SdkMemberContext, archType android.ArchType, variantPropertiesFactory variantPropertiesFactoryFunc, archVariants []android.Module) *archTypeSpecificInfo {
func newArchSpecificInfo(ctx android.SdkMemberContext, archType android.ArchType, osType android.OsType, variantPropertiesFactory variantPropertiesFactoryFunc, archVariants []android.Module) *archTypeSpecificInfo {

	// Create an arch specific info into which the variant properties can be copied.
	archInfo := &archTypeSpecificInfo{archType: archType}
	archInfo := &archTypeSpecificInfo{archType: archType, osType: osType}

	// Create the properties into which the arch type specific properties will be
	// added.
@@ -1180,6 +1178,10 @@ func (archInfo *archTypeSpecificInfo) optimizeProperties(ctx *memberContext, com
func (archInfo *archTypeSpecificInfo) addToPropertySet(ctx *memberContext, archPropertySet android.BpPropertySet, archOsPrefix string) {
	archTypeName := archInfo.archType.Name
	archTypePropertySet := archPropertySet.AddPropertySet(archOsPrefix + archTypeName)
	// Enable the <os>_<arch> variant explicitly when we've disabled it by default on host.
	if ctx.memberType.IsHostOsDependent() && archInfo.osType.Class == android.Host {
		archTypePropertySet.AddProperty("enabled", true)
	}
	addSdkMemberPropertiesToSet(ctx, archInfo.Properties, archTypePropertySet)

	for _, linkInfo := range archInfo.linkInfos {