From 9d7075b4f07bfda779a61e4d8cf870b6d7bfd8af Mon Sep 17 00:00:00 2001 From: Kirill Kirilenko Date: Thu, 12 Jan 2023 15:07:11 +0300 Subject: [PATCH] Debian package splits into common, debug and release. --- libwebrtc/CMakeLists.txt | 73 +++++++++++++++++++++++----------------- sync.sh | 4 +-- 2 files changed, 45 insertions(+), 32 deletions(-) diff --git a/libwebrtc/CMakeLists.txt b/libwebrtc/CMakeLists.txt index c93574d..1e2316e 100644 --- a/libwebrtc/CMakeLists.txt +++ b/libwebrtc/CMakeLists.txt @@ -26,25 +26,29 @@ install(DIRECTORY "${WEBRTC_SOURCE_DIR}/rtc_base" "${WEBRTC_SOURCE_DIR}/system_wrappers" DESTINATION "include/webrtc" + COMPONENT common FILES_MATCHING PATTERN "*.h" ) if (EXISTS "${WEBRTC_SOURCE_DIR}/common_types.h") - install(FILES "${WEBRTC_SOURCE_DIR}/common_types.h" DESTINATION "include/webrtc") + install(FILES "${WEBRTC_SOURCE_DIR}/common_types.h" DESTINATION "include/webrtc" COMPONENT common) endif () install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/jsoncpp" DESTINATION "include/webrtc/third_party" + COMPONENT common FILES_MATCHING PATTERN "*.h" ) install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/libyuv" DESTINATION "include/webrtc/third_party" + COMPONENT common FILES_MATCHING PATTERN "*.h" ) install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/abseil-cpp/absl" DESTINATION "include/webrtc" + COMPONENT common FILES_MATCHING PATTERN "*.h" ) @@ -52,7 +56,7 @@ install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/abseil-cpp/absl" if (MSVC) # TODO: fix install on first run file(GLOB_RECURSE PDB_FILES "${WEBRTC_BUILD_DIR}/Debug/*.pdb") - install(FILES DESTINATION lib CONFIGURATIONS Debug) + install(FILES DESTINATION lib COMPONENT debug) endif() # Install library @@ -63,55 +67,64 @@ else() set(LIBRARY_FILENAME_DEBUG "libwebrtcd.a") set(LIBRARY_FILENAME_RELEASE "libwebrtc.a") endif() -if (CMAKE_GENERATOR MATCHES "Visual Studio") - install(FILES ${WEBRTC_BUILD_DIR}/Debug/obj/webrtc.lib DESTINATION lib RENAME "webrtcd.lib" CONFIGURATIONS Debug) - install(FILES ${WEBRTC_BUILD_DIR}/Release/obj/webrtc.lib DESTINATION lib CONFIGURATIONS Release) + +if (CMAKE_BUILD_TYPE STREQUAL "Debug") + if (WIN32) + install(FILES ${WEBRTC_BUILD_DIR}/obj/webrtc.lib DESTINATION lib RENAME "webrtcd.lib" COMPONENT debug) + else() + install(FILES ${WEBRTC_BUILD_DIR}/obj/libwebrtc.a DESTINATION lib RENAME "libwebrtcd.a" COMPONENT debug) + endif() else () - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - if (WIN32) - install(FILES ${WEBRTC_BUILD_DIR}/obj/webrtc.lib DESTINATION lib RENAME "webrtcd.lib") - else() - install(FILES ${WEBRTC_BUILD_DIR}/obj/libwebrtc.a DESTINATION lib RENAME "libwebrtcd.a") - endif() - else () - if (WIN32) - install(FILES ${WEBRTC_BUILD_DIR}/obj/webrtc.lib DESTINATION lib) - else() - install(FILES ${WEBRTC_BUILD_DIR}/obj/libwebrtc.a DESTINATION lib) - endif() - endif () + if (WIN32) + install(FILES ${WEBRTC_BUILD_DIR}/obj/webrtc.lib DESTINATION lib COMPONENT release) + else() + install(FILES ${WEBRTC_BUILD_DIR}/obj/libwebrtc.a DESTINATION lib COMPONENT release) + endif() endif () + install(FILES UseLibWebRTC.cmake ${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCConfigVersion.cmake ${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCTargets.cmake DESTINATION "lib/cmake/LibWebRTC" + COMPONENT common ) -if (CMAKE_GENERATOR MATCHES "Visual Studio") - install(FILES LibWebRTCTargets-debug.cmake DESTINATION "lib/cmake/LibWebRTC" CONFIGURATIONS Debug) - install(FILES LibWebRTCTargets-release.cmake DESTINATION "lib/cmake/LibWebRTC" CONFIGURATIONS Release) +if (CMAKE_BUILD_TYPE STREQUAL "Debug") + install(FILES LibWebRTCTargets-debug.cmake DESTINATION "lib/cmake/LibWebRTC" COMPONENT debug) else () - if (CMAKE_BUILD_TYPE STREQUAL "Debug") - install(FILES LibWebRTCTargets-debug.cmake DESTINATION "lib/cmake/LibWebRTC") - else () - install(FILES LibWebRTCTargets-release.cmake DESTINATION "lib/cmake/LibWebRTC") - endif () + install(FILES LibWebRTCTargets-release.cmake DESTINATION "lib/cmake/LibWebRTC" COMPONENT release) endif () if (BUILD_DEB_PACKAGE) set(CPACK_GENERATOR "DEB") - set(CPACK_PACKAGE_NAME "libwebrtc-dev") set(CPACK_PACKAGE_VENDOR "Kirill Kirilenko") set(CPACK_PACKAGE_CONTACT "Kirill Kirilenko ") set(CPACK_PACKAGE_VERSION_MAJOR ${WEBRTC_VERSION}) set(CPACK_PACKAGE_VERSION_MINOR "") set(CPACK_PACKAGE_VERSION_PATCH "") - set(CPACK_PACKAGE_DESCRIPTION "WebRTC static library and header files") set(CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/UltraCoderRU/libwebrtc") - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${WEBRTC_VERSION}") - set(CPACK_DEBIAN_PACKAGE_DEPENDS "") + set(CPACK_DEBIAN_PACKAGE_SECTION "devel") + set(CPACK_DEB_COMPONENT_INSTALL ON) + set(CPACK_DEBIAN_ENABLE_COMPONENT_DEPENDS ON) + + set(CPACK_DEBIAN_COMMON_PACKAGE_NAME "libwebrtc-common-dev") + set(CPACK_DEBIAN_COMMON_FILE_NAME "libwebrtc-common-dev-${WEBRTC_VERSION}.deb") + set(CPACK_DEBIAN_COMMON_DESCRIPTION "WebRTC header files and CMake modules") + + set(CPACK_DEBIAN_RELEASE_PACKAGE_NAME "libwebrtc-release-dev") + set(CPACK_DEBIAN_RELEASE_FILE_NAME "libwebrtc-release-dev-${WEBRTC_VERSION}.deb") + set(CPACK_DEBIAN_RELEASE_DESCRIPTION "WebRTC static library (release version)") + set(CPACK_DEBIAN_RELEASE_PACKAGE_DEPENDS "libwebrtc-common-dev (=${WEBRTC_VERSION})") + set(CPACK_DEBIAN_RELEASE_PACKAGE_PROVIDES "libwebrtc-dev") + + set(CPACK_DEBIAN_DEBUG_PACKAGE_NAME "libwebrtc-debug-dev") + set(CPACK_DEBIAN_DEBUG_FILE_NAME "libwebrtc-debug-dev-${WEBRTC_VERSION}.deb") + set(CPACK_DEBIAN_DEBUG_DESCRIPTION "WebRTC static library (debug version)") + set(CPACK_DEBIAN_DEBUG_PACKAGE_DEPENDS "libwebrtc-common-dev (=${WEBRTC_VERSION})") + set(CPACK_DEBIAN_DEBUG_PACKAGE_PROVIDES "libwebrtc-dev") + include(CPack) endif () diff --git a/sync.sh b/sync.sh index 4d57bb2..9a14d89 100755 --- a/sync.sh +++ b/sync.sh @@ -35,7 +35,7 @@ fi echo "Updating WebRTC to version ${WEBRTC_REVISION}..." cd ${REPO_ROOT}/webrtc/src -gclient sync --with_branch_heads +gclient sync --with_branch_heads --reset git fetch git checkout -B ${WEBRTC_REVISION} branch-heads/${WEBRTC_REVISION} -gclient sync --force -D +gclient sync --force -D --reset