mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-08 07:10:12 -05:00
Tests: Add unit tests for internal cmake_determine_linker_id helper
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
include(${CMAKE_ROOT}/Modules/Internal/CMakeDetermineLinkerId.cmake)
|
||||
|
||||
set(tools
|
||||
aix7.3-ld
|
||||
debian12-ld.bfd
|
||||
debian12-ld.gold
|
||||
debian12-ld.lld
|
||||
debian12-ld.mold
|
||||
fedora39-ld.gold
|
||||
fedora39-ld.lld
|
||||
fedora39-ld.mold
|
||||
msvc14.36-link
|
||||
sunos5.11-ld
|
||||
xcode15.1-ld
|
||||
)
|
||||
|
||||
foreach(tool IN LISTS tools)
|
||||
block()
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/ld-v/${tool}.cmake OPTIONAL)
|
||||
cmake_determine_linker_id(C ${CMAKE_CURRENT_LIST_DIR}/ld-v/${tool}.bash)
|
||||
file(STRINGS ${CMAKE_CURRENT_LIST_DIR}/ld-v/${tool}.txt results)
|
||||
foreach(result IN LISTS results)
|
||||
if(result MATCHES "^([A-Z_]+)='([^']*)'")
|
||||
set(expect_var "${CMAKE_MATCH_1}")
|
||||
set(expect_val "${CMAKE_MATCH_2}")
|
||||
if(NOT "x${${expect_var}}" STREQUAL "x${expect_val}")
|
||||
message(SEND_ERROR "${tool} result\n"
|
||||
" ${expect_var}='${${expect_var}}'\n"
|
||||
"is not expected\n"
|
||||
" ${expect_var}='${expect_val}'\n"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
endblock()
|
||||
endforeach()
|
||||
@@ -6,6 +6,10 @@ run_cmake(Inspect)
|
||||
set(info "${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
|
||||
include("${info}")
|
||||
|
||||
if(CMAKE_HOST_UNIX)
|
||||
run_cmake_script(DetermineLinkerId)
|
||||
endif()
|
||||
|
||||
if(INFO_CMAKE_C_IMPLICIT_LINK_DIRECTORIES MATCHES ";")
|
||||
run_cmake_with_options(ExcludeDirs "-Dinfo=${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
|
||||
endif()
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'ld: LD 7.3.1(6/9/22)'
|
||||
@@ -0,0 +1 @@
|
||||
set(CMAKE_SYSTEM_NAME "AIX")
|
||||
@@ -0,0 +1,2 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='AIX'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='7.3.1'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'GNU ld (GNU Binutils for Debian) 2.40'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='GNU'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='2.40'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'GNU gold (GNU Binutils for Debian 2.40) 1.16'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='GNUgold'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='1.16'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'Debian LLD 14.0.6 (compatible with GNU linkers)'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='LLD'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='14.0.6'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'mold 1.10.1 (compatible with GNU ld)'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='MOLD'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='1.10.1'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'GNU gold (version 2.40-13.fc39) 1.16'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='GNUgold'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='1.16'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'LLD 17.0.4 (compatible with GNU linkers)'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='LLD'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='17.0.4'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'mold 2.4.0 (compatible with GNU ld)'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='MOLD'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='2.4.0'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
echo 'Microsoft (R) Incremental Linker Version 14.36.32543.0
|
||||
Copyright (C) Microsoft Corporation. All rights reserved.
|
||||
|
||||
usage: LINK [options] [files] [@commandfile]'
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='MSVC'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='14.36.32543.0'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='MSVC'
|
||||
@@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo 'ld: Software Generation Utilities - Solaris Link Editors: 5.11-1.2458'
|
||||
@@ -0,0 +1 @@
|
||||
set(CMAKE_SYSTEM_NAME "SunOS")
|
||||
@@ -0,0 +1,2 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='Solaris'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='5.11-1.2458'
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
echo '@(#)PROGRAM:ld PROJECT:dyld-1022.1
|
||||
BUILD 13:21:42 Nov 10 2023
|
||||
configured to support archs: armv6 armv7 armv7s arm64 arm64e arm64_32 i386 x86_64 x86_64h
|
||||
will use ld-classic for: armv6 armv7 armv7s arm64_32 i386 armv6m armv7k armv7m armv7em
|
||||
LTO support using: LLVM version 15.0.0 (static support for 29, runtime is 29)
|
||||
TAPI support using: Apple TAPI version 15.0.0 (tapi-1500.0.12.8)
|
||||
Library search paths:
|
||||
Framework search paths:'
|
||||
@@ -0,0 +1 @@
|
||||
set(CMAKE_SYSTEM_NAME "Darwin")
|
||||
@@ -0,0 +1,3 @@
|
||||
CMAKE_C_COMPILER_LINKER_ID='AppleClang'
|
||||
CMAKE_C_COMPILER_LINKER_VERSION='1022.1'
|
||||
CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT='GNU'
|
||||
Reference in New Issue
Block a user