Skip to content

Commit 2ec6302

Browse files
committed
Updated binary install package name to add process architecture and major OS version. This is required for identifying which OS has compiled the binary. For example, macOS 14 (Sonoma), Ubuntu 24 (Noble Numbat), CentOS Stream 10 (Coughlan)
1 parent 8599526 commit 2ec6302

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

CMakeLists.txt

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ MESSAGE( STATUS "CMAKE_SYSTEM_PROCESSOR: " ${CMAKE_SYSTEM_PROCESSOR} )
5151
MESSAGE( STATUS "CMAKE_HOST_SYSTEM_PROCESSOR: " ${CMAKE_HOST_SYSTEM_PROCESSOR} )
5252
MESSAGE( STATUS "CMAKE_SYSTEM_INFO_FILE: " ${CMAKE_SYSTEM_INFO_FILE} )
5353

54+
function(get_major_version VERSION_STRING OUTPUT_VARIABLE)
55+
string(REGEX MATCH "^([0-9]+)" MAJOR_VERSION ${VERSION_STRING})
56+
set(${OUTPUT_VARIABLE} "${CMAKE_MATCH_1}" PARENT_SCOPE)
57+
endfunction()
58+
5459
# Get OS name and version.
5560
include(GetOsReleaseInfo)
5661
if (WIN32)
@@ -61,13 +66,28 @@ if (WIN32)
6166
elseif (APPLE)
6267
# Get MacOS release info.
6368
GetOsReleaseInfo(MAC_RELEASE_NAME MAC_RELEASE_VER)
69+
70+
# MAC_RELEASE_NAME used to resolve to something like `macOS Catalina`. Now On Github's Action,
71+
# the output is `macOS Unknown`. If the code name of the OS is Unknown, it is better to remove it completely.
72+
# Replace ` Unknown` by ``.
73+
string(REPLACE " Unknown" " " MAC_RELEASE_NAME "${MAC_RELEASE_NAME}")
74+
75+
# Extract release MAJOR version
76+
get_major_version(${MAC_RELEASE_VER} MAC_RELEASE_VER_MAJOR)
77+
6478
MESSAGE( STATUS "MAC_RELEASE_NAME: " ${MAC_RELEASE_NAME} )
6579
MESSAGE( STATUS "MAC_RELEASE_VER: " ${MAC_RELEASE_VER} )
80+
MESSAGE( STATUS "MAC_RELEASE_VER_MAJOR: " ${MAC_RELEASE_VER_MAJOR} )
6681
elseif (UNIX)
6782
# Get Linux distribution info.
6883
GetOsReleaseInfo(LINUX_DIST_NAME LINUX_DIST_VER )
84+
85+
# Extract distribution MAJOR version
86+
get_major_version(${LINUX_DIST_VER} LINUX_DIST_VER_MAJOR)
87+
6988
MESSAGE( STATUS "LINUX_DIST_NAME: " ${LINUX_DIST_NAME} )
7089
MESSAGE( STATUS "LINUX_DIST_VER: " ${LINUX_DIST_VER} )
90+
MESSAGE( STATUS "LINUX_DIST_VER_MAJOR: " ${LINUX_DIST_VER_MAJOR} )
7191
endif()
7292

7393

@@ -283,8 +303,8 @@ elseif (APPLE)
283303
string(TOLOWER "${MAC_RELEASE_NAME}" MAC_RELEASE_NAME)
284304
string(REPLACE " " "." MAC_RELEASE_NAME "${MAC_RELEASE_NAME}")
285305

286-
# Updating the package filename to `bin2cpp-2.4.0-macos.catalina-x86_64.tar.gz`.
287-
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${MAC_RELEASE_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}")
306+
# Updating the package filename to `bin2cpp-2.4.0-macos.catalina.10-x86_64.tar.gz` or `bin2cpp-3.0.1-macos.14-arm64.tar.gz`.
307+
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${MAC_RELEASE_NAME}.${MAC_RELEASE_VER_MAJOR}-${CMAKE_HOST_SYSTEM_PROCESSOR}")
288308
elseif (UNIX)
289309
# Default package filename example : `bin2cpp-2.4.0-Linux.tar.gz`.
290310
#
@@ -297,8 +317,8 @@ elseif (UNIX)
297317
string(TOLOWER "${LINUX_DIST_NAME}" LINUX_DIST_NAME)
298318
string(REPLACE " " "." LINUX_DIST_NAME "${LINUX_DIST_NAME}")
299319

300-
# Updating the package filename to `bin2cpp-2.4.0-ubuntu-x86_64.tar.gz`.
301-
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${LINUX_DIST_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}")
320+
# Updating the package filename to `bin2cpp-3.0.1-ubuntu.24-x86_64.tar.gz` or `bin2cpp-3.0.1-centos.10-x86_64.tar.gz`.
321+
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION}-${LINUX_DIST_NAME}.${LINUX_DIST_VER_MAJOR}-${CMAKE_HOST_SYSTEM_PROCESSOR}")
302322
endif()
303323

304324

0 commit comments

Comments
 (0)