Skip to content

Commit c933146

Browse files
committed
1
1 parent 9eb5cdf commit c933146

File tree

6 files changed

+67
-11
lines changed

6 files changed

+67
-11
lines changed

.github/workflows/build-cpack-packages.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,13 @@ jobs:
107107
steps:
108108
- uses: actions/checkout@v4
109109

110+
- name: Install Docker
111+
run: |
112+
set -euo pipefail
113+
brew install colima docker
114+
colima start
115+
docker context use colima
116+
110117
- name: Build packages
111118
run: make build-package
112119

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
.vscode/
22
.zed
33
build/
4+
build-macos/
5+
**/build/
6+
**/build-macos/
47
scylla-rust-wrapper/target/
58
.idea/
69
cmake-build-debug/

CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@ option(CASS_USE_LIBUV "Use libuv" OFF)
5151

5252
set(CASS_CPP_STANDARD "11" CACHE STRING "C++ standard (11, 14, 17, etc.)")
5353

54+
# Component metadata used for macOS productbuild packages. Other platforms
55+
# ignore these values, so keep the defaults empty by default.
56+
set(SCYLLA_DRIVER_COMPONENT_NAME "scylla_cpp_driver")
57+
set(SCYLLA_DRIVER_COMPONENT_ARGS COMPONENT ${SCYLLA_DRIVER_COMPONENT_NAME})
58+
5459
if(CASS_BUILD_SHARED)
5560
set(BUILD_SHARED_LIBS ON)
5661
endif()
@@ -269,6 +274,14 @@ endif()
269274
set(CPACK_MONOLITHIC_INSTALL ON)
270275
set(CPACK_VERBATIM_VARIABLES ON)
271276

277+
set(CPACK_MONOLITHIC_INSTALL OFF)
278+
set(CPACK_COMPONENTS_ALL ${SCYLLA_DRIVER_COMPONENT_NAME})
279+
include(CPackComponent)
280+
cpack_add_component(${SCYLLA_DRIVER_COMPONENT_NAME}
281+
DISPLAY_NAME "Scylla C++ Driver"
282+
DESCRIPTION "Shared/static libraries, headers, and pkg-config metadata"
283+
REQUIRED)
284+
272285
if(WIN32)
273286
set(CPACK_GENERATOR "WIX")
274287
set(CPACK_PACKAGE_INSTALL_DIRECTORY "ScyllaDB\\Scylla CPP Driver")
@@ -285,6 +298,8 @@ elseif(APPLE)
285298
"${_CPACK_PACKAGE_NAME}-${PROJECT_VERSION_STRING}-macos")
286299
set(CPACK_PRODUCTBUILD_IDENTIFIER "com.scylladb.cpp-rust-driver")
287300
set(CPACK_PRODUCTBUILD_SIGNING_IDENTITY "")
301+
set(CPACK_PRODUCTBUILD_COMPONENT_INSTALL ON)
302+
288303
else()
289304
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
290305
set(CPACK_GENERATOR "DEB;RPM")

packaging/smoke-test-app/CMakeLists.txt

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,16 @@ if(DRIVER_LINK_OPTIONS)
131131
${DRIVER_LINK_OPTIONS})
132132
endif()
133133

134-
install(TARGETS scylla-cpp-driver-smoke-test DESTINATION bin)
134+
set(SMOKE_APP_COMPONENT_NAME "")
135+
set(SMOKE_APP_COMPONENT_ARGS "")
136+
if(APPLE)
137+
set(SMOKE_APP_COMPONENT_NAME "scylla_cpp_driver_smoke_app")
138+
set(SMOKE_APP_COMPONENT_ARGS COMPONENT ${SMOKE_APP_COMPONENT_NAME})
139+
endif()
140+
141+
install(TARGETS scylla-cpp-driver-smoke-test
142+
DESTINATION bin
143+
${SMOKE_APP_COMPONENT_ARGS})
135144

136145
#------------------------
137146
# Packaging (CPack)
@@ -156,11 +165,25 @@ if(WIN32)
156165
set(CPACK_WIX_UPGRADE_GUID "180C9F7E-8D90-40F1-A91E-9DE5DB451A80")
157166
elseif(APPLE)
158167
set(CPACK_GENERATOR "productbuild;DragNDrop")
159-
set(CPACK_RESOURCE_FILE_LICENSE "${CPP_DRIVER_ROOT}/LICENSE")
168+
configure_file(
169+
"${CPP_DRIVER_ROOT}/LICENSE"
170+
"${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt"
171+
COPYONLY)
172+
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt")
160173
set(CPACK_PACKAGE_FILE_NAME
161174
"scylla-cpp-driver-smoke-app-${PROJECT_VERSION_STRING}-macos")
162175
set(CPACK_PRODUCTBUILD_IDENTIFIER "com.scylladb.cpp-rust-driver.smoke-app")
163176
set(CPACK_PRODUCTBUILD_SIGNING_IDENTITY "")
177+
if(SMOKE_APP_COMPONENT_NAME)
178+
include(CPackComponent)
179+
set(CPACK_MONOLITHIC_INSTALL OFF)
180+
set(CPACK_COMPONENTS_ALL ${SMOKE_APP_COMPONENT_NAME})
181+
cpack_add_component(${SMOKE_APP_COMPONENT_NAME}
182+
DISPLAY_NAME "Smoke Test Binary"
183+
DESCRIPTION "CLI smoke test for installed driver packages"
184+
REQUIRED)
185+
set(CPACK_PRODUCTBUILD_COMPONENT_INSTALL ON)
186+
endif()
164187
else()
165188
set(CPACK_GENERATOR "DEB;RPM")
166189
set(CPACK_RESOURCE_FILE_LICENSE "${CPP_DRIVER_ROOT}/LICENSE")

packaging/smoke-test-app/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ package:
2929
install-pkg:
3030
set -euo pipefail; \
3131
shopt -s nullglob; \
32-
packages=($(BUILD_DIR)/scylla-cpp-driver-smoke-app-*-macos.pkg); \
32+
packages=($(BUILD_DIR)/scylla-cpp-driver-smoke-app-*-macos*.pkg); \
3333
if [ "$${#packages[@]}" -eq 0 ]; then \
3434
echo "No smoke-test productbuild packages produced"; \
3535
exit 1; \

scylla-rust-wrapper/CMakeLists.txt

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,35 +118,43 @@ endif()
118118
# Determine if the header should be installed
119119
if(CASS_INSTALL_HEADER)
120120
file(GLOB CASS_API_HEADER_FILES ${CASS_INCLUDE_DIR}/*.h)
121-
install(FILES ${CASS_API_HEADER_FILES} DESTINATION ${INSTALL_HEADER_DIR})
121+
install(FILES ${CASS_API_HEADER_FILES}
122+
DESTINATION ${INSTALL_HEADER_DIR}
123+
${SCYLLA_DRIVER_COMPONENT_ARGS})
122124
endif()
123125

124126
# Install the dynamic/shared library
125127
if(CASS_BUILD_SHARED)
126-
install(FILES $<TARGET_FILE:scylla-cpp-driver>
128+
install(FILES $<TARGET_FILE:scylla-cpp-driver>
127129
DESTINATION ${CMAKE_INSTALL_LIBDIR}
130+
${SCYLLA_DRIVER_COMPONENT_ARGS}
128131
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ WORLD_EXECUTE WORLD_READ)
129132
install(FILES ${CMAKE_BINARY_DIR}/${INSTALL_NAME_SHARED_SYMLINK_VERSION}
130-
DESTINATION ${CMAKE_INSTALL_LIBDIR})
133+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
134+
${SCYLLA_DRIVER_COMPONENT_ARGS})
131135
install(FILES ${CMAKE_BINARY_DIR}/${INSTALL_NAME_SHARED_SYMLINK_NO_VERSION}
132-
DESTINATION ${CMAKE_INSTALL_LIBDIR})
136+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
137+
${SCYLLA_DRIVER_COMPONENT_ARGS})
133138
if(CASS_INSTALL_PKG_CONFIG)
134139
if(PKG_CONFIG_FOUND)
135140
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scylla-cpp-driver.pc.in" "scylla-cpp-driver.pc" @ONLY)
136141
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/scylla-cpp-driver.pc"
137-
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
142+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
143+
${SCYLLA_DRIVER_COMPONENT_ARGS})
138144
endif()
139145
endif()
140146
endif()
141147

142148
if(CASS_BUILD_STATIC)
143-
install(FILES $<TARGET_FILE:scylla-cpp-driver_static>
144-
DESTINATION ${CMAKE_INSTALL_LIBDIR})
149+
install(FILES $<TARGET_FILE:scylla-cpp-driver_static>
150+
DESTINATION ${CMAKE_INSTALL_LIBDIR}
151+
${SCYLLA_DRIVER_COMPONENT_ARGS})
145152
if(CASS_INSTALL_PKG_CONFIG)
146153
if(PKG_CONFIG_FOUND)
147154
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/scylla-cpp-driver_static.pc.in" "scylla-cpp-driver_static.pc" @ONLY)
148155
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/scylla-cpp-driver_static.pc"
149-
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
156+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
157+
${SCYLLA_DRIVER_COMPONENT_ARGS})
150158
endif()
151159
endif()
152160
endif()

0 commit comments

Comments
 (0)