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 debug flags spilling into dependent projects #120

Merged
merged 1 commit into from
Jan 18, 2025

Conversation

dietmarkuehl
Copy link
Collaborator

No description provided.

@dietmarkuehl dietmarkuehl merged commit a7ee8c8 into main Jan 18, 2025
12 checks passed
@dietmarkuehl dietmarkuehl deleted the avoid-debug-flags branch January 18, 2025 10:46
@ClausKlein
Copy link
Collaborator

That isn't a good idea 👎

@neatudarius
Copy link
Member

That isn't a good idea 👎

Can you explain?

@ClausKlein
Copy link
Collaborator

This disables the project_options completely -> cache, warnings, sanitizer, ...!

  project_options(
    PREFIX
    ${TARGET_NAME}
    ENABLE_CACHE
    # NO! # ENABLE_CLANG_TIDY
    # NO! ENABLE_VS_ANALYSIS
    # ENABLE_INTERPROCEDURAL_OPTIMIZATION
    # ENABLE_NATIVE_OPTIMIZATION
    # ENABLE_DOXYGEN
    # ENABLE_COVERAGE
    ENABLE_SANITIZER_ADDRESS
    ENABLE_SANITIZER_UNDEFINED
    # TODO: ENABLE_SANITIZER_THREAD
    # FIXME: on Linux only with clang++? ENABLE_SANITIZER_MEMORY
    ENABLE_SANITIZER_POINTER_COMPARE
    ENABLE_SANITIZER_POINTER_SUBTRACT
    ENABLE_CONTROL_FLOW_PROTECTION
    ENABLE_STACK_PROTECTION
    ENABLE_OVERFLOW_PROTECTION
    # ENABLE_ELF_PROTECTION
    # ENABLE_RUNTIME_SYMBOLS_RESOLUTION
    # ENABLE_COMPILE_COMMANDS_SYMLINK
    # ENABLE_PCH
    # PCH_HEADERS
    # WARNINGS_AS_ERRORS
    # ENABLE_INCLUDE_WHAT_YOU_USE
    # ENABLE_GCC_ANALYZER
    # ENABLE_BUILD_WITH_TIME_TRACE
    # TODO: buggy! ENABLE_UNITY
    # LINKER "lld"
  )

@dietmarkuehl
Copy link
Collaborator Author

I agree that this isn't the correct approach. I had tried quite a while to find a way to build a dependent project (https://github.com/bemanproject/lazy ) with TSAN but I didn't manage to not have other sanitizers desabled. Disabling this block did it. It should be restored but in a way which is compatible with dependent projects. I'm not a cmake expert and don't know how to make that happen properly.

@neatudarius
Copy link
Member

I propose to move the discussion into a new issue, which can be a follow-up task.

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.

3 participants