Merge topic 'openwatcom-linker-id'

2e549c1df4 CMakeDetermineLinkerId: support the OpenWatcom linker ID

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12012
diff --git a/Help/release/dev/OpenWatcom-linker-id.rst b/Help/release/dev/OpenWatcom-linker-id.rst
new file mode 100644
index 0000000..6bc05bd
--- /dev/null
+++ b/Help/release/dev/OpenWatcom-linker-id.rst
@@ -0,0 +1,5 @@
+openwatcom-linker-id
+--------------------
+
+* The :variable:`CMAKE_<LANG>_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 5a70a94..21b31c4 100644
--- a/Help/variable/CMAKE_LANG_COMPILER_LINKER_ID.rst
+++ b/Help/variable/CMAKE_LANG_COMPILER_LINKER_ID.rst
@@ -22,6 +22,7 @@
                                 `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 @@
 .. _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 9b2283e..1664921 100644
--- a/Modules/Internal/CMakeDetermineLinkerId.cmake
+++ b/Modules/Internal/CMakeDetermineLinkerId.cmake
@@ -83,6 +83,11 @@
       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}")