Browse Source

ASM: Search for full path even when using C or C++ compiler

When `CMAKE_{C,CXX}_COMPILER` is set but `CMAKE_ASM*_COMPILER` is
not, we copy the C or C++ compiler to use as the ASM compiler.
In this case we still need to search for the ASM compiler in case
the C or C++ compiler is not known as an absolute path.

Also do not copy the compiler id setting and let the normal detection
take place.  The C compiler id may not exist if the language has not
been enabled.

Fixes: #18406
pull/324/head
Raul Laasner 7 years ago
committed by Brad King
parent
commit
7ab5843c26
  1. 6
      Modules/CMakeDetermineASMCompiler.cmake

6
Modules/CMakeDetermineASMCompiler.cmake

@ -22,11 +22,9 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER)
if("ASM${ASM_DIALECT}" STREQUAL "ASM") # the generic assembler support
if(NOT CMAKE_ASM_COMPILER_INIT)
if(CMAKE_C_COMPILER)
set(CMAKE_ASM_COMPILER "${CMAKE_C_COMPILER}" CACHE FILEPATH "The ASM compiler")
set(CMAKE_ASM_COMPILER_ID "${CMAKE_C_COMPILER_ID}")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${CMAKE_C_COMPILER})
elseif(CMAKE_CXX_COMPILER)
set(CMAKE_ASM_COMPILER "${CMAKE_CXX_COMPILER}" CACHE FILEPATH "The ASM compiler")
set(CMAKE_ASM_COMPILER_ID "${CMAKE_CXX_COMPILER_ID}")
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST ${CMAKE_CXX_COMPILER})
else()
# List all default C and CXX compilers
set(CMAKE_ASM${ASM_DIALECT}_COMPILER_LIST

Loading…
Cancel
Save