42 lines
1.5 KiB
CMake
Raw Normal View History

2020-02-01 23:06:01 +01:00
include(RunCMake)
run_cmake(ParseImplicitLinkInfo)
2023-07-02 19:51:09 +02:00
2024-04-14 22:45:38 +02:00
# Detect information from the toolchain:
# - CMAKE_SYSTEM_NAME
# - CMAKE_C_COMPILER
# - CMAKE_C_COMPILER_ID
# - CMAKE_C_COMPILER_VERSION
# - CMAKE_C_COMPILER_LINKER
# - CMAKE_C_COMPILER_LINKER_ID
# - CMAKE_C_COMPILER_LINKER_VERSION
# - CMAKE_C_IMPLICIT_LINK_DIRECTORIES
2023-07-02 19:51:09 +02:00
run_cmake(Inspect)
set(info "${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
include("${info}")
2024-04-14 22:45:38 +02:00
if(CMAKE_HOST_UNIX)
run_cmake_script(DetermineLinkerId)
endif()
if(CMAKE_C_IMPLICIT_LINK_DIRECTORIES MATCHES ";")
2023-07-02 19:51:09 +02:00
run_cmake_with_options(ExcludeDirs "-Dinfo=${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
endif()
2024-04-14 22:45:38 +02:00
if(CMAKE_SYSTEM_NAME MATCHES "^(Linux|Darwin|Windows|AIX|SunOS)$|BSD"
AND NOT CMAKE_C_COMPILER_ID MATCHES "^(Borland|Embarcadero|OpenWatcom|OrangeC|Watcom)$"
AND NOT (CMAKE_C_COMPILER_ID MATCHES "^(Intel|IntelLLVM)$" AND CMAKE_SYSTEM_NAME STREQUAL "Windows")
2024-07-09 14:46:46 +02:00
AND NOT CMAKE_C_COMPILER_LINKER MATCHES "Microsoft Visual Studio 9\\.0/VC/bin"
2024-04-14 22:45:38 +02:00
)
if(NOT CMAKE_C_COMPILER_LINKER OR NOT CMAKE_C_COMPILER_LINKER_ID OR NOT CMAKE_C_COMPILER_LINKER_VERSION)
message(SEND_ERROR "C compiler's linker not identified:\n"
" CMAKE_C_COMPILER='${CMAKE_C_COMPILER}'\n"
" CMAKE_C_COMPILER_ID='${CMAKE_C_COMPILER_ID}'\n"
" CMAKE_C_COMPILER_VERSION='${CMAKE_C_COMPILER_VERSION}'\n"
" CMAKE_C_COMPILER_LINKER='${CMAKE_C_COMPILER_LINKER}'\n"
" CMAKE_C_COMPILER_LINKER_ID='${CMAKE_C_COMPILER_LINKER_ID}'\n"
" CMAKE_C_COMPILER_LINKER_VERSION='${CMAKE_C_COMPILER_LINKER_VERSION}'\n"
)
endif()
endif()