aboutsummaryrefslogtreecommitdiff
path: root/maintainers
diff options
context:
space:
mode:
authorJade Lovelace <lix@jade.fyi>2024-03-18 23:03:48 -0700
committerjade <lix@jade.fyi>2024-03-27 03:52:57 +0000
commit412a9c9f6719a6c62e8f5b6265714428d2ad4013 (patch)
tree411ebdeaa53cbf0129f7cfcdf2ebecdd6141178f /maintainers
parent50c6feeb7747f8fd36aad801b7225552b0481dab (diff)
Enable clang build timing analysis
I didn't enable this by default for clang due to making the build time 10% worse or so. Unfortunate, but tbh devs for whom 10% of build time is not *that* bad should probably simply enable this. Change-Id: I8d1e5b6f3f76c649a4e2f115f534f7f97cee46e6
Diffstat (limited to 'maintainers')
-rwxr-xr-xmaintainers/buildtime_report.sh20
1 files changed, 20 insertions, 0 deletions
diff --git a/maintainers/buildtime_report.sh b/maintainers/buildtime_report.sh
new file mode 100755
index 000000000..54ce75eb5
--- /dev/null
+++ b/maintainers/buildtime_report.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+# Generates a report of build time based on a meson build using -ftime-trace in
+# Clang.
+if [ $# -lt 1 ]; then
+ echo "usage: $0 BUILD-DIR [filename]" >&2
+ exit 1
+fi
+
+scriptdir=$(cd "$(dirname -- "$0")" || exit ; pwd -P)
+filename=${2:-$scriptdir/../buildtime.bin}
+
+if [ "$(meson introspect "$1" --buildoptions | jq -r '.[] | select(.name == "profile-build") | .value')" != enabled ]; then
+ echo 'This build was not done with profile-build enabled, so cannot generate a report' >&2
+ # shellcheck disable=SC2016
+ echo 'Run `meson configure build -Dprofile-build=enabled` then rebuild, first' >&2
+ exit 1
+fi
+
+ClangBuildAnalyzer --all "$1" "$filename" && ClangBuildAnalyzer --analyze "$filename"