MRtrix3 / mrtrix3

MRtrix3 provides a set of tools to perform various advanced diffusion MRI analyses, including constrained spherical deconvolution (CSD), probabilistic tractography, track-density imaging, and apparent fibre density
http://www.mrtrix.org
Mozilla Public License 2.0
291 stars 179 forks source link

Replace include guards with #pragma once #2871

Closed daljit46 closed 6 months ago

daljit46 commented 6 months ago

Proposal to replace header include guards with #pragma once. This means less typing and lines of code, less distractions and less chances of symbol collisions (caused by same values used by guard values). It would also address most of the issue outlined #2862.

Migration from include guards was done using guardonce. The only manual change needed was to address the following in core/fixel/legacy/image.h:

#error File that #includes "fixel/legacy/image.h" must explicitly #include "image.h" beforehand
daljit46 commented 6 months ago

Tried restarting the clang-tidy job, but I've a suspicion it'll time out again because of the number of files to check. Feel free to merge without it.

The log message says:

CMake Warning at core/CMakeLists.txt:79 (message): libpng not found, disabling PNG support CMake Warning at core/CMakeLists.txt:86 (message): libtiff not found, disabling TIFF support fatal: detected dubious ownership in repository at '/github/workspace' To add an exception for this directory, call: git config --global --add safe.directory /github/workspace fatal: detected dubious ownership in repository at '/github/workspace' To add an exception for this directory, call: git config --global --add safe.directory /github/workspace CMake Error at /github/workspace/cmake/FindVersion.cmake:21 (message): MRtrix3 base version does not match the git tag!

However, I think this issue is independent of the changes in this PR so it should be safe to merge regardless (indeed same can be seen in #2865 https://github.com/MRtrix3/mrtrix3/actions/runs/8558271362/job/23452463438?pr=2865)