Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake cleanup #3183

Open
jwinarske opened this issue Jan 30, 2025 · 3 comments
Open

CMake cleanup #3183

jwinarske opened this issue Jan 30, 2025 · 3 comments
Labels
build Related to build, configuration or CI/CD linux

Comments

@jwinarske
Copy link
Contributor

Is your feature request related to a problem? Please describe.

The CMake support needs some cleanup/work

  • make it easier to read/maintain
  • leverage interface libraries
  • refactor to use cmake includes common to cmake folder
  • sanitizer support using https://github.com/arsenm/sanitizers-cmake
  • packaging support. tar.gz, dev. rpm
  • Linux shared/static libc++ link support

Describe the solution you'd like

I am willing to do the work

Describe alternatives you've considered

NA

Additional context

NA

Additional Context
Some of my CMake work:
https://github.com/jwinarske/waypp - owner
https://github.com/Bill-Gray/PDCursesMod - base implementation
https://github.com/ckormanyos/real-time-cpp - base implementation
https://github.com/meta-flutter/comp_surf_pbr - owner
https://github.com/toyota-connected/ivi-homescreen - owner

@louwers
Copy link
Collaborator

louwers commented Jan 30, 2025

The CMake build config can certainly use some love. Looking forward to see your improvements.

It would be great to make it easier to package the library for Linux. Although at the moment the C++ API does not have any stability guarantees, in fact it is not even versioned.

I'm personally not in favor of putting all CMake includes in one directory. Build files related to specific platforms should contain their own build config to allow for better separation of concerns.

@louwers louwers added build Related to build, configuration or CI/CD linux labels Jan 30, 2025
@jwinarske
Copy link
Contributor Author

@louwers This is a cmake folder example for a Linux only app

Image

It's just an approach to logically group things so it's easier to find things/maintain.

This one is a poster child for all lot of thing not to do: https://github.com/google/filament
I think LLVM is likely the best reference for a large CMake project: https://github.com/llvm/llvm-project

@jwinarske
Copy link
Contributor Author

Given it would refactor all platforms, it's not specific to Linux ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Related to build, configuration or CI/CD linux
Projects
None yet
Development

No branches or pull requests

2 participants