Browse Source

ENH: Implemented support for installing VC8 runtime libraries.

Brad King 19 years ago
parent
commit
a40a17dcdd
1 changed files with 18 additions and 3 deletions
  1. 18 3
      Modules/InstallRequiredSystemLibraries.cmake

+ 18 - 3
Modules/InstallRequiredSystemLibraries.cmake

@@ -17,9 +17,20 @@ IF(MSVC)
       )
   ENDIF(MSVC71)
   IF(MSVC80)
+    # Find the runtime library redistribution directory.
+    FIND_PATH(MSVC80_REDIST_DIR NAMES x86/Microsoft.VC80.CRT/Microsoft.VC80.CRT.manifest
+      PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../VC/redist"
+      )
+    MARK_AS_ADVANCED(MSVC80_REDIST_DIR)
+    SET(MSVC80_CRT_DIR "${MSVC80_REDIST_DIR}/x86/Microsoft.VC80.CRT")
+
+    # Install the manifest that allows DLLs to be loaded from the
+    # directory containing the executable.
     SET(__install__libs
-      "${SYSTEMROOT}/system32/msvcp80.dll"
-      "${SYSTEMROOT}/system32/msvcr80.dll"
+      "${MSVC80_CRT_DIR}/Microsoft.VC80.CRT.manifest"
+      "${MSVC80_CRT_DIR}/msvcm80.dll"
+      "${MSVC80_CRT_DIR}/msvcp80.dll"
+      "${MSVC80_CRT_DIR}/msvcr80.dll"
       )
   ENDIF(MSVC80)
   IF(CMAKE_INSTALL_MFC_LIBRARIES)
@@ -34,8 +45,12 @@ IF(MSVC)
         )
     ENDIF(MSVC71)
     IF(MSVC80)
+      SET(MSVC80_MFC_DIR "${MSVC80_REDIST_DIR}/x86/Microsoft.VC80.MFC")
+      # Install the manifest that allows DLLs to be loaded from the
+      # directory containing the executable.
       SET(__install__libs ${__install__libs}
-        "${SYSTEMROOT}/system32/mfc80.dll"
+        "${MSVC80_MFC_DIR}/Microsoft.VC80.MFC.manifest"
+        "${MSVC80_MFC_DIR}/mfc80.dll"
         )
     ENDIF(MSVC80)
   ENDIF(CMAKE_INSTALL_MFC_LIBRARIES)