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

Commit fd9eb4b8 authored by Martin Stjernholm's avatar Martin Stjernholm
Browse files

Build against SDKs for native libs only for unbundled apps.

Unbundled APEX modules need to access the platform variant (i.e.
sdk:"") since it's there that the versioned stubs are exposed.

Test: m SOONG_ALLOW_MISSING_DEPENDENCIES=true \
        TARGET_BUILD_UNBUNDLED=true toybox
  on master-art with prebuilt Runtime (Bionic) APEX SDK. The prebuilt
  SDK doesn't have libc.ndk.xxx etc, which e.g. libcrypto would depend
  on without this CL, since it specifies sdk_version.
Bug: 157549171
Change-Id: I3095e42beb2b48421bfb81be942cc2ac30405fd0
parent e4038335
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -712,10 +712,17 @@ func (c *config) AllowMissingDependencies() bool {
	return Bool(c.productVariables.Allow_missing_dependencies)
}

// Returns true if building without full platform sources.
func (c *config) UnbundledBuild() bool {
	return Bool(c.productVariables.Unbundled_build)
}

// Returns true if building apps that aren't bundled with the platform.
// UnbundledBuild() is always true when this is true.
func (c *config) UnbundledBuildApps() bool {
	return Bool(c.productVariables.Unbundled_build_apps)
}

func (c *config) UnbundledBuildUsePrebuiltSdks() bool {
	return Bool(c.productVariables.Unbundled_build) && !Bool(c.productVariables.Unbundled_build_sdks_from_source)
}
+1 −0
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@ type productVariables struct {

	Allow_missing_dependencies       *bool `json:",omitempty"`
	Unbundled_build                  *bool `json:",omitempty"`
	Unbundled_build_apps             *bool `json:",omitempty"`
	Unbundled_build_sdks_from_source *bool `json:",omitempty"`
	Malloc_not_svelte                *bool `json:",omitempty"`
	Malloc_zero_contents             *bool `json:",omitempty"`
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ func sdkMutator(ctx android.BottomUpMutatorContext) {
			modules[0].(*Module).Properties.Sdk_version = nil
			modules[1].(*Module).Properties.IsSdkVariant = true

			if ctx.Config().UnbundledBuild() {
			if ctx.Config().UnbundledBuildApps() {
				modules[0].(*Module).Properties.HideFromMake = true
				modules[0].(*Module).Properties.PreventInstall = true
			} else {