Explorar o código

ENH: Install system libraries only if project requires them

Andy Cedilnik %!s(int64=20) %!d(string=hai) anos
pai
achega
4077d6d80c
Modificáronse 3 ficheiros con 32 adicións e 30 borrados
  1. 3 0
      CMakeLists.txt
  2. 0 30
      Modules/CPack.cmake
  3. 29 0
      Modules/InstallRequiredSystemLibraries.cmake

+ 3 - 0
CMakeLists.txt

@@ -224,6 +224,9 @@ INCLUDE (${CMake_SOURCE_DIR}/Utilities/Release/Release.cmake)
 
 # If the cmake version includes cpack, use it
 IF(EXISTS "${CMAKE_ROOT}/Modules/CPack.cmake")
+  IF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake")
+    INCLUDE(InstallRequiredSystemLibraries)
+  ENDIF(EXISTS "${CMAKE_ROOT}/Modules/InstallRequiredSystemLibraries.cmake")
   SET(CPACK_PACKAGE_DESCRIPTION_SUMMARY "CMake is a build tool")
   SET(CPACK_PACKAGE_VENDOR "Kitware")
   SET(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Copyright.txt")

+ 0 - 30
Modules/CPack.cmake

@@ -65,36 +65,6 @@ ENDIF(NOT CPACK_GENERATOR)
 # Set some other variables
 SET(CPACK_BINARY_DIR "${CMAKE_BINARY_DIR}")
 
-# Hack for Visual Studio support
-# Search for system runtime libraries based on the platform.  This is
-# not complete because it is used only for the release process by the
-# developers.
-IF(NOT CPACK_DISABLE_EXTRA_MSVC_LIBRARIES)
-  IF(MSVC)
-    STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}")
-    FOREACH(lib
-        "${SYSTEMROOT}/system32/mfc71.dll"
-        "${SYSTEMROOT}/system32/msvcp71.dll"
-        "${SYSTEMROOT}/system32/msvcr71.dll"
-        )
-      IF(EXISTS ${lib})
-        SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS
-          ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
-      ENDIF(EXISTS ${lib})
-    ENDFOREACH(lib)
-  ENDIF(MSVC)
-ENDIF(NOT CPACK_DISABLE_EXTRA_MSVC_LIBRARIES)
-
-# Include system runtime libraries in the installation if any are
-# specified by CMake_INSTALL_SYSTEM_RUNTIME_LIBS.
-IF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
-  IF(WIN32)
-    INSTALL_PROGRAMS(/bin ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
-  ELSE(WIN32)
-    INSTALL_PROGRAMS(/lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
-  ENDIF(WIN32)
-ENDIF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
-
 SET(_CPACK_UNUSED_VARIABLES_)
 GET_CMAKE_PROPERTY(res VARIABLES)
 FOREACH(var ${res})

+ 29 - 0
Modules/InstallRequiredSystemLibraries.cmake

@@ -0,0 +1,29 @@
+# Hack for Visual Studio support
+# Search for system runtime libraries based on the platform.  This is
+# not complete because it is used only for the release process by the
+# developers.
+IF(MSVC)
+  STRING(REGEX REPLACE "\\\\" "/" SYSTEMROOT "$ENV{SYSTEMROOT}")
+  FOREACH(lib
+      "${SYSTEMROOT}/system32/mfc71.dll"
+      "${SYSTEMROOT}/system32/msvcp71.dll"
+      "${SYSTEMROOT}/system32/msvcr71.dll"
+      )
+    IF(EXISTS ${lib})
+      SET(CMake_INSTALL_SYSTEM_RUNTIME_LIBS
+        ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS} ${lib})
+    ENDIF(EXISTS ${lib})
+  ENDFOREACH(lib)
+ENDIF(MSVC)
+
+# Include system runtime libraries in the installation if any are
+# specified by CMake_INSTALL_SYSTEM_RUNTIME_LIBS.
+IF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
+  IF(WIN32)
+    INSTALL_PROGRAMS(/bin ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
+  ELSE(WIN32)
+    INSTALL_PROGRAMS(/lib ${CMake_INSTALL_SYSTEM_RUNTIME_LIBS})
+  ENDIF(WIN32)
+ENDIF(CMake_INSTALL_SYSTEM_RUNTIME_LIBS)
+
+