mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-04 21:00:17 -06:00
Merge topic 'clang-cl-showIncludes'
843fc607deNinja: Restore detection of clang-cl showIncludes prefix3346570ae9Tests: Comment RunCMake.Ninja ShowIncludes sample input languages Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !8344
This commit is contained in:
@@ -1147,7 +1147,7 @@ function(CMAKE_DETERMINE_MSVC_SHOWINCLUDES_PREFIX lang userflags)
|
||||
ENCODING AUTO # cl prints in console output code page
|
||||
)
|
||||
string(REPLACE "\n" "\n " msg " ${out}")
|
||||
if(res EQUAL 0 AND "${out}" MATCHES "(^|\n)([^:\n][^:\n]+:[^:\n]*[^: \n][^: \n]:?[ \t]+)[A-Za-z]:\\\\")
|
||||
if(res EQUAL 0 AND "${out}" MATCHES "(^|\n)([^:\n][^:\n]+:[^:\n]*[^: \n][^: \n]:?[ \t]+)([A-Za-z]:\\\\|\\./)")
|
||||
set(CMAKE_${lang}_CL_SHOWINCLUDES_PREFIX "${CMAKE_MATCH_2}" PARENT_SCOPE)
|
||||
string(APPEND msg "\nFound prefix \"${CMAKE_MATCH_2}\"")
|
||||
else()
|
||||
|
||||
@@ -46,6 +46,7 @@ if(WIN32)
|
||||
if(RunCMake_MAKE_PROGRAM)
|
||||
set(maybe_MAKE_PROGRAM "-DRunCMake_MAKE_PROGRAM=${RunCMake_MAKE_PROGRAM}")
|
||||
endif()
|
||||
run_cmake_script(ShowIncludes-437-ClangCl -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
|
||||
run_cmake_script(ShowIncludes-437-English -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
|
||||
run_cmake_script(ShowIncludes-437-French -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
|
||||
run_cmake_script(ShowIncludes-437-German -DshowIncludes=${showIncludes} ${maybe_MAKE_PROGRAM})
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
# 'clang-cl /showIncludes' prefix.
|
||||
set(expect "Note: including file: ")
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/ShowIncludes-check.cmake)
|
||||
1
Tests/RunCMake/Ninja/ShowIncludes-437-ClangCl-stdout.txt
Normal file
1
Tests/RunCMake/Ninja/ShowIncludes-437-ClangCl-stdout.txt
Normal file
@@ -0,0 +1 @@
|
||||
-- showIncludes='Note: including file: '
|
||||
3
Tests/RunCMake/Ninja/ShowIncludes-437-ClangCl.cmake
Normal file
3
Tests/RunCMake/Ninja/ShowIncludes-437-ClangCl.cmake
Normal file
@@ -0,0 +1,3 @@
|
||||
set(CODEPAGE 437)
|
||||
set(VSLANG "clang-cl") # Special case for test, not a real VS value.
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/ShowIncludes.cmake)
|
||||
@@ -28,6 +28,15 @@ int main()
|
||||
printf("OEM code page: %u\n", GetOEMCP());
|
||||
printf("VSLANG: %s\n", vslang);
|
||||
|
||||
// clang-cl (special case for test, not a real VS value).
|
||||
if (strcmp(vslang, "clang-cl") == 0) {
|
||||
if (cp == 437 || cp == 65001) {
|
||||
printf("Note: including file: ./foo.h\n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// German.
|
||||
if (strcmp(vslang, "1031") == 0) {
|
||||
if (cp == 437 || cp == 65001) {
|
||||
printf("Hinweis: Einlesen der Datei: C:\\foo.h\n");
|
||||
@@ -35,6 +44,7 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
// English.
|
||||
if (strcmp(vslang, "1033") == 0) {
|
||||
if (cp == 437 || cp == 65001) {
|
||||
printf("Note: including file: C:\\foo.h\n");
|
||||
@@ -42,6 +52,7 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
// French.
|
||||
if (strcmp(vslang, "1036") == 0) {
|
||||
if (cp == 437 || cp == 863) {
|
||||
printf("Remarque\xff: inclusion du fichier\xff: C:\\foo.h\n");
|
||||
@@ -53,6 +64,7 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
// Italian.
|
||||
if (strcmp(vslang, "1040") == 0) {
|
||||
if (cp == 437 || cp == 65001) {
|
||||
printf("Nota: file incluso C:\\foo.h\n");
|
||||
@@ -60,6 +72,7 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
// Japanese.
|
||||
if (strcmp(vslang, "1041") == 0) {
|
||||
if (cp == 932) {
|
||||
printf("\x83\x81\x83\x82: "
|
||||
@@ -75,6 +88,7 @@ int main()
|
||||
}
|
||||
}
|
||||
|
||||
// Chinese.
|
||||
if (strcmp(vslang, "2052") == 0) {
|
||||
if (cp == 54936 || cp == 936) {
|
||||
printf("\xd7\xa2\xd2\xe2: "
|
||||
|
||||
Reference in New Issue
Block a user