Просмотр исходного кода

Merge topic 'cpack-not-running-tests'

7c103be8 CPack: Enable DEB and RPM tests more reliably
Brad King 10 лет назад
Родитель
Сommit
a5bab6e1a4
3 измененных файлов с 25 добавлено и 23 удалено
  1. 3 4
      Modules/CPackRPM.cmake
  2. 21 19
      Tests/CMakeLists.txt
  3. 1 0
      Tests/CPackComponentsPrefix/CMakeLists.txt

+ 3 - 4
Modules/CPackRPM.cmake

@@ -1197,18 +1197,17 @@ function(cpack_rpm_generate_package)
      set(CPACK_RPM_COMPRESSION_TYPE_TMP "")
   endif()
 
-  if(CPACK_PACKAGE_RELOCATABLE)
-    set(CPACK_RPM_PACKAGE_RELOCATABLE TRUE)
-  endif()
-  if(CPACK_RPM_PACKAGE_RELOCATABLE)
+  if(CPACK_PACKAGE_RELOCATABLE OR CPACK_RPM_PACKAGE_RELOCATABLE)
     if(CPACK_RPM_PACKAGE_DEBUG)
       message("CPackRPM:Debug: Trying to build a relocatable package")
     endif()
     if(CPACK_SET_DESTDIR AND (NOT CPACK_SET_DESTDIR STREQUAL "I_ON"))
       message("CPackRPM:Warning: CPACK_SET_DESTDIR is set (=${CPACK_SET_DESTDIR}) while requesting a relocatable package (CPACK_RPM_PACKAGE_RELOCATABLE is set): this is not supported, the package won't be relocatable.")
+      set(CPACK_RPM_PACKAGE_RELOCATABLE FALSE)
     else()
       set(CPACK_RPM_PACKAGE_PREFIX ${CPACK_PACKAGING_INSTALL_PREFIX}) # kept for back compatibility (provided external RPM spec files)
       cpack_rpm_prepare_relocation_paths()
+      set(CPACK_RPM_PACKAGE_RELOCATABLE TRUE)
     endif()
   endif()
 

+ 21 - 19
Tests/CMakeLists.txt

@@ -112,6 +112,22 @@ if(BUILD_TESTING)
     set(RPMBUILD_EXECUTABLE "RPMBUILD_EXECUTABLE-NOTFOUND")
   endif()
 
+  if(RPMBUILD_EXECUTABLE)
+    set(CPACK_BINARY_RPM ON)
+  else()
+    set(CPACK_BINARY_RPM OFF)
+  endif()
+
+  # Look for rpmbuild to use for tests.
+  # The tool does not work with spaces in the path.
+  find_program(DPKG_EXECUTABLE NAMES dpkg)
+
+  if(DPKG_EXECUTABLE)
+    set(CPACK_BINARY_DEB ON)
+  else()
+    set(CPACK_BINARY_DEB OFF)
+  endif()
+
   #---------------------------------------------------------------------------
   # Add tests below here.
 
@@ -865,11 +881,6 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
   set(CTEST_RUN_CPackComponentsForAll ${CTEST_TEST_CPACK})
   set(CTEST_RUN_CPackComponentsPrefix ${CTEST_TEST_CPACK})
 
-  # Do not try to build RPM
-  if (NOT RPMBUILD_EXECUTABLE)
-    set(CPACK_BINARY_RPM OFF)
-  endif()
-
   find_program(NSIS_MAKENSIS_EXECUTABLE NAMES makensis
     PATHS [HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS]
     DOC "makensis program location"
@@ -948,13 +959,12 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
   if(CTEST_RUN_CPackComponentsForAll)
     # Check whether if rpmbuild command is found
     # before adding RPM tests
-    if(RPMBUILD_EXECUTABLE)
+    if(CPACK_BINARY_RPM)
       list(APPEND ACTIVE_CPACK_GENERATORS RPM)
     endif()
     # Check whether if dpkg command is found
     # before adding DEB tests
-    find_program(DPKG_EXECUTABLE NAMES dpkg)
-    if(DPKG_EXECUTABLE)
+    if(CPACK_BINARY_DEB)
       list(APPEND ACTIVE_CPACK_GENERATORS DEB)
     endif()
 
@@ -962,17 +972,9 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
     # now contains the list of 'active generators'
     set(CPackComponentsForAll_BUILD_OPTIONS)
     # set up list of CPack generators
-    list(APPEND GENLST "ZIP")
+    list(APPEND ACTIVE_CPACK_GENERATORS "ZIP")
     if(APPLE)
-      list(APPEND GENLST "DragNDrop")
-    endif()
-    list(FIND ACTIVE_CPACK_GENERATORS "RPM" RPM_ACTIVE)
-    if (NOT ${RPM_ACTIVE} EQUAL -1)
-      list(APPEND GENLST "RPM")
-    endif()
-    list(FIND ACTIVE_CPACK_GENERATORS "DEB" DEB_ACTIVE)
-    if (NOT ${DEB_ACTIVE} EQUAL -1)
-      list(APPEND GENLST "DEB")
+      list(APPEND ACTIVE_CPACK_GENERATORS "DragNDrop")
     endif()
 
     # set up list of component packaging ways
@@ -980,7 +982,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
     list(APPEND CWAYLST "OnePackPerGroup")
     list(APPEND CWAYLST "IgnoreGroup")
     list(APPEND CWAYLST "AllInOne")
-    foreach(CPackGen ${GENLST})
+    foreach(CPackGen IN LISTS ACTIVE_CPACK_GENERATORS)
       set(CPackRun_CPackGen  "-DCPackGen=${CPackGen}")
       foreach(CPackComponentWay ${CWAYLST})
         set(CPackRun_CPackComponentWay "-DCPackComponentWay=${CPackComponentWay}")

+ 1 - 0
Tests/CPackComponentsPrefix/CMakeLists.txt

@@ -6,6 +6,7 @@ install(FILES file-runtime.txt
 install(FILES file-development.txt
         DESTINATION lib COMPONENT Development)
 
+set(CPACK_PACKAGE_CONTACT "None") # mandatory for DEB generator
 set(CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY 1)
 set(CPACK_COMPONENTS_ALL Development)
 set(CPACK_ARCHIVE_COMPONENT_INSTALL 1)