aboutsummaryrefslogtreecommitdiff
path: root/cmake/BuildTools.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/BuildTools.cmake')
-rw-r--r--cmake/BuildTools.cmake15
1 files changed, 10 insertions, 5 deletions
diff --git a/cmake/BuildTools.cmake b/cmake/BuildTools.cmake
index d6928bb..e2d3e2f 100644
--- a/cmake/BuildTools.cmake
+++ b/cmake/BuildTools.cmake
@@ -2,15 +2,20 @@
if(CMAKE_GENERATOR MATCHES "Makefiles|Ninja")
foreach(language C CXX)
if(language STREQUAL "C")
- set(names clang cc gcc)
+ set(names clang-23 clang)
+ set(compiler_environment CC)
else()
- set(names clang++ c++ g++)
+ set(names clang++-23 clang++)
+ set(compiler_environment CXX)
endif()
if(CMAKE_${language}_COMPILER)
- get_filename_component(requested "${CMAKE_${language}_COMPILER}" NAME)
- list(INSERT names 0 "${requested}")
+ if(NOT IS_ABSOLUTE "${CMAKE_${language}_COMPILER}")
+ cpsc_find_dependency(PROGRAM CMAKE_${language}_COMPILER
+ NAMES "${CMAKE_${language}_COMPILER}" REQUIRED)
+ endif()
+ elseif("$ENV{${compiler_environment}}" STREQUAL "")
+ cpsc_find_dependency(PROGRAM CMAKE_${language}_COMPILER NAMES ${names} REQUIRED)
endif()
- cpsc_find_dependency(PROGRAM CMAKE_${language}_COMPILER NAMES ${names} REQUIRED)
# project() would otherwise restore the previous path from this file.
set(compiler_info "${CMAKE_BINARY_DIR}/CMakeFiles/${CMAKE_VERSION}/CMake${language}Compiler.cmake")
if(EXISTS "${compiler_info}")