소스 검색

InstallRequiredSystemLibraries: Install OpenMP runtime libs (#15117)

Add option CMAKE_INSTALL_OPENMP_LIBRARIES to control the behavior.
Gregory Sharp 11 년 전
부모
커밋
bdb5007b17
1개의 변경된 파일36개의 추가작업 그리고 0개의 파일을 삭제
  1. 36 0
      Modules/InstallRequiredSystemLibraries.cmake

+ 36 - 0
Modules/InstallRequiredSystemLibraries.cmake

@@ -19,6 +19,8 @@
 # libraries are installed when both debug and release are available.  If
 # CMAKE_INSTALL_MFC_LIBRARIES is set then the MFC run time libraries are
 # installed as well as the CRT run time libraries.  If
+# CMAKE_INSTALL_OPENMP_LIBRARIES is set then the OpenMP run time libraries
+# are installed as well.  If
 # CMAKE_INSTALL_SYSTEM_RUNTIME_DESTINATION is set then the libraries are
 # installed to that directory rather than the default.  If
 # CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS is NOT set, then this
@@ -377,6 +379,40 @@ if(MSVC)
     endif()
   endif()
 
+  # 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()
+
   foreach(lib
       ${__install__libs}
       )