Switch PackageContext functions to take a ctx
So that the Path and similar functions can be used directly, without
manually adding something like configErrorWrapper (it just uses it all
the time now).
Test: out/soong/build.ninja is identical
Change-Id: I8cb524b09a84d0b8357d7c3501c71270af411e17
diff --git a/cc/config/x86_darwin_host.go b/cc/config/x86_darwin_host.go
index dbaa6fa..cae9757 100644
--- a/cc/config/x86_darwin_host.go
+++ b/cc/config/x86_darwin_host.go
@@ -15,7 +15,6 @@
package config
import (
- "fmt"
"os/exec"
"path/filepath"
"strings"
@@ -107,26 +106,28 @@
)
func init() {
- pctx.VariableFunc("macSdkPath", func(config android.Config) (string, error) {
- xcodeselect := config.HostSystemTool("xcode-select")
+ pctx.VariableFunc("macSdkPath", func(ctx android.PackageVarContext) string {
+ xcodeselect := ctx.Config().HostSystemTool("xcode-select")
bytes, err := exec.Command(xcodeselect, "--print-path").Output()
- return strings.TrimSpace(string(bytes)), err
+ if err != nil {
+ ctx.Errorf("xcode-select failed with: %q", err.Error())
+ }
+ return strings.TrimSpace(string(bytes))
})
- pctx.VariableFunc("macSdkRoot", func(config android.Config) (string, error) {
- return xcrunSdk(config, "--show-sdk-path")
+ pctx.VariableFunc("macSdkRoot", func(ctx android.PackageVarContext) string {
+ return xcrunSdk(ctx, "--show-sdk-path")
})
pctx.StaticVariable("macMinVersion", "10.8")
- pctx.VariableFunc("MacArPath", func(config android.Config) (string, error) {
- return xcrun(config, "--find", "ar")
+ pctx.VariableFunc("MacArPath", func(ctx android.PackageVarContext) string {
+ return xcrun(ctx, "--find", "ar")
})
- pctx.VariableFunc("MacStripPath", func(config android.Config) (string, error) {
- return xcrun(config, "--find", "strip")
+ pctx.VariableFunc("MacStripPath", func(ctx android.PackageVarContext) string {
+ return xcrun(ctx, "--find", "strip")
})
- pctx.VariableFunc("MacToolPath", func(config android.Config) (string, error) {
- path, err := xcrun(config, "--find", "ld")
- return filepath.Dir(path), err
+ pctx.VariableFunc("MacToolPath", func(ctx android.PackageVarContext) string {
+ return filepath.Dir(xcrun(ctx, "--find", "ld"))
})
pctx.StaticVariable("DarwinGccVersion", darwinGccVersion)
@@ -156,33 +157,38 @@
pctx.StaticVariable("DarwinX8664YasmFlags", "-f macho -m amd64")
}
-func xcrun(config android.Config, args ...string) (string, error) {
- xcrun := config.HostSystemTool("xcrun")
+func xcrun(ctx android.PackageVarContext, args ...string) string {
+ xcrun := ctx.Config().HostSystemTool("xcrun")
bytes, err := exec.Command(xcrun, args...).Output()
- return strings.TrimSpace(string(bytes)), err
+ if err != nil {
+ ctx.Errorf("xcrun failed with: %q", err.Error())
+ }
+ return strings.TrimSpace(string(bytes))
}
-func xcrunSdk(config android.Config, arg string) (string, error) {
- xcrun := config.HostSystemTool("xcrun")
- if selected := config.Getenv("MAC_SDK_VERSION"); selected != "" {
+func xcrunSdk(ctx android.PackageVarContext, arg string) string {
+ xcrun := ctx.Config().HostSystemTool("xcrun")
+ if selected := ctx.Config().Getenv("MAC_SDK_VERSION"); selected != "" {
if !inList(selected, darwinSupportedSdkVersions) {
- return "", fmt.Errorf("MAC_SDK_VERSION %s isn't supported: %q", selected, darwinSupportedSdkVersions)
+ ctx.Errorf("MAC_SDK_VERSION %s isn't supported: %q", selected, darwinSupportedSdkVersions)
+ return ""
}
bytes, err := exec.Command(xcrun, "--sdk", "macosx"+selected, arg).Output()
- if err == nil {
- return strings.TrimSpace(string(bytes)), err
+ if err != nil {
+ ctx.Errorf("MAC_SDK_VERSION %s is not installed", selected)
}
- return "", fmt.Errorf("MAC_SDK_VERSION %s is not installed", selected)
+ return strings.TrimSpace(string(bytes))
}
for _, sdk := range darwinSupportedSdkVersions {
bytes, err := exec.Command(xcrun, "--sdk", "macosx"+sdk, arg).Output()
if err == nil {
- return strings.TrimSpace(string(bytes)), err
+ return strings.TrimSpace(string(bytes))
}
}
- return "", fmt.Errorf("Could not find a supported mac sdk: %q", darwinSupportedSdkVersions)
+ ctx.Errorf("Could not find a supported mac sdk: %q", darwinSupportedSdkVersions)
+ return ""
}
type toolchainDarwin struct {