Merge "Reduce modules exposed to Make in Mac builds"

This commit is contained in:
Dan Willemsen
2021-10-19 00:32:54 +00:00
committed by Gerrit Code Review
6 changed files with 72 additions and 9 deletions

View File

@@ -29,6 +29,7 @@ import (
"os"
"path/filepath"
"reflect"
"runtime"
"sort"
"strings"
@@ -902,6 +903,13 @@ func shouldSkipAndroidMkProcessing(module *ModuleBase) bool {
return true
}
// On Mac, only expose host darwin modules to Make, as that's all we claim to support.
// In reality, some of them depend on device-built (Java) modules, so we can't disable all
// device modules in Soong, but we can hide them from Make (and thus the build user interface)
if runtime.GOOS == "darwin" && module.Os() != Darwin {
return true
}
return !module.Enabled() ||
module.commonProperties.HideFromMake ||
// Make does not understand LinuxBionic

View File

@@ -18,6 +18,7 @@ import (
"fmt"
"io"
"reflect"
"runtime"
"strings"
"testing"
@@ -155,6 +156,11 @@ func buildContextAndCustomModuleFoo(t *testing.T, bp string) (*TestContext, *cus
}
func TestAndroidMkSingleton_PassesUpdatedAndroidMkDataToCustomCallback(t *testing.T) {
if runtime.GOOS == "darwin" {
// Device modules are not exported on Mac, so this test doesn't work.
t.SkipNow()
}
bp := `
custom {
name: "foo",

View File

@@ -31,4 +31,14 @@ blueprint_go_binary {
testSrcs: [
"main_test.go",
],
linux: {
srcs: [
"main_linux.go",
],
},
darwin: {
srcs: [
"main_darwin.go",
],
},
}

View File

@@ -166,15 +166,6 @@ type mpContext struct {
MainLogsDir string
}
func detectTotalRAM() uint64 {
var info syscall.Sysinfo_t
err := syscall.Sysinfo(&info)
if err != nil {
panic(err)
}
return info.Totalram * uint64(info.Unit)
}
func findNamedProducts(soongUi string, log logger.Logger) []string {
cmd := exec.Command(soongUi, "--dumpvars-mode", "--vars=all_named_products")
output, err := cmd.Output()

View File

@@ -0,0 +1,20 @@
// Copyright 2017 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 main
func detectTotalRAM() uint64 {
// unimplemented stub on darwin
return 0
}

View File

@@ -0,0 +1,28 @@
// Copyright 2017 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 main
import (
"syscall"
)
func detectTotalRAM() uint64 {
var info syscall.Sysinfo_t
err := syscall.Sysinfo(&info)
if err != nil {
panic(err)
}
return info.Totalram * uint64(info.Unit)
}