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

Commit 7f9b6fbe authored by Colin Cross's avatar Colin Cross
Browse files

Export lists of support libraries modules to Make

Make will use the list to sort support libraries into
LOCAL_STATIC_ANDROID_LIBRARIES and LOCAL_STATIC_JAVA_LIBRARIES
as appropriate.

Bug: 78300023
Test: m checkbuild
Change-Id: I58582b124f2b6a9b124683ddf8f5d77314f2e941
Merged-In: I58582b124f2b6a9b124683ddf8f5d77314f2e941
(cherry picked from commit ff8ab074)
parent dd7063ba
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -232,6 +232,7 @@ bootstrap_go_package {
        "java/java.go",
        "java/java.go",
        "java/java_resources.go",
        "java/java_resources.go",
        "java/proto.go",
        "java/proto.go",
        "java/support_libraries.go",
        "java/system_modules.go",
        "java/system_modules.go",
    ],
    ],
    testSrcs: [
    testSrcs: [
+66 −0
Original line number Original line Diff line number Diff line
// Copyright 2018 Google Inc. All rights reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package java

import (
	"sort"
	"strings"

	"android/soong/android"
)

func init() {
	android.RegisterMakeVarsProvider(pctx, supportLibrariesMakeVarsProvider)
}

func supportLibrariesMakeVarsProvider(ctx android.MakeVarsContext) {
	var supportAars, supportJars []string

	sctx := ctx.SingletonContext()
	sctx.VisitAllModules(func(module android.Module) {
		dir := sctx.ModuleDir(module)
		switch {
		case strings.HasPrefix(dir, "prebuilts/sdk/current/extras"),
			dir == "prebuilts/sdk/current/androidx",
			dir == "prebuilts/sdk/current/car",
			dir == "prebuilts/sdk/current/optional",
			dir == "prebuilts/sdk/current/support":
			// Support library
		default:
			// Not a support library
			return
		}

		name := sctx.ModuleName(module)
		if strings.HasSuffix(name, "-nodeps") {
			return
		}

		switch module.(type) {
		case *AndroidLibrary, *AARImport:
			supportAars = append(supportAars, name)
		case *Library, *Import:
			supportJars = append(supportJars, name)
		default:
			sctx.ModuleErrorf(module, "unknown module type %t", module)
		}
	})

	sort.Strings(supportAars)
	sort.Strings(supportJars)

	ctx.Strict("SUPPORT_LIBRARIES_AARS", strings.Join(supportAars, " "))
	ctx.Strict("SUPPORT_LIBRARIES_JARS", strings.Join(supportJars, " "))
}