From 2e549c1df4a5874fbad8dcff758e5fc57cd0328b Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Wed, 29 Apr 2026 17:58:59 -0400 Subject: [PATCH] CMakeDetermineLinkerId: support the OpenWatcom linker ID --- Help/release/dev/OpenWatcom-linker-id.rst | 5 +++++ Help/variable/CMAKE_LANG_COMPILER_LINKER_ID.rst | 2 ++ Modules/Internal/CMakeDetermineLinkerId.cmake | 5 +++++ 3 files changed, 12 insertions(+) create mode 100644 Help/release/dev/OpenWatcom-linker-id.rst diff --git a/Help/release/dev/OpenWatcom-linker-id.rst b/Help/release/dev/OpenWatcom-linker-id.rst new file mode 100644 index 0000000000..6bc05bd716 --- /dev/null +++ b/Help/release/dev/OpenWatcom-linker-id.rst @@ -0,0 +1,5 @@ +openwatcom-linker-id +-------------------- + +* The :variable:`CMAKE__COMPILER_LINKER_ID` variable learned to detect + the OpenWatcom ``wlink`` linker. diff --git a/Help/variable/CMAKE_LANG_COMPILER_LINKER_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_LINKER_ID.rst index 5a70a942fd..21b31c4604 100644 --- a/Help/variable/CMAKE_LANG_COMPILER_LINKER_ID.rst +++ b/Help/variable/CMAKE_LANG_COMPILER_LINKER_ID.rst @@ -22,6 +22,7 @@ Value Name `sold`_ linker ``Solaris`` SunOS system linker ``WILD`` `wild`_ linker +``OpenWatcom`` `OpenWatcom wlink`_ linker =============================== =============================================== This variable is not guaranteed to be defined for all linkers or languages. @@ -33,3 +34,4 @@ This variable is not guaranteed to be defined for all linkers or languages. .. _mold\: A Modern Linker: https://github.com/rui314/mold .. _sold: https://github.com/bluewhalesystems/sold .. _wild: https://github.com/wild-linker/wild +.. _OpenWatcom wlink: https://www.openwatcom.com/ diff --git a/Modules/Internal/CMakeDetermineLinkerId.cmake b/Modules/Internal/CMakeDetermineLinkerId.cmake index 9b2283ed97..1664921254 100644 --- a/Modules/Internal/CMakeDetermineLinkerId.cmake +++ b/Modules/Internal/CMakeDetermineLinkerId.cmake @@ -83,6 +83,11 @@ function(cmake_determine_linker_id lang linker) set(linker_frontend "MSVC") set(linker_version "${CMAKE_MATCH_1}") break() + elseif(linker_desc MATCHES "Open Watcom Linker Version ([0-9.]+)") + set(linker_id "OpenWatcom") + set(linker_frontend "OpenWatcom") + set(linker_version "${CMAKE_MATCH_1}") + break() elseif (CMAKE_SYSTEM_NAME STREQUAL "SunOS" AND linker_desc MATCHES "Solaris Link Editors: ([0-9.-]+)") set(linker_id "Solaris") set(linker_version "${CMAKE_MATCH_1}")