BUG: When forcing the C and CXX compilers do not try to detect the ABI information. Cleanup configured language compiler info files by always using @ONLY. This addresses bug#6297.
This commit is contained in:
parent
dc06ac5881
commit
bbbb2be765
|
@ -131,7 +131,8 @@ ENDIF(NOT CMAKE_C_COMPILER_ID_RUN)
|
||||||
INCLUDE(CMakeFindBinUtils)
|
INCLUDE(CMakeFindBinUtils)
|
||||||
|
|
||||||
# configure variables set in this file for fast reload later on
|
# configure variables set in this file for fast reload later on
|
||||||
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
|
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
|
||||||
"${CMAKE_PLATFORM_ROOT_BIN}/CMakeCCompiler.cmake" IMMEDIATE)
|
"${CMAKE_PLATFORM_ROOT_BIN}/CMakeCCompiler.cmake"
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
SET(CMAKE_C_COMPILER_ENV_VAR "CC")
|
SET(CMAKE_C_COMPILER_ENV_VAR "CC")
|
||||||
|
|
|
@ -141,7 +141,8 @@ ENDIF(NOT CMAKE_CXX_COMPILER_ID_RUN)
|
||||||
INCLUDE(CMakeFindBinUtils)
|
INCLUDE(CMakeFindBinUtils)
|
||||||
|
|
||||||
# configure all variables set in this file
|
# configure all variables set in this file
|
||||||
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
|
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
|
||||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake IMMEDIATE)
|
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
SET(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
|
SET(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
|
||||||
|
|
|
@ -134,6 +134,7 @@ ENDIF(NOT CMAKE_Fortran_COMPILER_ID_RUN)
|
||||||
INCLUDE(CMakeFindBinUtils)
|
INCLUDE(CMakeFindBinUtils)
|
||||||
|
|
||||||
# configure variables set in this file for fast reload later on
|
# configure variables set in this file for fast reload later on
|
||||||
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
|
CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeFortranCompiler.cmake.in
|
||||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeFortranCompiler.cmake IMMEDIATE)
|
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeFortranCompiler.cmake
|
||||||
|
@ONLY)
|
||||||
SET(CMAKE_Fortran_COMPILER_ENV_VAR "FC")
|
SET(CMAKE_Fortran_COMPILER_ENV_VAR "FC")
|
||||||
|
|
|
@ -38,14 +38,14 @@ MACRO(CMAKE_FORCE_C_COMPILER compiler id sizeof_void)
|
||||||
SET(CMAKE_C_COMPILER_ID_RUN TRUE)
|
SET(CMAKE_C_COMPILER_ID_RUN TRUE)
|
||||||
SET(CMAKE_C_COMPILER_ID ${id})
|
SET(CMAKE_C_COMPILER_ID ${id})
|
||||||
SET(CMAKE_C_COMPILER_WORKS TRUE)
|
SET(CMAKE_C_COMPILER_WORKS TRUE)
|
||||||
|
SET(CMAKE_C_COMPILER_FORCED TRUE)
|
||||||
|
|
||||||
# Set old compiler and platform id variables.
|
# Set old compiler and platform id variables.
|
||||||
IF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU")
|
IF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU")
|
||||||
SET(CMAKE_COMPILER_IS_GNUCC 1)
|
SET(CMAKE_COMPILER_IS_GNUCC 1)
|
||||||
ENDIF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU")
|
ENDIF("${CMAKE_C_COMPILER_ID}" MATCHES "GNU")
|
||||||
|
|
||||||
SET(CMAKE_SIZEOF_VOID_P ${sizeof_void} CACHE STRING "sizeof void")
|
SET(CMAKE_C_SIZEOF_DATA_PTR ${sizeof_void})
|
||||||
SET(HAVE_CMAKE_SIZEOF_VOID_P TRUE CACHE INTERNAL "have sizeof void")
|
|
||||||
ENDMACRO(CMAKE_FORCE_C_COMPILER)
|
ENDMACRO(CMAKE_FORCE_C_COMPILER)
|
||||||
|
|
||||||
MACRO(CMAKE_FORCE_CXX_COMPILER compiler id)
|
MACRO(CMAKE_FORCE_CXX_COMPILER compiler id)
|
||||||
|
@ -53,6 +53,7 @@ MACRO(CMAKE_FORCE_CXX_COMPILER compiler id)
|
||||||
SET(CMAKE_CXX_COMPILER_ID_RUN TRUE)
|
SET(CMAKE_CXX_COMPILER_ID_RUN TRUE)
|
||||||
SET(CMAKE_CXX_COMPILER_ID ${id})
|
SET(CMAKE_CXX_COMPILER_ID ${id})
|
||||||
SET(CMAKE_CXX_COMPILER_WORKS TRUE)
|
SET(CMAKE_CXX_COMPILER_WORKS TRUE)
|
||||||
|
SET(CMAKE_CXX_COMPILER_FORCED TRUE)
|
||||||
|
|
||||||
IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
IF("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
|
||||||
SET(CMAKE_COMPILER_IS_GNUCXX 1)
|
SET(CMAKE_COMPILER_IS_GNUCXX 1)
|
||||||
|
|
|
@ -42,13 +42,18 @@ ELSE(NOT CMAKE_C_COMPILER_WORKS)
|
||||||
ENDIF(C_TEST_WAS_RUN)
|
ENDIF(C_TEST_WAS_RUN)
|
||||||
SET(CMAKE_C_COMPILER_WORKS 1 CACHE INTERNAL "")
|
SET(CMAKE_C_COMPILER_WORKS 1 CACHE INTERNAL "")
|
||||||
|
|
||||||
# Try to identify the ABI and configure it into CMakeCCompiler.cmake
|
IF(CMAKE_C_COMPILER_FORCED)
|
||||||
INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
|
# The compiler was forced by the CMAKE_FORCE_C_COMPILER macro.
|
||||||
CMAKE_DETERMINE_COMPILER_ABI(C ${CMAKE_ROOT}/Modules/CMakeCCompilerABI.c)
|
# Assume the user has configured all compiler information.
|
||||||
CONFIGURE_FILE(
|
ELSE(CMAKE_C_COMPILER_FORCED)
|
||||||
${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
|
# Try to identify the ABI and configure it into CMakeCCompiler.cmake
|
||||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCCompiler.cmake
|
INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
|
||||||
@ONLY
|
CMAKE_DETERMINE_COMPILER_ABI(C ${CMAKE_ROOT}/Modules/CMakeCCompilerABI.c)
|
||||||
)
|
CONFIGURE_FILE(
|
||||||
|
${CMAKE_ROOT}/Modules/CMakeCCompiler.cmake.in
|
||||||
|
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCCompiler.cmake
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
ENDIF(CMAKE_C_COMPILER_FORCED)
|
||||||
ENDIF(NOT CMAKE_C_COMPILER_WORKS)
|
ENDIF(NOT CMAKE_C_COMPILER_WORKS)
|
||||||
|
|
||||||
|
|
|
@ -35,12 +35,17 @@ ELSE(NOT CMAKE_CXX_COMPILER_WORKS)
|
||||||
ENDIF(CXX_TEST_WAS_RUN)
|
ENDIF(CXX_TEST_WAS_RUN)
|
||||||
SET(CMAKE_CXX_COMPILER_WORKS 1 CACHE INTERNAL "")
|
SET(CMAKE_CXX_COMPILER_WORKS 1 CACHE INTERNAL "")
|
||||||
|
|
||||||
# Try to identify the ABI and configure it into CMakeCXXCompiler.cmake
|
IF(CMAKE_CXX_COMPILER_FORCED)
|
||||||
INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
|
# The compiler was forced by the CMAKE_FORCE_CXX_COMPILER macro.
|
||||||
CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp)
|
# Assume the user has configured all compiler information.
|
||||||
CONFIGURE_FILE(
|
ELSE(CMAKE_CXX_COMPILER_FORCED)
|
||||||
${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
|
# Try to identify the ABI and configure it into CMakeCXXCompiler.cmake
|
||||||
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake
|
INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerABI.cmake)
|
||||||
@ONLY
|
CMAKE_DETERMINE_COMPILER_ABI(CXX ${CMAKE_ROOT}/Modules/CMakeCXXCompilerABI.cpp)
|
||||||
)
|
CONFIGURE_FILE(
|
||||||
|
${CMAKE_ROOT}/Modules/CMakeCXXCompiler.cmake.in
|
||||||
|
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeCXXCompiler.cmake
|
||||||
|
@ONLY
|
||||||
|
)
|
||||||
|
ENDIF(CMAKE_CXX_COMPILER_FORCED)
|
||||||
ENDIF(NOT CMAKE_CXX_COMPILER_WORKS)
|
ENDIF(NOT CMAKE_CXX_COMPILER_WORKS)
|
||||||
|
|
Loading…
Reference in New Issue