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  5a38fe2135c8f421e79027ff0f5d6525c6c4449f (commit)
       via  a6d9d783b45dcec84dd16b2fb0f0bef53c0b2487 (commit)
       via  bc8c0add7f799ad5775e4f229256832e17156b68 (commit)
      from  f80a4113e66cc5e83367af25c96faeaaa95d7a46 (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=5a38fe2135c8f421e79027ff0f5d6525c6c4449f
commit 5a38fe2135c8f421e79027ff0f5d6525c6c4449f
Merge: f80a411 a6d9d78
Author:     Domen Vrankar <domen.vran...@gmail.com>
AuthorDate: Thu Aug 25 13:17:28 2016 -0400
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Thu Aug 25 13:17:28 2016 -0400

    Merge topic 'cpack-rpm-debuginfo-pkg' into next
    
    a6d9d783 cpack-rpm-debuginfo
    bc8c0add CPack RPM debuginfo packages generation


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a6d9d783b45dcec84dd16b2fb0f0bef53c0b2487
commit a6d9d783b45dcec84dd16b2fb0f0bef53c0b2487
Author:     Domen Vrankar <domen.vran...@gmail.com>
AuthorDate: Thu Aug 25 18:35:42 2016 +0200
Commit:     Domen Vrankar <domen.vran...@gmail.com>
CommitDate: Thu Aug 25 18:36:09 2016 +0200

    cpack-rpm-debuginfo
    
    test and release notes

diff --git a/Help/release/dev/cpack-rpm-debuginfo-pkg.rst 
b/Help/release/dev/cpack-rpm-debuginfo-pkg.rst
new file mode 100644
index 0000000..f02a162
--- /dev/null
+++ b/Help/release/dev/cpack-rpm-debuginfo-pkg.rst
@@ -0,0 +1,6 @@
+cpack-rpm-debuginfo-pkg
+------------------
+
+* The :module:`CPackRPM` module learned to generate debuginfo
+  packages on demand. See :variable:`CPACK_RPM_DEBUGINFO_PACKAGE`
+  and its per component version.
diff --git a/Tests/RunCMake/CPack/DEBUGINFO.cmake 
b/Tests/RunCMake/CPack/DEBUGINFO.cmake
new file mode 100644
index 0000000..2a65b7f
--- /dev/null
+++ b/Tests/RunCMake/CPack/DEBUGINFO.cmake
@@ -0,0 +1,26 @@
+set(CMAKE_BUILD_WITH_INSTALL_RPATH 1)
+
+set(CPACK_RPM_COMPONENT_INSTALL "ON")
+
+set(CMAKE_BUILD_TYPE Debug)
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.hpp"
+    "int test_lib();\n")
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp"
+    "#include \"test_lib.hpp\"\nint test_lib() {return 0;}\n")
+add_library(test_lib SHARED "${CMAKE_CURRENT_BINARY_DIR}/test_lib.cpp")
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/main.cpp"
+    "#include \"test_lib.hpp\"\nint main() {return test_lib();}\n")
+add_executable(test_prog "${CMAKE_CURRENT_BINARY_DIR}/main.cpp")
+target_link_libraries(test_prog test_lib)
+
+install(TARGETS test_prog DESTINATION foo COMPONENT applications)
+install(FILES CMakeLists.txt DESTINATION bar COMPONENT headers)
+install(TARGETS test_lib DESTINATION bas COMPONENT libs)
+
+set(CPACK_RPM_APPLICATIONS_FILE_NAME "RPM-DEFAULT")
+set(CPACK_RPM_APPLICATIONS_DEBUGINFO_PACKAGE ON)
+set(CPACK_RPM_LIBS_DEBUGINFO_PACKAGE ON)
+
+set(CPACK_PACKAGE_NAME "debuginfo")
diff --git a/Tests/RunCMake/CPack/RPM/DEBUGINFO-ExpectedFiles.cmake 
b/Tests/RunCMake/CPack/RPM/DEBUGINFO-ExpectedFiles.cmake
new file mode 100644
index 0000000..265ca92
--- /dev/null
+++ b/Tests/RunCMake/CPack/RPM/DEBUGINFO-ExpectedFiles.cmake
@@ -0,0 +1,14 @@
+set(whitespaces_ "[\t\n\r ]*")
+
+set(EXPECTED_FILES_COUNT "5")
+set(EXPECTED_FILE_1 "debuginfo-applications-0*.rpm")
+set(EXPECTED_FILE_CONTENT_1 "^/usr/foo${whitespaces_}/usr/foo/test_prog$")
+set(EXPECTED_FILE_2 "debuginfo*-headers.rpm")
+set(EXPECTED_FILE_CONTENT_2 "^/usr/bar${whitespaces_}/usr/bar/CMakeLists.txt$")
+set(EXPECTED_FILE_3 "debuginfo*-libs.rpm")
+set(EXPECTED_FILE_CONTENT_3 "^/usr/bas${whitespaces_}/usr/bas/libtest_lib.so$")
+
+set(EXPECTED_FILE_4 "debuginfo-applications-debuginfo*.rpm")
+set(EXPECTED_FILE_CONTENT_4 ".*")
+set(EXPECTED_FILE_5 "debuginfo-libs-debuginfo*.rpm")
+set(EXPECTED_FILE_CONTENT_5 ".*")
diff --git a/Tests/RunCMake/CPack/RPM/DEBUGINFO-stderr.txt 
b/Tests/RunCMake/CPack/RPM/DEBUGINFO-stderr.txt
new file mode 100644
index 0000000..557ef3d
--- /dev/null
+++ b/Tests/RunCMake/CPack/RPM/DEBUGINFO-stderr.txt
@@ -0,0 +1,3 @@
+^CPackRPM: Will use GENERATED spec file: 
.*/Tests/RunCMake/RPM/CPack/DEBUGINFO-build/_CPack_Packages/.*/RPM/SPECS/debuginfo-applications.spec
+CPackRPM: Will use GENERATED spec file: 
.*/Tests/RunCMake/RPM/CPack/DEBUGINFO-build/_CPack_Packages/.*/RPM/SPECS/debuginfo-headers.spec
+CPackRPM: Will use GENERATED spec file: 
.*/Tests/RunCMake/RPM/CPack/DEBUGINFO-build/_CPack_Packages/.*/RPM/SPECS/debuginfo-libs.spec$
diff --git a/Tests/RunCMake/CPack/RunCMakeTest.cmake 
b/Tests/RunCMake/CPack/RunCMakeTest.cmake
index 59c52f8..44586d7 100644
--- a/Tests/RunCMake/CPack/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CPack/RunCMakeTest.cmake
@@ -16,3 +16,4 @@ run_cpack_test(RPM_DIST "RPM" false)
 run_cpack_test(INSTALL_SCRIPTS "RPM" false)
 run_cpack_test(DEB_GENERATE_SHLIBS "DEB" true)
 run_cpack_test(DEB_GENERATE_SHLIBS_LDCONFIG "DEB" true)
+run_cpack_test(DEBUGINFO "RPM" true)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=bc8c0add7f799ad5775e4f229256832e17156b68
commit bc8c0add7f799ad5775e4f229256832e17156b68
Author:     Istvan Bodnar <mail.bodnarist...@gmail.com>
AuthorDate: Mon Aug 22 23:40:15 2016 +0200
Commit:     Domen Vrankar <domen.vran...@gmail.com>
CommitDate: Thu Aug 25 18:36:09 2016 +0200

    CPack RPM debuginfo packages generation
    
    Added new variable to CPackRPM for debuginfo rpm package
    generation. Binaries will be checked for debug symbols.

diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake
index c195746..36caac6 100644
--- a/Modules/CPackRPM.cmake
+++ b/Modules/CPackRPM.cmake
@@ -60,6 +60,14 @@
 #  * Mandatory : YES
 #  * Default   : :variable:`CPACK_PACKAGE_DESCRIPTION_SUMMARY`
 #
+# .. variable:: CPACK_RPM_DEBUGINFO_PACKAGE
+#               CPACK_RPM_<component>_DEBUGINFO_PACKAGE
+#
+#  Option to additionally generate debuginfo RPM package(s).
+#
+#  * Mandatory : NO
+#  * Default   : OFF
+#
 # .. variable:: CPACK_RPM_PACKAGE_NAME
 #               CPACK_RPM_<component>_PACKAGE_NAME
 #
@@ -1236,6 +1244,30 @@ if(NOT UNIX)
   message(FATAL_ERROR "CPackRPM.cmake may only be used under UNIX.")
 endif()
 
+# We need to check if the binaries were compiled with debug symbols
+# because without them the package will be useless
+function(cpack_rpm_debugsymbol_check INSTALL_FILES WORKING_DIR)
+  # With objdump we should check the debug symbols
+  find_program(OBJDUMP_EXECUTABLE objdump)
+  if(NOT OBJDUMP_EXECUTABLE)
+    message(WARNING "CPackRPM: objdump binary could not be found!")
+  endif()
+
+  foreach(F IN LISTS INSTALL_FILES)
+    execute_process(COMMAND "${OBJDUMP_EXECUTABLE}" -h ${WORKING_DIR}/${F}
+                    WORKING_DIRECTORY "${CPACK_TOPLEVEL_DIRECTORY}"
+                    RESULT_VARIABLE OBJDUMP_EXEC_RESULT
+                    OUTPUT_VARIABLE OBJDUMP_OUT)
+    # Check that if the given file was executable or not
+    if(NOT OBJDUMP_EXEC_RESULT)
+      string(FIND "${OBJDUMP_OUT}" "debug" FIND_RESULT)
+      if(NOT FIND_RESULT GREATER -1)
+        message(WARNING "CPackRPM: File: ${F} does not contain debug symbols. 
They will possibly be missing from debuginfo package!")
+      endif()
+    endif()
+  endforeach()
+endfunction()
+
 function(cpack_rpm_variable_fallback OUTPUT_VAR_NAME)
   set(FALLBACK_VAR_NAMES ${ARGN})
 
@@ -1804,6 +1836,15 @@ function(cpack_rpm_generate_package)
       "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_USER_BINARY_SPECFILE")
   endif()
 
+  cpack_rpm_variable_fallback("CPACK_RPM_DEBUGINFO_PACKAGE"
+    "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_DEBUGINFO_PACKAGE"
+    "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_DEBUGINFO_PACKAGE"
+    "CPACK_RPM_DEBUGINFO_PACKAGE")
+  if(CPACK_RPM_DEBUGINFO_PACKAGE)
+    cpack_rpm_debugsymbol_check("${CPACK_ABSOLUTE_DESTINATION_FILES}" 
"${WDIR}")
+    set(TMP_RPM_DEBUGINFO "%debug_package")
+  endif()
+
   cpack_rpm_variable_fallback("CPACK_RPM_FILE_NAME"
     "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_FILE_NAME"
     "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT_UPPER}_FILE_NAME"
@@ -1824,7 +1865,9 @@ function(cpack_rpm_generate_package)
     # else example:
     #set(CPACK_RPM_FILE_NAME 
"${CPACK_RPM_PACKAGE_NAME}-${CPACK_RPM_PACKAGE_VERSION}-${CPACK_RPM_PACKAGE_RELEASE}-${CPACK_RPM_PACKAGE_ARCHITECTURE}.rpm")
 
-    set(FILE_NAME_DEFINE "%define _rpmfilename ${CPACK_RPM_FILE_NAME}")
+    if(NOT CPACK_RPM_DEBUGINFO_PACKAGE)
+      set(FILE_NAME_DEFINE "%define _rpmfilename ${CPACK_RPM_FILE_NAME}")
+    endif()
   endif()
 
   # We should generate a USER spec file template:
@@ -1856,6 +1899,8 @@ Vendor:         \@CPACK_RPM_PACKAGE_VENDOR\@
 \@TMP_RPM_BUILDARCH\@
 \@TMP_RPM_PREFIXES\@
 
+\@TMP_RPM_DEBUGINFO\@
+
 %define _rpmdir \@CPACK_RPM_DIRECTORY\@
 \@FILE_NAME_DEFINE\@
 %define _unpackaged_files_terminate_build 0
@@ -1911,7 +1956,7 @@ mv \"\@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot\" 
$RPM_BUILD_ROOT
     # The generated file may then be used as a template by user who wants
     # to customize their own spec file.
     if(CPACK_RPM_GENERATE_USER_BINARY_SPECFILE_TEMPLATE)
-       message(FATAL_ERROR "CPackRPM: STOP here Generated USER binary spec 
file templare is: ${CPACK_RPM_BINARY_SPECFILE}.in")
+      message(FATAL_ERROR "CPackRPM: STOP here Generated USER binary spec file 
template is: ${CPACK_RPM_BINARY_SPECFILE}.in")
     endif()
   endif()
 
@@ -1968,6 +2013,22 @@ mv \"\@CPACK_TOPLEVEL_DIRECTORY\@/tmpBBroot\" 
$RPM_BUILD_ROOT
     message(FATAL_ERROR "RPM package was not generated! 
${CPACK_RPM_DIRECTORY}")
   endif()
 
+  if(CPACK_RPM_DEBUGINFO_PACKAGE AND NOT CPACK_RPM_FILE_NAME STREQUAL 
"RPM-DEFAULT")
+    string(TOLOWER 
"${CPACK_RPM_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}.*\\.rpm" EXPECTED_FILENAME)
+
+    foreach(F IN LISTS GENERATED_FILES)
+      if(F MATCHES ".*/${EXPECTED_FILENAME}")
+        get_filename_component(FILE_PATH "${F}" DIRECTORY)
+        file(RENAME "${F}" "${FILE_PATH}/${CPACK_RPM_FILE_NAME}")
+        list(APPEND new_files_list_ "${FILE_PATH}/${CPACK_RPM_FILE_NAME}")
+      else()
+        list(APPEND new_files_list_ "${F}")
+      endif()
+    endforeach()
+
+    set(GENERATED_FILES "${new_files_list_}")
+  endif()
+
   set(GEN_CPACK_OUTPUT_FILES "${GENERATED_FILES}" PARENT_SCOPE)
 
   if(CPACK_RPM_PACKAGE_DEBUG)

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

Summary of changes:
 Help/release/dev/cpack-rpm-debuginfo-pkg.rst       |    6 ++
 Modules/CPackRPM.cmake                             |   65 +++++++++++++++++++-
 .../CPack/{DEPENDENCIES.cmake => DEBUGINFO.cmake}  |   12 +++-
 .../CPack/RPM/DEBUGINFO-ExpectedFiles.cmake        |   14 +++++
 Tests/RunCMake/CPack/RPM/DEBUGINFO-stderr.txt      |    3 +
 Tests/RunCMake/CPack/RunCMakeTest.cmake            |    1 +
 6 files changed, 96 insertions(+), 5 deletions(-)
 create mode 100644 Help/release/dev/cpack-rpm-debuginfo-pkg.rst
 copy Tests/RunCMake/CPack/{DEPENDENCIES.cmake => DEBUGINFO.cmake} (74%)
 create mode 100644 Tests/RunCMake/CPack/RPM/DEBUGINFO-ExpectedFiles.cmake
 create mode 100644 Tests/RunCMake/CPack/RPM/DEBUGINFO-stderr.txt


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to