소스 검색

ASM: Restore CMAKE_{C,CXX}_COMPILER as ASM-first candidates

Prior to commit abfe98ce6c (ASM: Consider C/CXX compilers only if
enabled, 2025-04-08) one could pass `-DCMAKE_C_COMPILER=...` to
configure a project that enables `ASM` before/without `C` or `CXX`.
This was previously allowed accidentally as a side effect of the way we
implemented support for using the selected `C` or `CXX` compiler for
`ASM`.  Restore it for compatibility, but also preserve the effect of
commit 6baf65ec46 (ASM: Do not consider MSVC C/CXX compiler for generic
ASM, 2025-04-08) by excluding `cl`.
Brad King 6 달 전
부모
커밋
d26efc3600
1개의 변경된 파일4개의 추가작업 그리고 0개의 파일을 삭제
  1. 4 0
      Modules/CMakeDetermineASMCompiler.cmake

+ 4 - 0
Modules/CMakeDetermineASMCompiler.cmake

@@ -23,8 +23,12 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER)
     if(NOT CMAKE_ASM_COMPILER_INIT)
       if(CMAKE_C_COMPILER_LOADED AND NOT CMAKE_C_COMPILER_ID MATCHES "^(MSVC)$")
         set(CMAKE_ASM_COMPILER_LIST ${CMAKE_C_COMPILER})
+      elseif(NOT CMAKE_C_COMPILER_LOADED AND CMAKE_C_COMPILER AND NOT CMAKE_C_COMPILER MATCHES "(^|/)[Cc][Ll](\\.|$)")
+        set(CMAKE_ASM_COMPILER_LIST ${CMAKE_C_COMPILER})
       elseif(CMAKE_CXX_COMPILER_LOADED AND NOT CMAKE_CXX_COMPILER_ID MATCHES "^(MSVC)$")
         set(CMAKE_ASM_COMPILER_LIST ${CMAKE_CXX_COMPILER})
+      elseif(NOT CMAKE_CXX_COMPILER_LOADED AND CMAKE_CXX_COMPILER AND NOT CMAKE_CXX_COMPILER MATCHES "(^|/)[Cc][Ll](\\.|$)")
+        set(CMAKE_ASM_COMPILER_LIST ${CMAKE_CXX_COMPILER})
       else()
         # List all default C and CXX compilers
         set(CMAKE_ASM_COMPILER_LIST