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") "args")
// Rule to invoke `strip` (to discard symbols and data from object files) on darwin architecture. // Rule to invoke `strip` (to discard symbols and data from object files) on darwin architecture.
darwinStrip = pctx.AndroidStaticRule("darwinStrip", darwinStrip = func() blueprint.Rule {
blueprint.RuleParams{ if runtime.GOOS == "darwin" {
Command: "${config.MacStripPath} -u -r -o $out $in", return pctx.AndroidStaticRule("darwinStrip",
CommandDeps: []string{"${config.MacStripPath}"}, 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 // 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. // file descriptors on darwin. Limit concurrent calls to 5 on darwin.
@@ -174,11 +180,17 @@ var (
} }
}() }()
darwinLipo = pctx.AndroidStaticRule("darwinLipo", darwinLipo = func() blueprint.Rule {
blueprint.RuleParams{ if runtime.GOOS == "darwin" {
Command: "${config.MacLipoPath} -create -output $out $in", return pctx.AndroidStaticRule("darwinLipo",
CommandDeps: []string{"${config.MacLipoPath}"}, 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") _ = pctx.SourcePathVariable("archiveRepackPath", "build/soong/scripts/archive_repack.sh")

View File

@@ -18,6 +18,7 @@ import (
"fmt" "fmt"
"os/exec" "os/exec"
"path/filepath" "path/filepath"
"runtime"
"strings" "strings"
"sync" "sync"
@@ -73,31 +74,33 @@ var (
) )
func init() { func init() {
pctx.VariableFunc("macSdkRoot", func(ctx android.PackageVarContext) string { if runtime.GOOS == "darwin" {
return getMacTools(ctx).sdkRoot pctx.VariableFunc("macSdkRoot", func(ctx android.PackageVarContext) string {
}) return getMacTools(ctx).sdkRoot
pctx.StaticVariable("macMinVersion", "10.14") })
pctx.VariableFunc("MacArPath", func(ctx android.PackageVarContext) string { pctx.StaticVariable("macMinVersion", "10.14")
return getMacTools(ctx).arPath pctx.VariableFunc("MacArPath", func(ctx android.PackageVarContext) string {
}) return getMacTools(ctx).arPath
})
pctx.VariableFunc("MacLipoPath", func(ctx android.PackageVarContext) string { pctx.VariableFunc("MacLipoPath", func(ctx android.PackageVarContext) string {
return getMacTools(ctx).lipoPath return getMacTools(ctx).lipoPath
}) })
pctx.VariableFunc("MacStripPath", func(ctx android.PackageVarContext) string { pctx.VariableFunc("MacStripPath", func(ctx android.PackageVarContext) string {
return getMacTools(ctx).stripPath return getMacTools(ctx).stripPath
}) })
pctx.VariableFunc("MacToolPath", func(ctx android.PackageVarContext) string { pctx.VariableFunc("MacToolPath", func(ctx android.PackageVarContext) string {
return getMacTools(ctx).toolPath return getMacTools(ctx).toolPath
}) })
pctx.StaticVariable("DarwinCflags", strings.Join(darwinCflags, " ")) pctx.StaticVariable("DarwinCflags", strings.Join(darwinCflags, " "))
pctx.StaticVariable("DarwinLdflags", strings.Join(darwinLdflags, " ")) pctx.StaticVariable("DarwinLdflags", strings.Join(darwinLdflags, " "))
pctx.StaticVariable("DarwinLldflags", strings.Join(darwinLdflags, " ")) pctx.StaticVariable("DarwinLldflags", strings.Join(darwinLdflags, " "))
pctx.StaticVariable("DarwinYasmFlags", "-f macho -m amd64") pctx.StaticVariable("DarwinYasmFlags", "-f macho -m amd64")
}
} }
func MacStripPath(ctx android.PathContext) string { func MacStripPath(ctx android.PathContext) string {

View File

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