[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