Skip to content

[Feature] CMake Building and Packaging#114

Merged
MJC598 merged 10 commits intomainfrom
feature/cmake-building
Dec 1, 2025
Merged

[Feature] CMake Building and Packaging#114
MJC598 merged 10 commits intomainfrom
feature/cmake-building

Conversation

@MJC598
Copy link
Copy Markdown
Contributor

@MJC598 MJC598 commented Nov 26, 2025

This PR focuses on simplifying and streamlining the CMake/CPack building. The overall structure now follows the following key ideas:

  1. The "project/repo" is called "respond" and made up of 2 output targets: respond_model and respond_tests
  2. The CMake stipulates we use C++20
  3. The Version is controlled via the version.hpp file contained in include/respond/ and the minor version was bumped
  4. CMake Options for building the targets are controlled in options.cmake and CPack Options for packaging the targets are controlled in respondCPackOptions.cmake.in as a template
  5. The library itself is called respond_model and aliased to use the respond::respond_model namespace in CMake
  6. The public headers are now added as a FILE_SET
  7. Private dependencies are now controlled through a list and then correspondingly linked via target_link_libraries
  8. Paths were corrected for installs so that everything is now installed to ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/ and then cmake files are installed to cmake/respond where the library is installed to respond and the headers are installed to include
  9. A basic package version file is created from the version and packaged with the cmake files
  10. The respondCPackOptions.cmake.in template builds RPM and Debian details. This will need to be extended for Windows and Mac
  11. CMakePresets.json saw a new generator added to the packaging flow (debian)

@MJC598 MJC598 self-assigned this Nov 26, 2025
@MJC598 MJC598 requested review from a team and ddbaptiste as code owners November 26, 2025 15:52
@MJC598 MJC598 added the enhancement New feature or request label Nov 26, 2025
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread README.md Outdated
Comment thread cmake/respondConfig.cmake Outdated
Comment thread tests/src/respond_test.cpp Outdated
Comment thread tests/CMakeLists.txt
MJC598 and others added 3 commits December 1, 2025 12:25
Co-authored-by: Dimitri Baptiste <55843498+ddbaptiste@users.noreply.github.com>
@MJC598 MJC598 requested a review from ddbaptiste December 1, 2025 18:34
Copy link
Copy Markdown
Member

@ddbaptiste ddbaptiste left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting a fix for the text cut off in the README.

Comment thread README.md Outdated
@MJC598 MJC598 merged commit 6095dd1 into main Dec 1, 2025
4 checks passed
@MJC598 MJC598 deleted the feature/cmake-building branch December 1, 2025 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants