[Cmake-commits] CMake branch, next, updated. v3.5.2-1344-g9290f54

Domen Vrankar domen.vrankar at gmail.com
Thu May 12 06:07:03 EDT 2016


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  9290f549e872b96132a923bb27049b5e4886db87 (commit)
       via  65040327e2179963a97ed3e9e62e2b77b9e639d3 (commit)
       via  5c33a7024e5a04c0432e5f35acdc57253358cb37 (commit)
      from  232917e9e311ef44e472aa8b72bb4468f170e9e7 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9290f549e872b96132a923bb27049b5e4886db87
commit 9290f549e872b96132a923bb27049b5e4886db87
Merge: 232917e 6504032
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Thu May 12 06:07:02 2016 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu May 12 06:07:02 2016 -0400

    Merge topic 'cpack-deb-improvements' into next
    
    65040327 fixup! CPack/Deb test changes due to breaking changes
    5c33a702 fixup! CPack/Deb generation of DEBIAN/shlibs control file


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=65040327e2179963a97ed3e9e62e2b77b9e639d3
commit 65040327e2179963a97ed3e9e62e2b77b9e639d3
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Thu May 12 12:05:42 2016 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Thu May 12 12:05:42 2016 +0200

    fixup! CPack/Deb test changes due to breaking changes
    
    Print out extra error info if shlibs file is expected
    but missing

diff --git a/Tests/RunCMake/CPack/DEB/Helpers.cmake b/Tests/RunCMake/CPack/DEB/Helpers.cmake
index 82dbd15..d05f115 100644
--- a/Tests/RunCMake/CPack/DEB/Helpers.cmake
+++ b/Tests/RunCMake/CPack/DEB/Helpers.cmake
@@ -1,7 +1,7 @@
 set(ALL_FILES_GLOB "*.deb")
 
 function(getPackageContent FILE RESULT_VAR)
-  execute_process(COMMAND ${DPKG_EXECUTABLE} -c ${FILE}
+  execute_process(COMMAND ${DPKG_EXECUTABLE} -c "${FILE}"
           OUTPUT_VARIABLE package_content_
           ERROR_QUIET
           OUTPUT_STRIP_TRAILING_WHITESPACE)
@@ -9,8 +9,73 @@ function(getPackageContent FILE RESULT_VAR)
   set(${RESULT_VAR} "${package_content_}" PARENT_SCOPE)
 endfunction()
 
+function(getMissingShlibsErrorExtra FILE RESULT_VAR)
+    execute_process(COMMAND ${DPKG_EXECUTABLE} -x "${FILE}" data_${PREFIX}
+            ERROR_VARIABLE err_)
+
+    if(err_)
+      set(error_extra " Extra: Could not unpack package content: '${err}'")
+    else()
+      cmake_policy(PUSH)
+        # Tell file(GLOB_RECURSE) not to follow directory symlinks
+        # even if the project does not set this policy to NEW.
+        cmake_policy(SET CMP0009 NEW)
+        file(GLOB_RECURSE FILE_PATHS_ LIST_DIRECTORIES false "${CMAKE_CURRENT_BINARY_DIR}/data_${PREFIX}/*")
+      cmake_policy(POP)
+
+      # get file info so that we can determine if file is executable or not
+      foreach(FILE_ IN LISTS FILE_PATHS_)
+        execute_process(COMMAND file "${FILE_}"
+          WORKING_DIRECTORY "${WDIR}"
+          OUTPUT_VARIABLE INSTALL_FILE_
+          ERROR_VARIABLE err_)
+
+        if(NOT err_)
+          list(APPEND deb_install_files "${INSTALL_FILE_}")
+        else()
+          list(APPEND deb_install_files_errors "'${FILE_}': '${err_}'\n")
+        endif()
+      endforeach()
+
+      set(error_extra " Extra: install files '${deb_install_files}'")
+
+      if(deb_install_files_errors)
+        set(error_extra "${error_extra}; errors \"${deb_install_files_errors}\"")
+      endif()
+
+      find_program(READELF_EXECUTABLE NAMES readelf)
+
+      if(READELF_EXECUTABLE)
+        set(error_extra "${error_extra}; readelf \"\n")
+
+        # Only dynamically linked ELF files are included
+        # Extract only file name infront of ":"
+        foreach(_FILE IN LISTS deb_install_files)
+          if(_FILE MATCHES "ELF.*shared object")
+            string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
+
+            execute_process(COMMAND ${READELF_EXECUTABLE} -d "${CMAKE_MATCH_1}"
+              WORKING_DIRECTORY "${CPACK_TEMPORARY_DIRECTORY}"
+              RESULT_VARIABLE result
+              OUTPUT_VARIABLE output
+              ERROR_VARIABLE err_
+              OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+            set(error_extra "${error_extra} name '${CMAKE_MATCH_1}'\n result '${result}'\n output '${output}'\n error '${err_}'\n")
+          endif()
+        endforeach()
+
+        set(error_extra "${error_extra}\"")
+      else()
+        set(error_extra "${error_extra}; error readelf missing")
+      endif()
+    endif()
+
+    set(${RESULT_VAR} "${error_extra}" PARENT_SCOPE)
+endfunction()
+
 function(verifyDebControl FILE PREFIX VERIFY_FILES)
-  execute_process(COMMAND ${DPKG_EXECUTABLE} --control ${FILE} control_${PREFIX}
+  execute_process(COMMAND ${DPKG_EXECUTABLE} --control "${FILE}" control_${PREFIX}
           ERROR_VARIABLE err_)
 
   if(err_)
@@ -20,7 +85,11 @@ function(verifyDebControl FILE PREFIX VERIFY_FILES)
 
   foreach(FILE_ IN LISTS VERIFY_FILES)
     if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/control_${PREFIX}/${FILE_}")
-      message(FATAL_ERROR "Expected Debian control file does not exist: '${FILE_}'")
+      if(FILE_ STREQUAL "shlibs")
+        getMissingShlibsErrorExtra("${FILE}" error_extra)
+      endif()
+
+      message(FATAL_ERROR "Expected Debian control file does not exist: '${FILE_}'${error_extra}")
     endif()
 
     file(READ "${CMAKE_CURRENT_BINARY_DIR}/control_${PREFIX}/${FILE_}" content_)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5c33a7024e5a04c0432e5f35acdc57253358cb37
commit 5c33a7024e5a04c0432e5f35acdc57253358cb37
Author:     Domen Vrankar <domen.vrankar at gmail.com>
AuthorDate: Thu May 12 12:04:17 2016 +0200
Commit:     Domen Vrankar <domen.vrankar at gmail.com>
CommitDate: Thu May 12 12:04:17 2016 +0200

    fixup! CPack/Deb generation of DEBIAN/shlibs control file
    
    Added some quotes to potential error locations

diff --git a/Modules/CPackDeb.cmake b/Modules/CPackDeb.cmake
index a923f29..0711238 100644
--- a/Modules/CPackDeb.cmake
+++ b/Modules/CPackDeb.cmake
@@ -542,15 +542,15 @@ function(cpack_deb_prepare_package_vars)
 
     # Only dynamically linked ELF files are included
     # Extract only file name infront of ":"
-    foreach(_FILE ${CPACK_DEB_INSTALL_FILES})
-      if( ${_FILE} MATCHES "ELF.*dynamically linked")
+    foreach(_FILE IN LISTS CPACK_DEB_INSTALL_FILES)
+      if(_FILE MATCHES "ELF.*dynamically linked")
         string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
         list(APPEND CPACK_DEB_BINARY_FILES "${CMAKE_MATCH_1}")
         set(CONTAINS_EXECUTABLE_FILES_ TRUE)
       endif()
-      if( ${_FILE} MATCHES "ELF.*shared object")
-        string(REGEX MATCH "(^.*):" _FILE_NAME ${_FILE})
-        list(APPEND CPACK_DEB_SHARED_OBJECT_FILES ${CMAKE_MATCH_1})
+      if(_FILE MATCHES "ELF.*shared object")
+        string(REGEX MATCH "(^.*):" _FILE_NAME "${_FILE}")
+        list(APPEND CPACK_DEB_SHARED_OBJECT_FILES "${CMAKE_MATCH_1}")
       endif()
     endforeach()
   endif()
@@ -830,8 +830,8 @@ function(cpack_deb_prepare_package_vars)
 
   if(CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS)
     if(READELF_EXECUTABLE)
-      foreach(_FILE ${CPACK_DEB_SHARED_OBJECT_FILES})
-        extract_so_info(${_FILE} libname soversion)
+      foreach(_FILE IN LISTS CPACK_DEB_SHARED_OBJECT_FILES)
+        extract_so_info("${_FILE}" libname soversion)
         if(libname AND soversion)
           list(APPEND CPACK_DEBIAN_PACKAGE_SHLIBS_LIST
                "${libname} ${soversion} ${CPACK_DEBIAN_PACKAGE_NAME} (${CPACK_DEBIAN_PACKAGE_GENERATE_SHLIBS_POLICY} ${CPACK_PACKAGE_VERSION})")

-----------------------------------------------------------------------

Summary of changes:
 Modules/CPackDeb.cmake                 |   14 +++---
 Tests/RunCMake/CPack/DEB/Helpers.cmake |   75 ++++++++++++++++++++++++++++++--
 2 files changed, 79 insertions(+), 10 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list