From c34dc64028bfc3418d34b8e7c086709b64ba8dbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Fri, 13 Sep 2024 12:29:15 +0300 Subject: [PATCH] wrappers: Don't explicitly pass -target in clang-scan-deps-wrapper.sh clang-scan-deps can pick it up automatically from the first argument now. For the windows wrapper, keep passing -target, to allow running with a potentially foreign clang-scan-deps.exe. --- wrappers/clang-scan-deps-wrapper.c | 9 ++++++--- wrappers/clang-scan-deps-wrapper.sh | 8 +++----- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/wrappers/clang-scan-deps-wrapper.c b/wrappers/clang-scan-deps-wrapper.c index 11d467c..ae72824 100644 --- a/wrappers/clang-scan-deps-wrapper.c +++ b/wrappers/clang-scan-deps-wrapper.c @@ -63,7 +63,7 @@ int _tmain(int argc, TCHAR *argv[]) { if (sep) *sep = '\0'; TCHAR *dash = _tcsrchr(cmd_exe, '-'); - const TCHAR *target = NULL; + int has_target = 0; if (dash) { *dash = '\0'; const TCHAR *cmd_exe_suffix = dash + 1; @@ -76,14 +76,15 @@ int _tmain(int argc, TCHAR *argv[]) { !_tcscmp(cmd_exe_suffix, _T("cc")) || !_tcscmp(cmd_exe_suffix, _T("c99")) || !_tcscmp(cmd_exe_suffix, _T("c11"))) { - target = cmd_exe; + has_target = 1; } } + const TCHAR *target = NULL; #ifdef _WIN32 // On Windows, we want to set our default target even if no target // was found in cmd_exe, as we want to support running with a foreign // clang-scan-deps-real.exe binary, that could have any default. - if (!target) + if (!has_target) target = _T(DEFAULT_TARGET); #endif @@ -92,6 +93,8 @@ int _tmain(int argc, TCHAR *argv[]) { // -target after cmd_exe. exec_argv[arg++] = _T("-target"); exec_argv[arg++] = target; + } + if (target || has_target) { exec_argv[arg++] = _T("-stdlib=libc++"); } } diff --git a/wrappers/clang-scan-deps-wrapper.sh b/wrappers/clang-scan-deps-wrapper.sh index 5858a23..d89107b 100755 --- a/wrappers/clang-scan-deps-wrapper.sh +++ b/wrappers/clang-scan-deps-wrapper.sh @@ -45,8 +45,6 @@ while [ $# -gt 0 ]; do done if [ -n "$CMD_EXE" ]; then - # If CMD_EXE is a - style command, pick up the - # target triple from there. CMD_BASENAME="$(basename "$CMD_EXE")" CMD_BASENAME="${CMD_BASENAME%.*}" CMD_TARGET="${CMD_BASENAME%-*}" @@ -54,14 +52,14 @@ if [ -n "$CMD_EXE" ]; then if [ "$CMD_TARGET" != "$CMD_BASENAME" ]; then case $CMD_EXE_SUFFIX in clang|clang++|gcc|g++|c++|as|cc|c99|c11) - TARGET="$CMD_TARGET" + IS_CLANG=1 ;; esac fi fi -if [ -n "$TARGET" ]; then - "$EXE" "${FLAGS[@]}" -target $TARGET -stdlib=libc++ "$@" +if [ -n "$IS_CLANG" ]; then + "$EXE" "${FLAGS[@]}" -stdlib=libc++ "$@" else "$EXE" "${FLAGS[@]}" "$@" fi