Browse Source

BinUtils: Find linker and librarian for OpenWatcom

Update our OpenWatcom linker and archiver rules to use the
`<CMAKE_LINKER>` and `<CMAKE_AR>` placeholders instead of
hard-coding the tool names.
Brad King 4 years ago
parent
commit
995f5b4e7b
2 changed files with 10 additions and 5 deletions
  1. 5 0
      Modules/CMakeFindBinUtils.cmake
  2. 5 5
      Modules/Compiler/OpenWatcom.cmake

+ 5 - 0
Modules/CMakeFindBinUtils.cmake

@@ -86,6 +86,11 @@ if(("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_SIMULATE_ID}" STREQUAL "xMSVC" AND
 
   list(APPEND _CMAKE_TOOL_VARS LINKER MT AR)
 
+elseif("x${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_ID}" MATCHES "^x(Open)?Watcom$")
+  set(_CMAKE_LINKER_NAMES "wlink")
+  set(_CMAKE_AR_NAMES "wlib")
+  list(APPEND _CMAKE_TOOL_VARS LINKER AR)
+
 # in all other cases search for ar, ranlib, etc.
 else()
   if(CMAKE_C_COMPILER_EXTERNAL_TOOLCHAIN)

+ 5 - 5
Modules/Compiler/OpenWatcom.cmake

@@ -43,13 +43,13 @@ endforeach()
 
 # C create import library
 set(CMAKE_C_CREATE_IMPORT_LIBRARY
-  "wlib -c -q -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>")
+  "<CMAKE_AR> -c -q -n -b <TARGET_IMPLIB> +<TARGET_QUOTED>")
 # C++ create import library
 set(CMAKE_CXX_CREATE_IMPORT_LIBRARY ${CMAKE_C_CREATE_IMPORT_LIBRARY})
 
 # C link a object files into an executable file
 set(CMAKE_C_LINK_EXECUTABLE
-  "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
+  "<CMAKE_LINKER> ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
 # C++ link a object files into an executable file
 set(CMAKE_CXX_LINK_EXECUTABLE ${CMAKE_C_LINK_EXECUTABLE})
 
@@ -69,19 +69,19 @@ set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE
 
 # C create a shared library
 set(CMAKE_C_CREATE_SHARED_LIBRARY
-  "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> option implib=<TARGET_IMPLIB> file {<OBJECTS>} <LINK_LIBRARIES>")
+  "<CMAKE_LINKER> ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> option implib=<TARGET_IMPLIB> file {<OBJECTS>} <LINK_LIBRARIES>")
 # C++ create a shared library
 set(CMAKE_CXX_CREATE_SHARED_LIBRARY ${CMAKE_C_CREATE_SHARED_LIBRARY})
 
 # C create a shared module
 set(CMAKE_C_CREATE_SHARED_MODULE
-  "wlink ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
+  "<CMAKE_LINKER> ${CMAKE_WLINK_QUIET} name <TARGET> <LINK_FLAGS> file {<OBJECTS>} <LINK_LIBRARIES>")
 # C++ create a shared module
 set(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_MODULE})
 
 # C create a static library
 set(CMAKE_C_CREATE_STATIC_LIBRARY
-  "wlib ${CMAKE_LIB_QUIET} -c -n -b <TARGET_QUOTED> <LINK_FLAGS> <OBJECTS> ")
+  "<CMAKE_AR> ${CMAKE_LIB_QUIET} -c -n -b <TARGET_QUOTED> <LINK_FLAGS> <OBJECTS> ")
 # C++ create a static library
 set(CMAKE_CXX_CREATE_STATIC_LIBRARY ${CMAKE_C_CREATE_STATIC_LIBRARY})