Debian package splits into common, debug and release.

This commit is contained in:
Kirill Kirilenko 2023-01-12 15:07:11 +03:00
parent 292a9b8751
commit 9d7075b4f0
2 changed files with 45 additions and 32 deletions

View file

@ -26,25 +26,29 @@ install(DIRECTORY
"${WEBRTC_SOURCE_DIR}/rtc_base" "${WEBRTC_SOURCE_DIR}/rtc_base"
"${WEBRTC_SOURCE_DIR}/system_wrappers" "${WEBRTC_SOURCE_DIR}/system_wrappers"
DESTINATION "include/webrtc" DESTINATION "include/webrtc"
COMPONENT common
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"
) )
if (EXISTS "${WEBRTC_SOURCE_DIR}/common_types.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 () endif ()
install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/jsoncpp" install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/jsoncpp"
DESTINATION "include/webrtc/third_party" DESTINATION "include/webrtc/third_party"
COMPONENT common
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"
) )
install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/libyuv" install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/libyuv"
DESTINATION "include/webrtc/third_party" DESTINATION "include/webrtc/third_party"
COMPONENT common
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"
) )
install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/abseil-cpp/absl" install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/abseil-cpp/absl"
DESTINATION "include/webrtc" DESTINATION "include/webrtc"
COMPONENT common
FILES_MATCHING PATTERN "*.h" FILES_MATCHING PATTERN "*.h"
) )
@ -52,7 +56,7 @@ install(DIRECTORY "${WEBRTC_SOURCE_DIR}/third_party/abseil-cpp/absl"
if (MSVC) if (MSVC)
# TODO: fix install on first run # TODO: fix install on first run
file(GLOB_RECURSE PDB_FILES "${WEBRTC_BUILD_DIR}/Debug/*.pdb") file(GLOB_RECURSE PDB_FILES "${WEBRTC_BUILD_DIR}/Debug/*.pdb")
install(FILES DESTINATION lib CONFIGURATIONS Debug) install(FILES DESTINATION lib COMPONENT debug)
endif() endif()
# Install library # Install library
@ -63,55 +67,64 @@ else()
set(LIBRARY_FILENAME_DEBUG "libwebrtcd.a") set(LIBRARY_FILENAME_DEBUG "libwebrtcd.a")
set(LIBRARY_FILENAME_RELEASE "libwebrtc.a") set(LIBRARY_FILENAME_RELEASE "libwebrtc.a")
endif() endif()
if (CMAKE_GENERATOR MATCHES "Visual Studio")
install(FILES ${WEBRTC_BUILD_DIR}/Debug/obj/webrtc.lib DESTINATION lib RENAME "webrtcd.lib" CONFIGURATIONS Debug) if (CMAKE_BUILD_TYPE STREQUAL "Debug")
install(FILES ${WEBRTC_BUILD_DIR}/Release/obj/webrtc.lib DESTINATION lib CONFIGURATIONS Release) 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 () else ()
if (CMAKE_BUILD_TYPE STREQUAL "Debug") if (WIN32)
if (WIN32) install(FILES ${WEBRTC_BUILD_DIR}/obj/webrtc.lib DESTINATION lib COMPONENT release)
install(FILES ${WEBRTC_BUILD_DIR}/obj/webrtc.lib DESTINATION lib RENAME "webrtcd.lib") else()
else() install(FILES ${WEBRTC_BUILD_DIR}/obj/libwebrtc.a DESTINATION lib COMPONENT release)
install(FILES ${WEBRTC_BUILD_DIR}/obj/libwebrtc.a DESTINATION lib RENAME "libwebrtcd.a") endif()
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 ()
endif () endif ()
install(FILES install(FILES
UseLibWebRTC.cmake UseLibWebRTC.cmake
${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCConfigVersion.cmake ${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCConfigVersion.cmake
${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCTargets.cmake ${CMAKE_CURRENT_BINARY_DIR}/LibWebRTCTargets.cmake
DESTINATION "lib/cmake/LibWebRTC" DESTINATION "lib/cmake/LibWebRTC"
COMPONENT common
) )
if (CMAKE_GENERATOR MATCHES "Visual Studio") if (CMAKE_BUILD_TYPE STREQUAL "Debug")
install(FILES LibWebRTCTargets-debug.cmake DESTINATION "lib/cmake/LibWebRTC" CONFIGURATIONS Debug) install(FILES LibWebRTCTargets-debug.cmake DESTINATION "lib/cmake/LibWebRTC" COMPONENT debug)
install(FILES LibWebRTCTargets-release.cmake DESTINATION "lib/cmake/LibWebRTC" CONFIGURATIONS Release)
else () else ()
if (CMAKE_BUILD_TYPE STREQUAL "Debug") install(FILES LibWebRTCTargets-release.cmake DESTINATION "lib/cmake/LibWebRTC" COMPONENT release)
install(FILES LibWebRTCTargets-debug.cmake DESTINATION "lib/cmake/LibWebRTC")
else ()
install(FILES LibWebRTCTargets-release.cmake DESTINATION "lib/cmake/LibWebRTC")
endif ()
endif () endif ()
if (BUILD_DEB_PACKAGE) if (BUILD_DEB_PACKAGE)
set(CPACK_GENERATOR "DEB") set(CPACK_GENERATOR "DEB")
set(CPACK_PACKAGE_NAME "libwebrtc-dev")
set(CPACK_PACKAGE_VENDOR "Kirill Kirilenko") set(CPACK_PACKAGE_VENDOR "Kirill Kirilenko")
set(CPACK_PACKAGE_CONTACT "Kirill Kirilenko <kirill@ultracoder.org>") set(CPACK_PACKAGE_CONTACT "Kirill Kirilenko <kirill@ultracoder.org>")
set(CPACK_PACKAGE_VERSION_MAJOR ${WEBRTC_VERSION}) set(CPACK_PACKAGE_VERSION_MAJOR ${WEBRTC_VERSION})
set(CPACK_PACKAGE_VERSION_MINOR "") set(CPACK_PACKAGE_VERSION_MINOR "")
set(CPACK_PACKAGE_VERSION_PATCH "") 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_HOMEPAGE_URL "https://github.com/UltraCoderRU/libwebrtc")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${WEBRTC_VERSION}") set(CPACK_DEBIAN_PACKAGE_SECTION "devel")
set(CPACK_DEBIAN_PACKAGE_DEPENDS "") 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) include(CPack)
endif () endif ()

View file

@ -35,7 +35,7 @@ fi
echo "Updating WebRTC to version ${WEBRTC_REVISION}..." echo "Updating WebRTC to version ${WEBRTC_REVISION}..."
cd ${REPO_ROOT}/webrtc/src cd ${REPO_ROOT}/webrtc/src
gclient sync --with_branch_heads gclient sync --with_branch_heads --reset
git fetch git fetch
git checkout -B ${WEBRTC_REVISION} branch-heads/${WEBRTC_REVISION} git checkout -B ${WEBRTC_REVISION} branch-heads/${WEBRTC_REVISION}
gclient sync --force -D gclient sync --force -D --reset