Merge "Only add darwin specific rules/variables when building on mac." into main

This commit is contained in:
Yu Liu
2024-07-30 22:18:01 +00:00
committed by Gerrit Code Review
3 changed files with 54 additions and 36 deletions

View File

@@ -156,11 +156,17 @@ var (
"args")
// Rule to invoke `strip` (to discard symbols and data from object files) on darwin architecture.
darwinStrip = pctx.AndroidStaticRule("darwinStrip",
darwinStrip = func() blueprint.Rule {
if runtime.GOOS == "darwin" {
return pctx.AndroidStaticRule("darwinStrip",
blueprint.RuleParams{
Command: "${config.MacStripPath} -u -r -o $out $in",
CommandDeps: []string{"${config.MacStripPath}"},
})
} else {
return nil
}
}()
// b/132822437: objcopy uses a file descriptor per .o file when called on .a files, which runs the system out of
// file descriptors on darwin. Limit concurrent calls to 5 on darwin.
@@ -174,11 +180,17 @@ var (
}
}()
darwinLipo = pctx.AndroidStaticRule("darwinLipo",
darwinLipo = func() blueprint.Rule {
if runtime.GOOS == "darwin" {
return pctx.AndroidStaticRule("darwinLipo",
blueprint.RuleParams{
Command: "${config.MacLipoPath} -create -output $out $in",
CommandDeps: []string{"${config.MacLipoPath}"},
})
} else {
return nil
}
}()
_ = pctx.SourcePathVariable("archiveRepackPath", "build/soong/scripts/archive_repack.sh")

View File

@@ -18,6 +18,7 @@ import (
"fmt"
"os/exec"
"path/filepath"
"runtime"
"strings"
"sync"
@@ -73,6 +74,7 @@ var (
)
func init() {
if runtime.GOOS == "darwin" {
pctx.VariableFunc("macSdkRoot", func(ctx android.PackageVarContext) string {
return getMacTools(ctx).sdkRoot
})
@@ -98,6 +100,7 @@ func init() {
pctx.StaticVariable("DarwinLldflags", strings.Join(darwinLdflags, " "))
pctx.StaticVariable("DarwinYasmFlags", "-f macho -m amd64")
}
}
func MacStripPath(ctx android.PathContext) string {

View File

@@ -15,6 +15,7 @@
package config
import (
"runtime"
"strings"
"android/soong/android"
@@ -35,6 +36,7 @@ func init() {
registerToolchainFactory(android.Darwin, android.Arm64, darwinArm64ToolchainFactory)
registerToolchainFactory(android.Darwin, android.X86_64, darwinX8664ToolchainFactory)
if runtime.GOOS == "darwin" {
pctx.StaticVariable("DarwinToolchainRustFlags", strings.Join(DarwinRustFlags, " "))
pctx.StaticVariable("DarwinToolchainLinkFlags", strings.Join(DarwinRustLinkFlags, " "))
@@ -42,6 +44,7 @@ func init() {
pctx.StaticVariable("DarwinToolchainArm64LinkFlags", strings.Join(darwinArm64Linkflags, " "))
pctx.StaticVariable("DarwinToolchainX8664RustFlags", strings.Join(darwinX8664Rustflags, " "))
pctx.StaticVariable("DarwinToolchainX8664LinkFlags", strings.Join(darwinX8664Linkflags, " "))
}
}