InstallRequiredSystemLibraries.cmake 17.6 KB
Newer Older
1 2 3 4
#.rst:
# InstallRequiredSystemLibraries
# ------------------------------
#
5 6 7
# Include this module to search for compiler-provided system runtime
# libraries and add install rules for them.  Some optional variables
# may be set prior to including the module to adjust behavior:
8
#
9 10 11
# ``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS``
#   Specify additional runtime libraries that may not be detected.
#   After inclusion any detected libraries will be appended to this.
12
#
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
# ``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP``
#   Set to TRUE to skip calling the :command:`install(PROGRAMS)` command to
#   allow the includer to specify its own install rule, using the value of
#   ``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS`` to get the list of libraries.
#
# ``CMAKE_INSTALL_DEBUG_LIBRARIES``
#   Set to TRUE to install the debug runtime libraries when available
#   with MSVC tools.
#
# ``CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY``
#   Set to TRUE to install only the debug runtime libraries with MSVC
#   tools even if the release runtime libraries are also available.
#
# ``CMAKE_INSTALL_MFC_LIBRARIES``
#   Set to TRUE to install the MSVC MFC runtime libraries.
#
# ``CMAKE_INSTALL_OPENMP_LIBRARIES``
#   Set to TRUE to install the MSVC OpenMP runtime libraries
#
# ``CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION``
#   Specify the :command:`install(PROGRAMS)` command ``DESTINATION``
#   option.  If not specified, the default is ``bin`` on Windows
#   and ``lib`` elsewhere.
#
# ``CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS``
#   Set to TRUE to disable warnings about required library files that
#   do not exist.  (For example, Visual Studio Express editions may
#   not provide the redistributable files.)
41 42 43 44
#
# ``CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT``
#   Specify the :command:`install(PROGRAMS)` command ``COMPONENT``
#   option.  If not specified, no such option will be used.
45

46
#=============================================================================
47
# Copyright 2006-2015 Kitware, Inc.
48 49 50 51 52 53 54 55
#
# Distributed under the OSI-approved BSD License (the "License");
# see accompanying file Copyright.txt for details.
#
# This software is distributed WITHOUT ANY WARRANTY; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# See the License for more information.
#=============================================================================
56
# (To distribute this file outside of CMake, substitute the full
57 58
#  License text for the above reference.)

59 60
if(MSVC)
  file(TO_CMAKE_PATH "$ENV{SYSTEMROOT}" SYSTEMROOT)
61

62 63
  if(CMAKE_CL_64)
    if(MSVC_VERSION GREATER 1599)
64
      # VS 10 and later:
65 66
      set(CMAKE_MSVC_ARCH x64)
    else()
67
      # VS 9 and earlier:
68 69
      set(CMAKE_MSVC_ARCH amd64)
    endif()
70
  else()
71
    set(CMAKE_MSVC_ARCH x86)
72
  endif()
73

74 75
  get_filename_component(devenv_dir "${CMAKE_MAKE_PROGRAM}" PATH)
  get_filename_component(base_dir "${devenv_dir}/../.." ABSOLUTE)
76

77 78
  if(MSVC70)
    set(__install__libs
79 80 81
      "${SYSTEMROOT}/system32/msvcp70.dll"
      "${SYSTEMROOT}/system32/msvcr70.dll"
      )
82
  endif()
83

84 85
  if(MSVC71)
    set(__install__libs
86 87 88
      "${SYSTEMROOT}/system32/msvcp71.dll"
      "${SYSTEMROOT}/system32/msvcr71.dll"
      )
89
  endif()
90

91
  if(MSVC80)
92
    # Find the runtime library redistribution directory.
93
    get_filename_component(msvc_install_dir
94
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]" ABSOLUTE)
95
    find_path(MSVC80_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest
96
      PATHS
97
        "${msvc_install_dir}/../../VC/redist"
98
        "${base_dir}/VC/redist"
99
      )
100 101
    mark_as_advanced(MSVC80_REDIST_DIR)
    set(MSVC80_CRT_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.CRT")
102 103 104

    # Install the manifest that allows DLLs to be loaded from the
    # directory containing the executable.
105 106
    if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
      set(__install__libs
107 108 109 110 111
        "${MSVC80_CRT_DIR}/Microsoft.VC80.CRT.manifest"
        "${MSVC80_CRT_DIR}/msvcm80.dll"
        "${MSVC80_CRT_DIR}/msvcp80.dll"
        "${MSVC80_CRT_DIR}/msvcr80.dll"
        )
112 113
    else()
      set(__install__libs)
114
    endif()
115

116 117
    if(CMAKE_INSTALL_DEBUG_LIBRARIES)
      set(MSVC80_CRT_DIR
118
        "${MSVC80_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugCRT")
119
      set(__install__libs ${__install__libs}
120 121 122 123 124
        "${MSVC80_CRT_DIR}/Microsoft.VC80.DebugCRT.manifest"
        "${MSVC80_CRT_DIR}/msvcm80d.dll"
        "${MSVC80_CRT_DIR}/msvcp80d.dll"
        "${MSVC80_CRT_DIR}/msvcr80d.dll"
        )
125 126
    endif()
  endif()
127

128
  if(MSVC90)
129
    # Find the runtime library redistribution directory.
130
    get_filename_component(msvc_install_dir
131
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0;InstallDir]" ABSOLUTE)
132
    get_filename_component(msvc_express_install_dir
133
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\9.0;InstallDir]" ABSOLUTE)
134
    find_path(MSVC90_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT/Microsoft.VC90.CRT.manifest
135
      PATHS
136 137
        "${msvc_install_dir}/../../VC/redist"
        "${msvc_express_install_dir}/../../VC/redist"
138
        "${base_dir}/VC/redist"
139
      )
140 141
    mark_as_advanced(MSVC90_REDIST_DIR)
    set(MSVC90_CRT_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.CRT")
142

143 144
    # Install the manifest that allows DLLs to be loaded from the
    # directory containing the executable.
145 146
    if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
      set(__install__libs
147 148 149 150 151
        "${MSVC90_CRT_DIR}/Microsoft.VC90.CRT.manifest"
        "${MSVC90_CRT_DIR}/msvcm90.dll"
        "${MSVC90_CRT_DIR}/msvcp90.dll"
        "${MSVC90_CRT_DIR}/msvcr90.dll"
        )
152 153
    else()
      set(__install__libs)
154
    endif()
155

156 157
    if(CMAKE_INSTALL_DEBUG_LIBRARIES)
      set(MSVC90_CRT_DIR
158
        "${MSVC90_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugCRT")
159
      set(__install__libs ${__install__libs}
160 161 162 163 164
        "${MSVC90_CRT_DIR}/Microsoft.VC90.DebugCRT.manifest"
        "${MSVC90_CRT_DIR}/msvcm90d.dll"
        "${MSVC90_CRT_DIR}/msvcp90d.dll"
        "${MSVC90_CRT_DIR}/msvcr90d.dll"
        )
165 166
    endif()
  endif()
167

168 169
  macro(MSVCRT_FILES_FOR_VERSION version)
    set(v "${version}")
170

171
    # Find the runtime library redistribution directory.
172
    get_filename_component(msvc_install_dir
173
      "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${v}.0;InstallDir]" ABSOLUTE)
174
    find_path(MSVC${v}_REDIST_DIR NAMES ${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT
175
      PATHS
176
        "${msvc_install_dir}/../../VC/redist"
177
        "${base_dir}/VC/redist"
178
        "$ENV{ProgramFiles}/Microsoft Visual Studio ${v}.0/VC/redist"
179 180
        set(programfilesx86 "ProgramFiles(x86)")
        "$ENV{${programfilesx86}}/Microsoft Visual Studio ${v}.0/VC/redist"
181
      )
182 183
    mark_as_advanced(MSVC${v}_REDIST_DIR)
    set(MSVC${v}_CRT_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.CRT")
184

185 186
    if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
      set(__install__libs
187
        "${MSVC${v}_CRT_DIR}/msvcp${v}0.dll"
188
        )
189 190 191 192 193
      if(NOT v VERSION_LESS 14)
        list(APPEND __install__libs "${MSVC${v}_CRT_DIR}/vcruntime${v}0.dll")
      else()
        list(APPEND __install__libs "${MSVC${v}_CRT_DIR}/msvcr${v}0.dll")
      endif()
194 195
    else()
      set(__install__libs)
196
    endif()
197

198 199
    if(CMAKE_INSTALL_DEBUG_LIBRARIES)
      set(MSVC${v}_CRT_DIR
200
        "${MSVC${v}_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugCRT")
201
      set(__install__libs ${__install__libs}
202
        "${MSVC${v}_CRT_DIR}/msvcp${v}0d.dll"
203
        )
204 205 206 207 208
      if(NOT v VERSION_LESS 14)
        list(APPEND __install__libs "${MSVC${v}_CRT_DIR}/vcruntime${v}0d.dll")
      else()
        list(APPEND __install__libs "${MSVC${v}_CRT_DIR}/msvcr${v}0d.dll")
      endif()
209
    endif()
210
  endmacro()
211

212
  if(MSVC10)
213
    MSVCRT_FILES_FOR_VERSION(10)
214
  endif()
215

216
  if(MSVC11)
217
    MSVCRT_FILES_FOR_VERSION(11)
218
  endif()
219

220 221 222 223
  if(MSVC12)
    MSVCRT_FILES_FOR_VERSION(12)
  endif()

224 225 226 227
  if(MSVC14)
    MSVCRT_FILES_FOR_VERSION(14)
  endif()

228 229 230
  if(CMAKE_INSTALL_MFC_LIBRARIES)
    if(MSVC70)
      set(__install__libs ${__install__libs}
231 232
        "${SYSTEMROOT}/system32/mfc70.dll"
        )
233
    endif()
234

235 236
    if(MSVC71)
      set(__install__libs ${__install__libs}
237 238
        "${SYSTEMROOT}/system32/mfc71.dll"
        )
239
    endif()
240

241 242 243
    if(MSVC80)
      if(CMAKE_INSTALL_DEBUG_LIBRARIES)
        set(MSVC80_MFC_DIR
244
          "${MSVC80_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC80.DebugMFC")
245
        set(__install__libs ${__install__libs}
246 247 248 249 250 251
          "${MSVC80_MFC_DIR}/Microsoft.VC80.DebugMFC.manifest"
          "${MSVC80_MFC_DIR}/mfc80d.dll"
          "${MSVC80_MFC_DIR}/mfc80ud.dll"
          "${MSVC80_MFC_DIR}/mfcm80d.dll"
          "${MSVC80_MFC_DIR}/mfcm80ud.dll"
          )
252
      endif()
253

254
      set(MSVC80_MFC_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFC")
255 256
      # Install the manifest that allows DLLs to be loaded from the
      # directory containing the executable.
257 258
      if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
        set(__install__libs ${__install__libs}
259 260 261 262 263 264
          "${MSVC80_MFC_DIR}/Microsoft.VC80.MFC.manifest"
          "${MSVC80_MFC_DIR}/mfc80.dll"
          "${MSVC80_MFC_DIR}/mfc80u.dll"
          "${MSVC80_MFC_DIR}/mfcm80.dll"
          "${MSVC80_MFC_DIR}/mfcm80u.dll"
          )
265
      endif()
266

267
      # include the language dll's for vs8 as well as the actuall dll's
268
      set(MSVC80_MFCLOC_DIR "${MSVC80_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC80.MFCLOC")
269 270
      # Install the manifest that allows DLLs to be loaded from the
      # directory containing the executable.
271
      set(__install__libs ${__install__libs}
272 273 274 275 276 277 278 279 280 281 282
        "${MSVC80_MFCLOC_DIR}/Microsoft.VC80.MFCLOC.manifest"
        "${MSVC80_MFCLOC_DIR}/mfc80chs.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80cht.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80enu.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80esp.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80deu.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80fra.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80ita.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80jpn.dll"
        "${MSVC80_MFCLOC_DIR}/mfc80kor.dll"
        )
283
    endif()
284

285 286 287
    if(MSVC90)
      if(CMAKE_INSTALL_DEBUG_LIBRARIES)
        set(MSVC90_MFC_DIR
288
          "${MSVC90_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC90.DebugMFC")
289
        set(__install__libs ${__install__libs}
Bill Hoffman's avatar
Bill Hoffman committed
290 291 292 293 294 295
          "${MSVC90_MFC_DIR}/Microsoft.VC90.DebugMFC.manifest"
          "${MSVC90_MFC_DIR}/mfc90d.dll"
          "${MSVC90_MFC_DIR}/mfc90ud.dll"
          "${MSVC90_MFC_DIR}/mfcm90d.dll"
          "${MSVC90_MFC_DIR}/mfcm90ud.dll"
          )
296
      endif()
297

298
      set(MSVC90_MFC_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFC")
Bill Hoffman's avatar
Bill Hoffman committed
299 300
      # Install the manifest that allows DLLs to be loaded from the
      # directory containing the executable.
301 302
      if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
        set(__install__libs ${__install__libs}
303 304 305 306 307 308
          "${MSVC90_MFC_DIR}/Microsoft.VC90.MFC.manifest"
          "${MSVC90_MFC_DIR}/mfc90.dll"
          "${MSVC90_MFC_DIR}/mfc90u.dll"
          "${MSVC90_MFC_DIR}/mfcm90.dll"
          "${MSVC90_MFC_DIR}/mfcm90u.dll"
          )
309
      endif()
310

Bill Hoffman's avatar
Bill Hoffman committed
311
      # include the language dll's for vs9 as well as the actuall dll's
312
      set(MSVC90_MFCLOC_DIR "${MSVC90_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC90.MFCLOC")
Bill Hoffman's avatar
Bill Hoffman committed
313 314
      # Install the manifest that allows DLLs to be loaded from the
      # directory containing the executable.
315
      set(__install__libs ${__install__libs}
Bill Hoffman's avatar
Bill Hoffman committed
316 317 318 319 320 321 322 323 324 325 326
        "${MSVC90_MFCLOC_DIR}/Microsoft.VC90.MFCLOC.manifest"
        "${MSVC90_MFCLOC_DIR}/mfc90chs.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90cht.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90enu.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90esp.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90deu.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90fra.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90ita.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90jpn.dll"
        "${MSVC90_MFCLOC_DIR}/mfc90kor.dll"
        )
327
    endif()
Bill Hoffman's avatar
Bill Hoffman committed
328

329 330
    macro(MFC_FILES_FOR_VERSION version)
      set(v "${version}")
331

332 333 334 335
      # Multi-Byte Character Set versions of MFC are available as optional
      # addon since Visual Studio 12.  So for version 12 or higher, check
      # whether they are available and exclude them if they are not.

336 337
      if(CMAKE_INSTALL_DEBUG_LIBRARIES)
        set(MSVC${v}_MFC_DIR
338
          "${MSVC${v}_REDIST_DIR}/Debug_NonRedist/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.DebugMFC")
339
        set(__install__libs ${__install__libs}
340 341
          "${MSVC${v}_MFC_DIR}/mfc${v}0ud.dll"
          "${MSVC${v}_MFC_DIR}/mfcm${v}0ud.dll"
342
          )
343
        if("${v}" LESS 12 OR EXISTS "${MSVC${v}_MFC_DIR}/mfc${v}0d.dll")
344 345 346 347 348
          set(__install__libs ${__install__libs}
            "${MSVC${v}_MFC_DIR}/mfc${v}0d.dll"
            "${MSVC${v}_MFC_DIR}/mfcm${v}0d.dll"
          )
        endif()
349
      endif()
350

351 352 353
      set(MSVC${v}_MFC_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFC")
      if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
        set(__install__libs ${__install__libs}
354 355
          "${MSVC${v}_MFC_DIR}/mfc${v}0u.dll"
          "${MSVC${v}_MFC_DIR}/mfcm${v}0u.dll"
356
          )
357
        if("${v}" LESS 12 OR EXISTS "${MSVC${v}_MFC_DIR}/mfc${v}0.dll")
358 359 360 361 362
          set(__install__libs ${__install__libs}
            "${MSVC${v}_MFC_DIR}/mfc${v}0.dll"
            "${MSVC${v}_MFC_DIR}/mfcm${v}0.dll"
          )
        endif()
363
      endif()
364

365
      # include the language dll's as well as the actuall dll's
366 367
      set(MSVC${v}_MFCLOC_DIR "${MSVC${v}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${v}0.MFCLOC")
      set(__install__libs ${__install__libs}
368 369 370
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0chs.dll"
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0cht.dll"
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0deu.dll"
371 372
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0enu.dll"
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0esn.dll"
373 374 375 376
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0fra.dll"
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0ita.dll"
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0jpn.dll"
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0kor.dll"
377
        "${MSVC${v}_MFCLOC_DIR}/mfc${v}0rus.dll"
378
        )
379
    endmacro()
380

381
    if(MSVC10)
382
      MFC_FILES_FOR_VERSION(10)
383
    endif()
384

385
    if(MSVC11)
386
      MFC_FILES_FOR_VERSION(11)
387
    endif()
388 389 390 391

    if(MSVC12)
      MFC_FILES_FOR_VERSION(12)
    endif()
392 393 394 395

    if(MSVC14)
      MFC_FILES_FOR_VERSION(14)
    endif()
396
  endif()
397

398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431
  # MSVC 8 was the first version with OpenMP
  # Furthermore, there is no debug version of this
  if(CMAKE_INSTALL_OPENMP_LIBRARIES)
    macro(OPENMP_FILES_FOR_VERSION version_a version_b)
      set(va "${version_a}")
      set(vb "${version_b}")
      set(MSVC${va}_OPENMP_DIR "${MSVC${va}_REDIST_DIR}/${CMAKE_MSVC_ARCH}/Microsoft.VC${vb}.OPENMP")

      if(NOT CMAKE_INSTALL_DEBUG_LIBRARIES_ONLY)
        set(__install__libs ${__install__libs}
          "${MSVC${va}_OPENMP_DIR}/vcomp${vb}.dll")
      endif()
    endmacro()

    if(MSVC80)
      OPENMP_FILES_FOR_VERSION(80 80)
    endif()
    if(MSVC90)
      OPENMP_FILES_FOR_VERSION(90 90)
    endif()
    if(MSVC10)
      OPENMP_FILES_FOR_VERSION(10 100)
    endif()
    if(MSVC11)
      OPENMP_FILES_FOR_VERSION(11 110)
    endif()
    if(MSVC12)
      OPENMP_FILES_FOR_VERSION(12 120)
    endif()
    if(MSVC14)
      OPENMP_FILES_FOR_VERSION(14 140)
    endif()
  endif()

432
  foreach(lib
433 434
      ${__install__libs}
      )
435 436
    if(EXISTS ${lib})
      set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
437
        ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
438
    else()
439 440
      if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
        message(WARNING "system runtime library file does not exist: '${lib}'")
441 442 443 444 445
        # This warning indicates an incomplete Visual Studio installation
        # or a bug somewhere above here in this file.
        # If you would like to avoid this warning, fix the real problem, or
        # set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
        # this file.
446
      endif()
447 448 449
    endif()
  endforeach()
endif()
450 451 452

if(WATCOM)
  get_filename_component( CompilerPath ${CMAKE_C_COMPILER} PATH )
453 454 455 456
  if(CMAKE_C_COMPILER_VERSION)
    set(_compiler_version ${CMAKE_C_COMPILER_VERSION})
  else()
    set(_compiler_version ${CMAKE_CXX_COMPILER_VERSION})
457
  endif()
458 459 460 461 462 463 464
  string(REGEX MATCHALL "[0-9]+" _watcom_version_list "${_compiler_version}")
  list(GET _watcom_version_list 0 _watcom_major)
  list(GET _watcom_version_list 1 _watcom_minor)
  set( __install__libs
    ${CompilerPath}/clbr${_watcom_major}${_watcom_minor}.dll
    ${CompilerPath}/mt7r${_watcom_major}${_watcom_minor}.dll
    ${CompilerPath}/plbr${_watcom_major}${_watcom_minor}.dll )
465
  foreach(lib
466 467
      ${__install__libs}
      )
468 469
    if(EXISTS ${lib})
      set(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS
470
        ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
471 472 473
    else()
      if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS)
        message(WARNING "system runtime library file does not exist: '${lib}'")
474 475 476 477 478
        # This warning indicates an incomplete Watcom installation
        # or a bug somewhere above here in this file.
        # If you would like to avoid this warning, fix the real problem, or
        # set CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS before including
        # this file.
479 480 481 482
      endif()
    endif()
  endforeach()
endif()
483 484


485
# Include system runtime libraries in the installation if any are
486
# specified by CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS.
487 488 489 490 491
if(CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS)
  if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP)
    if(NOT CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION)
      if(WIN32)
        set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION bin)
492
      else()
493
        set(CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION lib)
494 495
      endif()
    endif()
496 497 498 499
    if(CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT)
      set(_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT
        COMPONENT ${CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT})
    endif()
500
    install(PROGRAMS ${CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS}
501 502 503
      DESTINATION ${CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION}
      ${_CMAKE_INSTALL_SYSTEM_RUNTIME_COMPONENT}
      )
504 505
  endif()
endif()