From b641a885d5a7a50f8a7aea12c33fae82daf9657e Mon Sep 17 00:00:00 2001 From: sithlord48 Date: Tue, 3 Dec 2024 21:21:07 -0500 Subject: [PATCH] refactor: rm cmake/Packaging.cmake, instead do the config_linux_name macro in place --- CMakeLists.txt | 1 - cmake/Packaging.cmake | 71 ------------------------------------------- deploy/CMakeLists.txt | 71 ++++++++++++++++++++++++++++++++++++++----- 3 files changed, 63 insertions(+), 80 deletions(-) delete mode 100644 cmake/Packaging.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index f6f16e725..19ac1e90d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,6 @@ set(BIN_TEMP_DIR ${PROJECT_BINARY_DIR}/temp/bin) include(cmake/Build.cmake) include(cmake/Libraries.cmake) -include(cmake/Packaging.cmake) include(GNUInstallDirs) diff --git a/cmake/Packaging.cmake b/cmake/Packaging.cmake deleted file mode 100644 index 74909ae9b..000000000 --- a/cmake/Packaging.cmake +++ /dev/null @@ -1,71 +0,0 @@ -# SPDX-FileCopyrightText: (C) 2024 Chris Rizzitello -# SPDX-FileCopyrightText: (C) 2012 - 2024 Symless Ltd. -# SPDX-FileCopyrightText: (C) 2009 - 2012 Nick Bolton -# SPDX-License-Identifier: MIT - -macro(configure_linux_package_name) - # Get Distro name information - if(EXISTS "/etc/os-release") - FILE(STRINGS "/etc/os-release" RELEASE_FILE_CONTENTS) - else() - message(FATAL_ERROR "Unable to read file /etc/os-release") - endif() - - foreach(LINE IN LISTS RELEASE_FILE_CONTENTS) - if( "${LINE}" MATCHES "^ID=") - string(REGEX REPLACE "^ID=" "" DISTRO_NAME ${LINE}) - string(REGEX REPLACE "\"" "" DISTRO_NAME ${DISTRO_NAME}) - message(DEBUG "Distro Name :${DISTRO_NAME}") - elseif( "${LINE}" MATCHES "^ID_LIKE=") - string(REGEX REPLACE "^ID_LIKE=" "" DISTRO_LIKE "${LINE}") - string(REGEX REPLACE "\"" "" DISTRO_LIKE ${DISTRO_LIKE}) - message(DEBUG "Distro Like :${DISTRO_LIKE}") - elseif( "${LINE}" MATCHES "^VERSION_CODENAME=") - string(REGEX REPLACE "^VERSION_CODENAME=" "" DISTRO_CODENAME "${LINE}") - string(REGEX REPLACE "\"" "" DISTRO_CODENAME "${DISTRO_CODENAME}") - message(DEBUG "Distro Codename:${DISTRO_CODENAME}") - elseif( "${LINE}" MATCHES "^VERSION_ID=") - string(REGEX REPLACE "^VERSION_ID=" "" DISTRO_VERSION_ID "${LINE}") - string(REGEX REPLACE "\"" "" DISTRO_VERSION_ID "${DISTRO_VERSION_ID}") - message(DEBUG "Distro VersionID:${DISTRO_VERSION_ID}") - endif() - endforeach() - - # Check if Debian-link - string(REGEX MATCH debian|buntu DEBTYPE "${DISTRO_LIKE}") - if((NOT ("${DEBTYPE}" STREQUAL "")) OR ("${DISTRO_NAME}" STREQUAL "debian")) - set(CPACK_GENERATOR "DEB") - endif() - - # Check if Rpm-like - string(REGEX MATCH suse|fedora|rhel RPMTYPE "${DISTRO_LIKE}") - string(REGEX MATCH fedora|suse|rhel RPMNAME "${DISTRO_NAME}") - if((NOT ("${RPMTYPE}" STREQUAL "")) OR (NOT ("${RPMNAME}" STREQUAL ""))) - set(CPACK_GENERATOR "RPM") - endif() - - # Disto specific name adjustments - if("${DISTRO_NAME}" STREQUAL "opensuse-tumbleweed") - set(DISTRO_NAME "opensuse") - set(DISTRO_CODENAME "tumbleweed") - elseif("${DISTRO_NAME}" STREQUAL "arch") - # Arch linux is rolling the version id reported is the date of last iso. - set(DISTRO_VERSION_ID "") - endif() - - # Determain the code name to be used if any - if(NOT "${DISTRO_VERSION_ID}" STREQUAL "") - set(CN_STRING "${DISTRO_VERSION_ID}-") - endif() - - if(NOT "${DISTRO_CODENAME}" STREQUAL "") - set(CN_STRING "${DISTRO_CODENAME}-") - endif() - - if("${DISTRO_NAME}" STREQUAL "") - set(DISTRO_NAME "linux") - endif() - - set(OS_STRING "${DISTRO_NAME}-${CN_STRING}${CMAKE_SYSTEM_PROCESSOR}") - -endmacro() diff --git a/deploy/CMakeLists.txt b/deploy/CMakeLists.txt index e50ebeee4..39846298f 100644 --- a/deploy/CMakeLists.txt +++ b/deploy/CMakeLists.txt @@ -80,7 +80,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows") set(CPACK_WIX_UI_DIALOG "${CMAKE_CURRENT_SOURCE_DIR}/wix-dialog.png") set(CPACK_WIX_MSM_FILE "${CMAKE_CURRENT_SOURCE_DIR}/Microsoft_VC142_CRT_x64.msm") - # Required Extra Extenstions list(APPEND CPACK_WIX_EXTENSIONS "WixToolset.Util.wixext" "WixToolset.Firewall.wixext") @@ -122,13 +121,69 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") set(CPACK_DMG_SLA_USE_RESOURCE_FILE_LICENSE ON) set(CPACK_GENERATOR "DragNDrop") elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - # Gather distro info - # This is used in package names - configure_linux_package_name() - # HACK: The GUI depends on the Qt6 QPA plugins package, but that's not picked - # up by shlibdeps on Ubuntu 22 (though not a problem on Ubuntu 24 and Debian - # 12), so we must add it manually. - set(CPACK_DEBIAN_PACKAGE_DEPENDS "qt6-qpa-plugins") + # Get Distro name information + if(EXISTS "/etc/os-release") + FILE(STRINGS "/etc/os-release" RELEASE_FILE_CONTENTS) + else() + message(FATAL_ERROR "Unable to read file /etc/os-release") + endif() + + foreach(LINE IN LISTS RELEASE_FILE_CONTENTS) + if( "${LINE}" MATCHES "^ID=") + string(REGEX REPLACE "^ID=" "" DISTRO_NAME ${LINE}) + string(REGEX REPLACE "\"" "" DISTRO_NAME ${DISTRO_NAME}) + message(DEBUG "Distro Name :${DISTRO_NAME}") + elseif( "${LINE}" MATCHES "^ID_LIKE=") + string(REGEX REPLACE "^ID_LIKE=" "" DISTRO_LIKE "${LINE}") + string(REGEX REPLACE "\"" "" DISTRO_LIKE ${DISTRO_LIKE}) + message(DEBUG "Distro Like :${DISTRO_LIKE}") + elseif( "${LINE}" MATCHES "^VERSION_CODENAME=") + string(REGEX REPLACE "^VERSION_CODENAME=" "" DISTRO_CODENAME "${LINE}") + string(REGEX REPLACE "\"" "" DISTRO_CODENAME "${DISTRO_CODENAME}") + message(DEBUG "Distro Codename:${DISTRO_CODENAME}") + elseif( "${LINE}" MATCHES "^VERSION_ID=") + string(REGEX REPLACE "^VERSION_ID=" "" DISTRO_VERSION_ID "${LINE}") + string(REGEX REPLACE "\"" "" DISTRO_VERSION_ID "${DISTRO_VERSION_ID}") + message(DEBUG "Distro VersionID:${DISTRO_VERSION_ID}") + endif() + endforeach() + + # Check if Debian-link + string(REGEX MATCH debian|buntu DEBTYPE "${DISTRO_LIKE}") + if((NOT ("${DEBTYPE}" STREQUAL "")) OR ("${DISTRO_NAME}" STREQUAL "debian")) + set(CPACK_GENERATOR "DEB") + endif() + + # Check if Rpm-like + string(REGEX MATCH suse|fedora|rhel RPMTYPE "${DISTRO_LIKE}") + string(REGEX MATCH fedora|suse|rhel RPMNAME "${DISTRO_NAME}") + if((NOT ("${RPMTYPE}" STREQUAL "")) OR (NOT ("${RPMNAME}" STREQUAL ""))) + set(CPACK_GENERATOR "RPM") + endif() + + # Disto specific name adjustments + if("${DISTRO_NAME}" STREQUAL "opensuse-tumbleweed") + set(DISTRO_NAME "opensuse") + set(DISTRO_CODENAME "tumbleweed") + elseif("${DISTRO_NAME}" STREQUAL "arch") + # Arch linux is rolling the version id reported is the date of last iso. + set(DISTRO_VERSION_ID "") + endif() + + # Determain the code name to be used if any + if(NOT "${DISTRO_VERSION_ID}" STREQUAL "") + set(CN_STRING "${DISTRO_VERSION_ID}-") + endif() + + if(NOT "${DISTRO_CODENAME}" STREQUAL "") + set(CN_STRING "${DISTRO_CODENAME}-") + endif() + + if("${DISTRO_NAME}" STREQUAL "") + set(DISTRO_NAME "linux") + endif() + + set(OS_STRING "${DISTRO_NAME}-${CN_STRING}${CMAKE_SYSTEM_PROCESSOR}") elseif(${CMAKE_SYSTEM_NAME} MATCHES "|.*BSD") message(STATUS "BSD packaging not yet supported") set(OS_STRING ${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR})