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

Commit 680387bf authored by Rupert Shuttleworth's avatar Rupert Shuttleworth
Browse files

Add code to enable USE_BAZEL=1 m functionality in AOSP.

Test: Manually, but builds currently fail due to a recent change to bazel_handler.go.
Change-Id: I9a45a2c73d1755032b11f6b913c03f83a28f63c5
parent b646bc18
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -470,7 +470,13 @@ func make(ctx build.Context, config build.Config, _ []string, logsDir string) {
		ctx.Fatal("done")
	}

	toBuild := build.BuildAll
	var toBuild int
	if _, ok := config.Environment().Get("USE_BAZEL"); ok {
		toBuild = build.BuildAllWithBazel
	} else {
		toBuild = build.BuildAll
	}

	if config.Checkbuild() {
		toBuild |= build.RunBuildTests
	}
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ bootstrap_go_package {
        "blueprint-microfactory",
    ],
    srcs: [
        "bazel.go",
        "build.go",
        "cleanbuild.go",
        "config.go",

ui/build/bazel.go

0 → 100644
+54 −0
Original line number Diff line number Diff line
// Copyright 2020 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 build

import (
	"path/filepath"
	"strings"
)

func runBazel(ctx Context, config Config) {
	// "droid" is the default ninja target.
	outputGroups := "droid"
	if len(config.ninjaArgs) > 0 {
		// At this stage, the residue slice of args passed to ninja
		// are the ninja targets to build, which can correspond directly
		// to ninja_build's output_groups.
		outputGroups = strings.Join(config.ninjaArgs, ",")
	}

	bazelExecutable := filepath.Join("tools", "bazel")
	args := []string{
		"build",
		"--verbose_failures",
		"--show_progress_rate_limit=0.05",
		"--color=yes",
		"--curses=yes",
		"--show_timestamps",
		"--announce_rc",
		"--output_groups=" + outputGroups,
		"//:" + config.TargetProduct() + "-" + config.TargetBuildVariant(),
	}

	cmd := Command(ctx, config, "bazel", bazelExecutable, args...)

	cmd.Environment.Set("DIST_DIR", config.DistDir())
	cmd.Environment.Set("SHELL", "/bin/bash")

	ctx.Println(cmd.Cmd)
	cmd.Dir = filepath.Join(config.OutDir(), "..")
	ctx.Status.Status("Starting Bazel..")
	cmd.RunAndStreamOrFatal()
}
+6 −0
Original line number Diff line number Diff line
@@ -84,8 +84,10 @@ const (
	BuildSoong         = 1 << iota
	BuildKati          = 1 << iota
	BuildNinja         = 1 << iota
	BuildBazel         = 1 << iota
	RunBuildTests      = 1 << iota
	BuildAll           = BuildProductConfig | BuildSoong | BuildKati | BuildNinja
	BuildAllWithBazel  = BuildProductConfig | BuildSoong | BuildKati | BuildBazel
)

func checkProblematicFiles(ctx Context) {
@@ -257,6 +259,10 @@ func Build(ctx Context, config Config, what int) {
		// Run ninja
		runNinja(ctx, config)
	}

	if what&BuildBazel != 0 {
		runBazel(ctx, config)
	}
}

// distGzipFile writes a compressed copy of src to the distDir if dist is enabled.  Failures