WIP: Project structure refactoring
Since C8 is currently under heavy development (with PROPOSAL, CONEX, Radio, and Cherenkov all underway), I think we need to make the major project structure changes that have been discussed over the past 6 months now so that these upcoming MRs can use the new project structure and we can reduce the complexity (and therefore, pain) of performing the future merge with Augusto's majorly-refactored fork (which is currently 150 commits behind master according to Gitlab). This MR builds on the previous (smaller) refactoring MRs opened in the last few days to take a large step towards the new C8 (refactored) project structure.
--
This MR contains a restructured project repo that applies some of the major changes proposed by Augusto here, and implemented here, so that the future merge will be less painful (note: this does not implement all of the changes proposed in that document).
Each change has been isolated to its own commit so that we can easily undo particular changes if desired. In particular, this MR makes the following changes:
- The CORSIKA framework is now completely header-only. I have not moved implementations into the
detail::
namespace yet. No implementation details were changed (strictly a copy-and-paste exercise) - Source and header files have been renamed to
.cpp
and.hpp
. - Include guards have been replaced with
#pragma once
- Tests that were in the
Framework
directory are now in a top-leveltests
directory.
One of the goals of the original refactoring discussion (see links above) was to have the folder structure mirror the namespace structure and naming. To take a big step towards this, this MR makes the following changes:
- The
Framework
directory is nowcorsika
(to be consistent with Augusto's branch) -
Environment
is nowcorsika/environment
-
Setup
is nowcorsika/setup
-
Stack
is nowcorsika/stack
-
ThirdParty
is nowthirdparty
-
Tools
is nowtools
-
COAST
is nowcorsika/coast
-
Processes
is nowprocesses
-
Documentation
is nowdocumentation
-
Main
is now deleted (for the time being). The CMake file was empty and the source file was an empty main function and it had not been touched in a year. This can be added once we have an actual "main" target to add.
All feedback is welcome - I have tried to only implement the non-controversial changes from our previous refactoring discussions but let me know if there is a consensus to undo some of these changes.