aboutsummaryrefslogtreecommitdiffstats
path: root/cc/util.go
diff options
context:
space:
mode:
Diffstat (limited to 'cc/util.go')
-rw-r--r--cc/util.go22
1 files changed, 18 insertions, 4 deletions
diff --git a/cc/util.go b/cc/util.go
index 1d27f735..70433b1d 100644
--- a/cc/util.go
+++ b/cc/util.go
@@ -40,14 +40,18 @@ func libNamesToFlags(names []string) string {
return common.JoinWithPrefix(names, "-l")
}
-func inList(s string, list []string) bool {
- for _, l := range list {
+func indexList(s string, list []string) int {
+ for i, l := range list {
if l == s {
- return true
+ return i
}
}
- return false
+ return -1
+}
+
+func inList(s string, list []string) bool {
+ return indexList(s, list) != -1
}
func filterList(list []string, filter []string) (remainder []string, filtered []string) {
@@ -62,6 +66,15 @@ func filterList(list []string, filter []string) (remainder []string, filtered []
return
}
+func removeFromList(s string, list []string) (bool, []string) {
+ i := indexList(s, list)
+ if i != -1 {
+ return true, append(list[:i], list[i+1:]...)
+ } else {
+ return false, list
+ }
+}
+
var libNameRegexp = regexp.MustCompile(`^lib(.*)$`)
func moduleToLibName(module string) (string, error) {
@@ -81,6 +94,7 @@ func flagsToBuilderFlags(in Flags) builderFlags {
cppFlags: strings.Join(in.CppFlags, " "),
yaccFlags: strings.Join(in.YaccFlags, " "),
ldFlags: strings.Join(in.LdFlags, " "),
+ libFlags: strings.Join(in.libFlags, " "),
nocrt: in.Nocrt,
toolchain: in.Toolchain,
clang: in.Clang,