[PATCH v2 10/10] detect-compiler: detect clang even if it found CUDA
- From
Johannes Schindelin via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Mar 25, 2025, 23:32 UTC
- Message-ID
- <2f6f31240fe6ce5f8efab662af477540a0f966ca.1742945534.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1889.v2.git.1742945534.gitgitgadget@gmail.com>
From: Johannes Schindelin <johannes.schindelin@gmx.de>
In my setup, clang finds `/usr/local/cuda` and hence the output of `clang -v` ends with this line:
Found CUDA installation: /usr/local/cuda, version
This confuses the `detect-compiler` script because it matches _all_ lines that contain the needle "version" surrounded by spaces. As a consequence, the `get_family` function returns two lines: "Ubuntu clang" and above-mentioned line, which the `case` statement does not handle well and hence reports "unknown compiler family" instead of the expected set of "clang14", "clang13", ..., "clang1" output.
Let's unconfuse the script by letting it parse the first matching line and ignore the rest.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> --- detect-compiler | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/detect-compiler b/detect-compiler index a87650b71bb..01eca3a781d 100755 --- a/detect-compiler +++ b/detect-compiler @@ -9,7 +9,7 @@ CC="$*" # # FreeBSD clang version 3.4.1 (tags/RELEASE...) get_version_line() { - LANG=C LC_ALL=C $CC -v 2>&1 | grep ' version ' + LANG=C LC_ALL=C $CC -v 2>&1 | sed -n '/ version /{p;q}' } get_family() {
-- gitgitgadget