Skip to content

Stage hello via cmake-utils and generate packages artifacts#4

Open
alexadereyko wants to merge 4 commits into
mainfrom
ci/staging
Open

Stage hello via cmake-utils and generate packages artifacts#4
alexadereyko wants to merge 4 commits into
mainfrom
ci/staging

Conversation

@alexadereyko

@alexadereyko alexadereyko commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adapt the hello test project into the debug/verification vehicle for the staging machinery — it must produce the same shapes openDAQ does (component stagings + native installers, a module built against a core staging).

Changes

  • Split into hello-core + hello-module. hello-core is a shared library that installs an exported find_package config; hello-module depends on it — mirroring core ↔ module.
  • HELLO_USE_INSTALLED_CORE flag. Off → core built in-tree (dev monolith); on → the module resolves hello-core via find_package from a staging on CMAKE_PREFIX_PATH (the build-against-staging path).
  • CPack components. Installs tagged core / module, so a build scopes its staging/installer to one component.
  • Staging via opendaq-cmake-utils. FetchContent of the packaging utils; the staging tarball + staging-meta.json come from opendaq_generate_package_name / opendaq_write_staging_meta.
  • Clean package names. Per-component archive/DEB filenames resolve to OPENDAQ_PACKAGE_NAME (no redundant -<component> suffix); the DEB maintainer is set.

@alexadereyko alexadereyko self-assigned this Jun 23, 2026
@alexadereyko alexadereyko force-pushed the ci/staging branch 5 times, most recently from 369e60c to 55e31f1 Compare June 24, 2026 13:21
Use opendaq-cmake-utils to generate the package name and write the
staging sidecar. Add a variable to enable 32-bit compilation on Linux.
module depends on core, so the build verifies compilation and linkage
against a core staging via find_package / CMAKE_PREFIX_PATH.
With the flag on, the root skips building core in-tree and the module
resolves hello-core via find_package from CMAKE_PREFIX_PATH; off keeps
the in-tree monolith.

The package name is overridden via OPENDAQ_PACKAGE_NAME_OVERRIDE;
otherwise it defaults to the lowercase project name.
Tag each project's install with COMPONENT core/module so a staging build
can scope the tarball to one component. The reusable's staging preset
turns on CPACK_ARCHIVE_COMPONENT_INSTALL and picks the component; the dev
umbrella stays monolithic. Per-component archive and DEB names resolve to
OPENDAQ_PACKAGE_NAME so the caller pairs an override with its component.
@alexadereyko alexadereyko changed the title Stage hello via cmake-utils and upload the staging artifact Stage hello via cmake-utils and generate packages artifacts Jun 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant