summaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorOliver Reiche <oliver.reiche@huawei.com>2023-05-09 12:21:42 +0200
committerOliver Reiche <oliver.reiche@huawei.com>2023-05-09 12:21:42 +0200
commit91c86187e770b6a3b91d9acc6289006b4323f1ea (patch)
treee62d8ca93c6287af8914bd43a0a26a52da55096c /rules
parent00ccee9489db2e8e51e1b9750792353e0e029ce8 (diff)
parent40d6a2decf29a697a0aaa9ed211aaf5c4102f855 (diff)
downloadrules-cc-91c86187e770b6a3b91d9acc6289006b4323f1ea.tar.gz
Merge commit '40d6a2decf29a697a0aaa9ed211aaf5c4102f855' into rules/rules-cc
Diffstat (limited to 'rules')
-rw-r--r--rules/CC/prebuilt/EXPRESSIONS33
-rwxr-xr-xrules/CC/prebuilt/read_pkgconfig.py11
2 files changed, 31 insertions, 13 deletions
diff --git a/rules/CC/prebuilt/EXPRESSIONS b/rules/CC/prebuilt/EXPRESSIONS
index 6bfd874..6b7169a 100644
--- a/rules/CC/prebuilt/EXPRESSIONS
+++ b/rules/CC/prebuilt/EXPRESSIONS
@@ -288,6 +288,13 @@
}
}
]
+ , [ "pc-args"
+ , { "type": "if"
+ , "cond": {"type": "var", "name": "shared"}
+ , "then": []
+ , "else": ["--static"]
+ }
+ ]
, [ "cflags-filename"
, {"type": "join", "$1": [{"type": "var", "name": "name"}, ".cflags"]}
]
@@ -307,10 +314,15 @@
]
}
, "cmd":
- [ "./config_reader"
- , {"type": "var", "name": "cflags-filename"}
- , {"type": "var", "name": "main-pkg-config"}
- ]
+ { "type": "++"
+ , "$1":
+ [ [ "./config_reader"
+ , {"type": "var", "name": "cflags-filename"}
+ , {"type": "var", "name": "main-pkg-config"}
+ ]
+ , {"type": "var", "name": "pc-args"}
+ ]
+ }
, "env": {"type": "var", "name": "ENV"}
, "outs": [{"type": "var", "name": "cflags-filename"}]
}
@@ -368,10 +380,15 @@
]
}
, "cmd":
- [ "./config_reader"
- , {"type": "var", "name": "ldflags-filename"}
- , {"type": "var", "name": "main-pkg-config"}
- ]
+ { "type": "++"
+ , "$1":
+ [ [ "./config_reader"
+ , {"type": "var", "name": "ldflags-filename"}
+ , {"type": "var", "name": "main-pkg-config"}
+ ]
+ , {"type": "var", "name": "pc-args"}
+ ]
+ }
, "env": {"type": "var", "name": "ENV"}
, "outs": [{"type": "var", "name": "ldflags-filename"}]
}
diff --git a/rules/CC/prebuilt/read_pkgconfig.py b/rules/CC/prebuilt/read_pkgconfig.py
index cb4154f..f6b5da1 100755
--- a/rules/CC/prebuilt/read_pkgconfig.py
+++ b/rules/CC/prebuilt/read_pkgconfig.py
@@ -27,7 +27,7 @@ def run_pkgconfig(args: list[str], env: dict[str, str]) -> str:
return result.stdout.decode("utf-8").strip()
-def read_ldflags(pkg: str, env: dict[str, str]) -> str:
+def read_ldflags(pkg: str, args: list[str], env: dict[str, str]) -> str:
def libname(filename: str) -> str:
return filename.split(".")[0]
@@ -36,7 +36,7 @@ def read_ldflags(pkg: str, env: dict[str, str]) -> str:
for it in os.walk(".") for f in it[2] if f.startswith("lib")
}
- link_flags = run_pkgconfig(["--libs-only-l", pkg], env).split(" ")
+ link_flags = run_pkgconfig(args + ["--libs-only-l", pkg], env).split(" ")
# deduplicate, keep right-most
seen: set[str] = set()
@@ -55,17 +55,18 @@ def read_ldflags(pkg: str, env: dict[str, str]) -> str:
def read_pkgconfig():
if len(sys.argv) < 3:
- print(f"usage: read_pkgconfig OUT_NAME PC_FILE")
+ print(f"usage: read_pkgconfig OUT_NAME PC_FILE [PC_ARGS...]")
exit(1)
name = sys.argv[1]
pkg = Path(sys.argv[2]).stem
+ args = sys.argv[3:]
env = dict(os.environ, PKG_CONFIG_PATH="./lib/pkgconfig")
if name.endswith(".cflags"):
- data = run_pkgconfig(["--cflags-only-other", pkg], env)
+ data = run_pkgconfig(args + ["--cflags-only-other", pkg], env)
else:
- data = read_ldflags(pkg, env)
+ data = read_ldflags(pkg, args, env)
with open(f"{name}", 'w') as f:
f.write(data)