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

Unify target compile definitions #1458

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

sandro-elsweijer
Copy link
Collaborator

Describe your changes here:
The cmake system ad its own definitions for each target (t8code itself and each benchmark, test, tutorial and example).
This PR introduces a function which adds all relevant compile definitions to a target. This way everything in t8code is compiled the same way.

Furthermore, this PR renames the T8CODE_BUILD_PEDANTIC option into T8CODE_BUILD_WPEDANTIC so that it is in line with
T8CODE_BUILD_WALL
T8CODE_BUILD_WERROR

All these boxes must be checked by the reviewers before merging the pull request:

As a reviewer please read through all the code lines and make sure that the code is fully understood, bug free, well-documented and well-structured.

General

  • The reviewer executed the new code features at least once and checked the results manually

  • The code follows the t8code coding guidelines

  • New source/header files are properly added to the Makefiles

  • The code is well documented

  • All function declarations, structs/classes and their members have a proper doxygen documentation

  • All new algorithms and data structures are sufficiently optimal in terms of memory and runtime (If this should be merged, but there is still potential for optimization, create a new issue)

Tests

  • The code is covered in an existing or new test case using Google Test

Github action

  • The code compiles without warning in debugging and release mode, with and without MPI (this should be executed automatically in a github action)

  • All tests pass (in various configurations, this should be executed automatically in a github action)

    If the Pull request introduces code that is not covered by the github action (for example coupling with a new library):

    • Should this use case be added to the github action?
    • If not, does the specific use case compile and all tests pass (check manually)

Scripts and Wiki

  • If a new directory with source-files is added, it must be covered by the script/find_all_source_files.sh to check the indentation of these files.
  • If this PR introduces a new feature, it must be covered in an example/tutorial and a Wiki article.

License

  • The author added a BSD statement to doc/ (or already has one)

Tag Label

  • The author added the patch/minor/major label in accordance to semantic versioning.

@sandro-elsweijer sandro-elsweijer added enhancement Enhances already existing code priority: low Should be solved eventually workload: low Would take half a day or less CMake Is about the CMake build system labels Mar 5, 2025
@sandro-elsweijer sandro-elsweijer marked this pull request as draft March 5, 2025 14:48
@sandro-elsweijer sandro-elsweijer force-pushed the fix-cmake_target_definitions branch from 1033c12 to 122cc9c Compare March 6, 2025 13:12
@sandro-elsweijer sandro-elsweijer marked this pull request as ready for review March 6, 2025 13:13
@sandro-elsweijer sandro-elsweijer self-assigned this Mar 7, 2025
@sandro-elsweijer sandro-elsweijer marked this pull request as draft March 7, 2025 11:54
@sandro-elsweijer sandro-elsweijer removed their assignment Mar 7, 2025
@sandro-elsweijer sandro-elsweijer marked this pull request as ready for review March 7, 2025 15:12
@lukasdreyer
Copy link
Collaborator

The compiler option for the others is called -Werror and -Wall compared to -pedantic

Choose a reason for hiding this comment

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

PR Overview

This PR unifies the compile definitions across targets by introducing a function to add all relevant compile definitions and renaming the pedantic build option for consistency.

  • Updated CI workflow YAMLs to replace T8CODE_BUILD_PEDANTIC with T8CODE_BUILD_WPEDANTIC.
  • Ensured consistent compile configuration flags across different build jobs.

Reviewed Changes

File Description
.github/workflows/build_cmake_tarball.yml Replaced T8CODE_BUILD_PEDANTIC with T8CODE_BUILD_WPEDANTIC.
.github/workflows/tests_cmake_t8code_api.yml Replaced T8CODE_BUILD_PEDANTIC with T8CODE_BUILD_WPEDANTIC.
.github/workflows/tests_cmake_t8code.yml Replaced T8CODE_BUILD_PEDANTIC with T8CODE_BUILD_WPEDANTIC.
.github/workflows/tests_cmake_t8code_linkage.yml Replaced T8CODE_BUILD_PEDANTIC with T8CODE_BUILD_WPEDANTIC.
.github/workflows/tests_cmake_t8code_w_shipped_submodules.yml Replaced T8CODE_BUILD_PEDANTIC with T8CODE_BUILD_WPEDANTIC.

Copilot reviewed 11 out of 11 changed files in this pull request and generated no comments.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CMake Is about the CMake build system enhancement Enhances already existing code priority: low Should be solved eventually workload: low Would take half a day or less
Projects
Status: Todo
Development

Successfully merging this pull request may close these issues.

3 participants