@@ -60,6 +60,8 @@ set(SCYLLA_DRIVER_COMPONENT_ARGS COMPONENT ${SCYLLA_DRIVER_COMPONENT_NAME})
6060# These must be set before add_subdirectory() calls so install commands can use them
6161set (SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME "${SCYLLA_DRIVER_COMPONENT_NAME} " )
6262set (SCYLLA_DRIVER_DEV_COMPONENT_NAME "${SCYLLA_DRIVER_COMPONENT_NAME} -dev" )
63+ string (TOUPPER "${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME} " SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME_UPPER)
64+ string (TOUPPER "${SCYLLA_DRIVER_DEV_COMPONENT_NAME} " SCYLLA_DRIVER_DEV_COMPONENT_NAME_UPPER)
6365
6466if (CASS_BUILD_SHARED)
6567 set (BUILD_SHARED_LIBS ON )
@@ -279,11 +281,49 @@ endif()
279281set (CPACK_MONOLITHIC_INSTALL ON )
280282set (CPACK_VERBATIM_VARIABLES ON )
281283
284+ # Normalize package output names so generated artifacts share a consistent
285+ # `scylla_cpp_driver_<version>_<platform>.{deb,rpm,pkg,msi}` pattern.
282286set (CPACK_MONOLITHIC_INSTALL OFF )
283287
288+ set (SCYLLA_DRIVER_ARTIFACT_BASE_NAME ${SCYLLA_DRIVER_COMPONENT_NAME} )
289+ set (_scylla_driver_system_processor "${CMAKE_SYSTEM_PROCESSOR} " )
290+
291+ set (SCYLLA_DRIVER_DEB_ARCH "${_scylla_driver_system_processor} " )
292+ set (SCYLLA_DRIVER_RPM_ARCH "${_scylla_driver_system_processor} " )
293+ set (SCYLLA_DRIVER_WIN_ARCH "${_scylla_driver_system_processor} " )
294+
295+ if (_scylla_driver_system_processor MATCHES "^(x86_64|AMD64)$" )
296+ set (SCYLLA_DRIVER_DEB_ARCH "amd64" )
297+ set (SCYLLA_DRIVER_RPM_ARCH "x86_64" )
298+ set (SCYLLA_DRIVER_WIN_ARCH "x64" )
299+ elseif (_scylla_driver_system_processor MATCHES "^(aarch64|ARM64)$" )
300+ set (SCYLLA_DRIVER_DEB_ARCH "arm64" )
301+ set (SCYLLA_DRIVER_RPM_ARCH "aarch64" )
302+ set (SCYLLA_DRIVER_WIN_ARCH "arm64" )
303+ endif ()
304+
305+ # Fall back to raw processor strings when no mapping exists.
306+ if (NOT SCYLLA_DRIVER_DEB_ARCH)
307+ set (SCYLLA_DRIVER_DEB_ARCH "${_scylla_driver_system_processor} " )
308+ endif ()
309+ if (NOT SCYLLA_DRIVER_RPM_ARCH)
310+ set (SCYLLA_DRIVER_RPM_ARCH "${_scylla_driver_system_processor} " )
311+ endif ()
312+ if (NOT SCYLLA_DRIVER_WIN_ARCH)
313+ set (SCYLLA_DRIVER_WIN_ARCH "${_scylla_driver_system_processor} " )
314+ endif ()
315+
316+ # Provide a default artifact name that individual generators can refine.
317+ set (CPACK_PACKAGE_FILE_NAME
318+ "${SCYLLA_DRIVER_ARTIFACT_BASE_NAME} _${PROJECT_VERSION_STRING} " )
319+
284320# Set the list of components for CPack
285321set (CPACK_COMPONENTS_ALL ${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME} ${SCYLLA_DRIVER_DEV_COMPONENT_NAME} )
286322
323+ # Ensure CPack emits one artifact per component instead of merging them into a
324+ # single bundle.
325+ set (CPACK_COMPONENTS_GROUPING IGNORE )
326+
287327include (CPackComponent)
288328
289329# Runtime component: shared libraries only
@@ -295,32 +335,38 @@ cpack_add_component(${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME}
295335# Dev component: headers, static libraries, pkg-config files, and development symlinks
296336cpack_add_component(${SCYLLA_DRIVER_DEV_COMPONENT_NAME}
297337 DISPLAY_NAME "Scylla C++ Driver Development"
298- DESCRIPTION "Headers, static libraries, and development files for the Scylla C++ Driver"
299- DEPENDS ${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME} )
338+ DESCRIPTION "Headers, static libraries, and development files for the Scylla C++ Driver" )
300339
301340if (WIN32 )
302341 set (CPACK_GENERATOR "WIX" )
303342 set (CPACK_PACKAGE_INSTALL_DIRECTORY "ScyllaDB\\ Scylla CPP Driver" )
304343 # Stable GUID keeps WiX upgrades working between versions
305344 set (CPACK_WIX_UPGRADE_GUID "3E09F4F4-1C4A-4B8B-973D-0CBA64D5E78F" )
345+ set (CPACK_PACKAGE_FILE_NAME
346+ "${SCYLLA_DRIVER_ARTIFACT_BASE_NAME} _${PROJECT_VERSION_STRING} _${SCYLLA_DRIVER_WIN_ARCH} " )
306347elseif (APPLE )
307348 configure_file (
308349 "${CMAKE_CURRENT_SOURCE_DIR} /LICENSE"
309350 "${CMAKE_CURRENT_BINARY_DIR} /LICENSE.txt"
310351 COPYONLY )
311352 set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR} /LICENSE.txt" )
312353 set (CPACK_GENERATOR "productbuild;DragNDrop" )
354+ set (CPACK_DMG_COMPONENT_INSTALL ON )
313355 set (CPACK_PACKAGE_FILE_NAME
314- "${_CPACK_PACKAGE_NAME} - ${PROJECT_VERSION_STRING} -macos " )
356+ "${SCYLLA_DRIVER_ARTIFACT_BASE_NAME} _ ${PROJECT_VERSION_STRING} _macos " )
315357 set (CPACK_PRODUCTBUILD_IDENTIFIER "com.scylladb.cpp-rs-driver" )
316358 set (CPACK_PRODUCTBUILD_SIGNING_IDENTITY "" )
317359 set (CPACK_PRODUCTBUILD_COMPONENT_INSTALL ON )
318360
319361else ()
320362 set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR} /LICENSE" )
321363 set (CPACK_GENERATOR "DEB;RPM" )
322- set (CPACK_PACKAGE_FILE_NAME
323- "${_CPACK_PACKAGE_NAME} -${PROJECT_VERSION_STRING} -${CMAKE_SYSTEM_NAME} " )
364+ set (CPACK_DEBIAN_PACKAGE_ARCHITECTURE "${SCYLLA_DRIVER_DEB_ARCH} " )
365+
366+ set (CPACK_DEBIAN_${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME_UPPER} _FILE_NAME
367+ "${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME} _${PROJECT_VERSION_STRING} _${SCYLLA_DRIVER_DEB_ARCH} .deb" )
368+ set (CPACK_DEBIAN_${SCYLLA_DRIVER_DEV_COMPONENT_NAME_UPPER} _FILE_NAME
369+ "${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _${PROJECT_VERSION_STRING} _${SCYLLA_DRIVER_DEB_ARCH} .deb" )
324370
325371 # DEB package configuration
326372 set (CPACK_DEB_COMPONENT_INSTALL ON )
@@ -331,20 +377,23 @@ else()
331377 set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON )
332378
333379 # DEB runtime package
334- set (CPACK_DEBIAN_${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME } _PACKAGE_NAME "${_CPACK_PACKAGE_NAME} " )
335- set (CPACK_DEBIAN_${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME } _PACKAGE_SECTION "libs" )
380+ set (CPACK_DEBIAN_${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME_UPPER } _PACKAGE_NAME "${_CPACK_PACKAGE_NAME} " )
381+ set (CPACK_DEBIAN_${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME_UPPER } _PACKAGE_SECTION "libs" )
336382
337383 # DEB dev package
338- set (CPACK_DEBIAN_${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _PACKAGE_NAME "${_CPACK_PACKAGE_NAME} -dev" )
339- set (CPACK_DEBIAN_${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _PACKAGE_SECTION "libdevel" )
340- set (CPACK_DEBIAN_${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _PACKAGE_DEPENDS "${_CPACK_PACKAGE_NAME} (= \$ {CPACK_DEBIAN_PACKAGE_VERSION})" )
384+ set (CPACK_DEBIAN_${SCYLLA_DRIVER_DEV_COMPONENT_NAME_UPPER} _PACKAGE_NAME "${_CPACK_PACKAGE_NAME} -dev" )
385+ set (CPACK_DEBIAN_${SCYLLA_DRIVER_DEV_COMPONENT_NAME_UPPER} _PACKAGE_SECTION "libdevel" )
341386
342387 # RPM package configuration
343388 set (CPACK_RPM_COMPONENT_INSTALL ON )
344389 set (CPACK_RPM_PACKAGE_LICENSE "Apache-2.0" )
345390 set (CPACK_RPM_PACKAGE_URL ${CPACK_PACKAGE_HOMEPAGE_URL} )
346391 set (CPACK_RPM_PACKAGE_RELEASE 1)
347392 set (CPACK_RPM_PACKAGE_GROUP "Applications/Databases" )
393+ set (CPACK_RPM_PACKAGE_ARCHITECTURE "${SCYLLA_DRIVER_RPM_ARCH} " )
394+
395+ set (CPACK_RPM_${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME} _FILE_NAME
396+ "${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME} _${PROJECT_VERSION_STRING} _${SCYLLA_DRIVER_RPM_ARCH} .rpm" )
348397
349398 # RPM runtime package
350399 set (CPACK_RPM_${SCYLLA_DRIVER_RUNTIME_COMPONENT_NAME} _PACKAGE_NAME "${_CPACK_PACKAGE_NAME} " )
@@ -353,7 +402,8 @@ else()
353402 # RPM dev package (devel suffix is standard for RPM)
354403 set (CPACK_RPM_${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _PACKAGE_NAME "${_CPACK_PACKAGE_NAME} -devel" )
355404 set (CPACK_RPM_${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _PACKAGE_GROUP "Development/Libraries" )
356- set (CPACK_RPM_${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _PACKAGE_REQUIRES "${_CPACK_PACKAGE_NAME} = ${PROJECT_VERSION_STRING} -${CPACK_RPM_PACKAGE_RELEASE} " )
405+ set (CPACK_RPM_${SCYLLA_DRIVER_DEV_COMPONENT_NAME} _FILE_NAME
406+ "${SCYLLA_DRIVER_COMPONENT_NAME} -devel_${PROJECT_VERSION_STRING} _${SCYLLA_DRIVER_RPM_ARCH} .rpm" )
357407endif ()
358408
359409include (CPack)
0 commit comments