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

Avoid to export Debug flags #121

Merged

Conversation

ClausKlein
Copy link
Collaborator

@ClausKlein ClausKlein commented Jan 20, 2025

  • CI must run ALL possible sanitizer on ALL supported hosts with ALL supported compilers with ALL supported c++ std!
  • install Release without developer settings on CI
  • check that this exported cmake config package can be found and used

@ClausKlein ClausKlein marked this pull request as draft January 20, 2025 10:54
@dietmarkuehl
Copy link
Collaborator

I need a plan or a concept:

  • what should happen?

  • what are the use cases?

  • how to test this use cases?

  • ...

I'm not an expert on building software. In my mind there are three use-cases which need to work somehow:

  • A project/repository should build to develop/test/demo etc. It will need to make configuration chouces.
  • A repository needs to build as part of the build of dependent project. The choices come from the dependent project. Each project may have requirements, eg., a minimum language version, required hardware, etc.
  • A repository need to build as part of packaging in which case the choices come from the package. Users of the package will need to match.

What exactly is needed to make these work is unclear to me. Also, that is almost certainly an oversimplified view of the world. In any case, I don't think getting it together is a per project chouce alone.

It may be reasonable to discuss that on Discourse (maybe there is already such a discussion).

@ClausKlein
Copy link
Collaborator Author

The problems may ocure when the project ist used with FetchContent:

if the user want only build it project, that needs a build dependency to execution26, it is simple:

  • no tests
  • no install
  • only compile and link
  • hopefully c++23 std or newer used!

But if the user want to install its own packackage, it will be complicated!

execution26 becomes a runtime dependency:

  • both must be installed
  • Release (and Debug)?
  • develop/ sanitzier settings must NOT be exported!
  • execution26 must checked with find_depends

@ClausKlein ClausKlein marked this pull request as ready for review January 20, 2025 16:30
Copy link
Collaborator

@dietmarkuehl dietmarkuehl left a comment

Choose a reason for hiding this comment

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

This in the direction of what I imagine. For my normal process I'd want to test but disable the find-package-test as it takes a while. I think I'll need three small changes to also accomplish that (I can create a PR for these):

  1. Define another option BEMAN_EXECUTION26_ENABLE_FINDPACKAGE_TESTING unconditionally defaulting to ON.

  2. Add this option as another condition before adding the find-package-test.

  3. Add something to the Makefile, e.g., using a variable EXTRA_CMAKE_OPTIONS, which can be set when invoking make to pass it on:

    EXTRA_CMAKE_OPTIONS="-DBEMAN_EXECUTION26_ENABLE_FINDPACKAGE_TESTING=OFF" make

... or setting an environment variable. This way it is possible to selectively disable the test which runs long without modifying the files checked in. I'll create a corresponding PR (although I plan to change the repository name, namespace, etc. from execution26 to execution, following the recent decision on repository names, first).

@dietmarkuehl dietmarkuehl merged commit 46995f6 into bemanproject:main Jan 20, 2025
11 checks passed
dietmarkuehl pushed a commit that referenced this pull request Jan 21, 2025
* Avoid to export Debug flags

* Fix typo and add more options
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.

2 participants