diff --git a/CMakeLists.txt b/CMakeLists.txt index 831a1053..a8049ab3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,51 +31,55 @@ if(AARE_BUILD_TESTS) add_subdirectory(tests) endif() - +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) find_package(fmt 6 REQUIRED) -set(CMAKE_BUILD_TYPE "Debug") +# set(CMAKE_BUILD_TYPE "Debug") -if (CMAKE_BUILD_TYPE STREQUAL "Debug") - set(OPTIMIZATION_FLAGS "-Og -ggdb3 -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") -else() - set(OPTIMIZATION_FLAGS "-O3") -endif() -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +# if (CMAKE_BUILD_TYPE STREQUAL "Debug") +# set(OPTIMIZATION_FLAGS "-Og -ggdb3 -D_GLIBCXX_DEBUG -D_GLIBCXX_DEBUG_PEDANTIC") +# else() +# set(OPTIMIZATION_FLAGS "-O3") +# endif() -set(OPTIONAL_FLAGS "") -if(DISABLE_WARNINGS) - set(OPTIONAL_FLAGS "${OPTIONAL_FLAGS} -Wall -Wextra -pedantic -Wno-unused-parameter -Wshadow -Wformat=2 -Wold-style-cast -Wnon-virtual-dtor -Wfloat-equal -Wconversion -Wlogical-op -Wshift-overflow=2 -Woverloaded-virtual -Winline") -endif() -if(USE_SANITIZER) - set(OPTIONAL_FLAGS "${OPTIONAL_FLAGS} -fdiagnostics-parseable-fixits -fdiagnostics-generate-patch -fdiagnostics-show-template-tree -fsanitize=address,undefined,pointer-compare -fno-sanitize-recover -D_FORTIFY_SOURCE=2 -fstack-protector -fno-omit-frame-pointer ") -endif() +# set(OPTIONAL_FLAGS "") +# if(DISABLE_WARNINGS) +# set(OPTIONAL_FLAGS "${OPTIONAL_FLAGS} -Wall -Wextra -pedantic -Wno-unused-parameter -Wshadow -Wformat=2 -Wold-style-cast -Wnon-virtual-dtor -Wfloat-equal -Wconversion -Wlogical-op -Wshift-overflow=2 -Woverloaded-virtual -Winline") +# endif() +# if(USE_SANITIZER) +# set(OPTIONAL_FLAGS "${OPTIONAL_FLAGS} -fdiagnostics-parseable-fixits -fdiagnostics-generate-patch -fdiagnostics-show-template-tree -fsanitize=address,undefined,pointer-compare -fno-sanitize-recover -D_FORTIFY_SOURCE=2 -fstack-protector -fno-omit-frame-pointer ") +# endif() -set(SUPPRESSED_WARNINGS "-Wno-return-type") -set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} ${SUPPRESSED_WARNINGS}") +# set(SUPPRESSED_WARNINGS "-Wno-return-type") + +# set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} ${SUPPRESSED_WARNINGS}") + +# if(USE_PYTHON) +# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") +# endif(USE_PYTHON) + -if(USE_PYTHON) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") -endif(USE_PYTHON) +# include_directories(include) +# add_subdirectory(src) +add_subdirectory(core) +add_subdirectory(file_io) -include_directories(include) -add_subdirectory(src) add_library(aare INTERFACE) -target_link_libraries(aare INTERFACE common core file_io) +target_link_libraries(aare INTERFACE core file_io) add_subdirectory(examples) diff --git a/README.md b/README.md index 46b0ba75..1b317695 100644 --- a/README.md +++ b/README.md @@ -4,5 +4,13 @@ Data analysis library for PSI hybrid detectors +## Folder structure + +| Folder | subfolder | Content | +|----------|---------------|-------------------------------------| +| include/ | aare/ | top level header/s | +| core/ | include/ | public headers for core | +| | src/ | source files and non public headers | + ## file_io class diagram ![file_io class diagram](./extra/uml/out/file_io/ClassDiagram.png) \ No newline at end of file diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt new file mode 100644 index 00000000..35d808d0 --- /dev/null +++ b/core/CMakeLists.txt @@ -0,0 +1,23 @@ + + +set(SourceFiles + ${CMAKE_CURRENT_SOURCE_DIR}/src/defs.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/Frame.cpp +) + +add_library(core STATIC ${SourceFiles}) +target_include_directories(core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_link_libraries(core PUBLIC fmt::fmt) +set_property(TARGET core PROPERTY POSITION_INDEPENDENT_CODE ON) + +if(AARE_BUILD_TESTS) + set(TestSources + ${CMAKE_CURRENT_SOURCE_DIR}/src/defs.test.cpp + ) + target_sources(tests PRIVATE ${TestSources} ) + + #Work around to remove, this is not the way to do it =) + # target_include_directories(tests PRIVATE ${CMAKE_SOURCE_DIR}/include/common) + target_link_libraries(tests PRIVATE core) + +endif() diff --git a/include/core/Frame.hpp b/core/include/aare/Frame.hpp similarity index 96% rename from include/core/Frame.hpp rename to core/include/aare/Frame.hpp index 902806da..78918a6c 100644 --- a/include/core/Frame.hpp +++ b/core/include/aare/Frame.hpp @@ -4,7 +4,7 @@ #include #include #include -#include "common/defs.hpp" +#include "aare/defs.hpp" diff --git a/include/common/defs.hpp b/core/include/aare/defs.hpp similarity index 100% rename from include/common/defs.hpp rename to core/include/aare/defs.hpp diff --git a/src/core/Frame.cpp b/core/src/Frame.cpp similarity index 95% rename from src/core/Frame.cpp rename to core/src/Frame.cpp index 9af474d8..f035fc4e 100644 --- a/src/core/Frame.cpp +++ b/core/src/Frame.cpp @@ -1,4 +1,4 @@ -#include "core/Frame.hpp" +#include "aare/Frame.hpp" #include template diff --git a/src/common/defs.cpp b/core/src/defs.cpp similarity index 97% rename from src/common/defs.cpp rename to core/src/defs.cpp index a6ba4582..dea1f851 100644 --- a/src/common/defs.cpp +++ b/core/src/defs.cpp @@ -1,4 +1,4 @@ -#include "common/defs.hpp" +#include "aare/defs.hpp" template <> std::string toString(DetectorType type) { switch (type) { diff --git a/src/common/defs.test.cpp b/core/src/defs.test.cpp similarity index 92% rename from src/common/defs.test.cpp rename to core/src/defs.test.cpp index 4e5caf71..ecad6829 100644 --- a/src/common/defs.test.cpp +++ b/core/src/defs.test.cpp @@ -1,6 +1,6 @@ #include #include -#include "defs.hpp" +#include "aare/defs.hpp" TEST_CASE("Enum to string conversion"){ //By the way I don't think the enum string conversions should be in the defs.hpp file //but let's use this to show a test diff --git a/examples/main.cpp b/examples/main.cpp index 693cabea..f4d45cb8 100644 --- a/examples/main.cpp +++ b/examples/main.cpp @@ -1,6 +1,6 @@ // Your First C++ Program #include -#include "file_io/FileHandler.hpp" +#include "aare/FileHandler.hpp" using JFileHandler = FileHandler; using JFile = File; diff --git a/file_io/CMakeLists.txt b/file_io/CMakeLists.txt new file mode 100644 index 00000000..ff9bc562 --- /dev/null +++ b/file_io/CMakeLists.txt @@ -0,0 +1,28 @@ + + +set(SourceFiles + ${CMAKE_CURRENT_SOURCE_DIR}/src/File.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/FileFactory.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/helpers.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/JsonFile.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/JsonFileFactory.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/SubFile.cpp +) + +add_library(file_io STATIC ${SourceFiles}) +target_include_directories(file_io PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) +target_link_libraries(file_io PUBLIC fmt::fmt core nlohmann_json::nlohmann_json) +set_property(TARGET file_io PROPERTY POSITION_INDEPENDENT_CODE ON) + + +# if(AARE_BUILD_TESTS) +# set(TestSources +# ${CMAKE_CURRENT_SOURCE_DIR}/src/defs.test.cpp +# ) +# target_sources(tests PRIVATE ${TestSources} ) + +# #Work around to remove, this is not the way to do it =) +# # target_include_directories(tests PRIVATE ${CMAKE_SOURCE_DIR}/include/common) +# target_link_libraries(tests PRIVATE file_io) + +# endif() diff --git a/include/file_io/File.hpp b/file_io/include/aare/File.hpp similarity index 97% rename from include/file_io/File.hpp rename to file_io/include/aare/File.hpp index 01239a51..a30e7c8d 100644 --- a/include/file_io/File.hpp +++ b/file_io/include/aare/File.hpp @@ -1,8 +1,9 @@ #pragma once -#include "common/defs.hpp" -#include "core/Frame.hpp" +#include "aare/defs.hpp" +#include "aare/Frame.hpp" #include "SubFile.hpp" + #include #include #include diff --git a/include/file_io/FileFactory.hpp b/file_io/include/aare/FileFactory.hpp similarity index 96% rename from include/file_io/FileFactory.hpp rename to file_io/include/aare/FileFactory.hpp index 1b89f3c3..abb583d0 100644 --- a/include/file_io/FileFactory.hpp +++ b/file_io/include/aare/FileFactory.hpp @@ -1,6 +1,7 @@ #pragma once #include -#include "file_io/File.hpp" +#include "aare/File.hpp" + template class FileFactory{ // Class that will be used to create File objects diff --git a/include/file_io/FileHandler.hpp b/file_io/include/aare/FileHandler.hpp similarity index 90% rename from include/file_io/FileHandler.hpp rename to file_io/include/aare/FileHandler.hpp index afe459d2..c28e6819 100644 --- a/include/file_io/FileHandler.hpp +++ b/file_io/include/aare/FileHandler.hpp @@ -1,6 +1,7 @@ #include -#include "file_io/FileFactory.hpp" -#include "file_io/File.hpp" +#include "aare/FileFactory.hpp" +#include "aare/File.hpp" + template class FileHandler{ private: diff --git a/include/file_io/JsonFile.hpp b/file_io/include/aare/JsonFile.hpp similarity index 67% rename from include/file_io/JsonFile.hpp rename to file_io/include/aare/JsonFile.hpp index d3ae890f..b82aebc3 100644 --- a/include/file_io/JsonFile.hpp +++ b/file_io/include/aare/JsonFile.hpp @@ -1,7 +1,7 @@ #pragma once -#include "file_io/File.hpp" -#include "core/Frame.hpp" -#include "common/defs.hpp" +#include "aare/File.hpp" +#include "aare/Frame.hpp" +#include "aare/defs.hpp" template class JsonFile : public File { diff --git a/include/file_io/JsonFileFactory.hpp b/file_io/include/aare/JsonFileFactory.hpp similarity index 91% rename from include/file_io/JsonFileFactory.hpp rename to file_io/include/aare/JsonFileFactory.hpp index 347baf49..cdbfb95a 100644 --- a/include/file_io/JsonFileFactory.hpp +++ b/file_io/include/aare/JsonFileFactory.hpp @@ -1,4 +1,4 @@ -#include "file_io/FileFactory.hpp" +#include "aare/FileFactory.hpp" template class JsonFileFactory: public FileFactory { diff --git a/include/file_io/RawFileFactory.hpp b/file_io/include/aare/RawFileFactory.hpp similarity index 89% rename from include/file_io/RawFileFactory.hpp rename to file_io/include/aare/RawFileFactory.hpp index 15877cc2..66a3f590 100644 --- a/include/file_io/RawFileFactory.hpp +++ b/file_io/include/aare/RawFileFactory.hpp @@ -1,4 +1,4 @@ -#include "file_io/File.hpp" +#include "aare/File.hpp" #include template class RawFileFactory{ diff --git a/include/file_io/SubFile.hpp b/file_io/include/aare/SubFile.hpp similarity index 97% rename from include/file_io/SubFile.hpp rename to file_io/include/aare/SubFile.hpp index fd9b87c7..02efa39a 100644 --- a/include/file_io/SubFile.hpp +++ b/file_io/include/aare/SubFile.hpp @@ -1,5 +1,5 @@ #pragma once -#include "common/defs.hpp" +#include "aare/defs.hpp" #include #include #include diff --git a/include/file_io/helpers.hpp b/file_io/include/aare/helpers.hpp similarity index 79% rename from include/file_io/helpers.hpp rename to file_io/include/aare/helpers.hpp index 199e6acb..a140f58a 100644 --- a/include/file_io/helpers.hpp +++ b/file_io/include/aare/helpers.hpp @@ -1,6 +1,6 @@ #pragma once -#include "file_io/File.hpp" +#include "aare/File.hpp" #include #include diff --git a/src/file_io/file/File.cpp b/file_io/src/File.cpp similarity index 89% rename from src/file_io/file/File.cpp rename to file_io/src/File.cpp index 9ee20c31..9cebbcc6 100644 --- a/src/file_io/file/File.cpp +++ b/file_io/src/File.cpp @@ -1,4 +1,5 @@ -#include "file_io/File.hpp" +#include "aare/File.hpp" + template File::~File() { for (auto& subfile : subfiles) { diff --git a/src/file_io/file_factory/FileFactory.cpp b/file_io/src/FileFactory.cpp similarity index 96% rename from src/file_io/file_factory/FileFactory.cpp rename to file_io/src/FileFactory.cpp index 5a5d4657..d56e14ce 100644 --- a/src/file_io/file_factory/FileFactory.cpp +++ b/file_io/src/FileFactory.cpp @@ -1,6 +1,6 @@ -#include "file_io/FileFactory.hpp" -#include "file_io/File.hpp" -#include "file_io/JsonFileFactory.hpp" +#include "aare/FileFactory.hpp" +#include "aare/File.hpp" +#include "aare/JsonFileFactory.hpp" #include template diff --git a/src/file_io/file/JsonFile.cpp b/file_io/src/JsonFile.cpp similarity index 94% rename from src/file_io/file/JsonFile.cpp rename to file_io/src/JsonFile.cpp index 7c0a31e2..0d848d9a 100644 --- a/src/file_io/file/JsonFile.cpp +++ b/file_io/src/JsonFile.cpp @@ -1,4 +1,4 @@ -#include "file_io/JsonFile.hpp" +#include "aare/JsonFile.hpp" #include template diff --git a/src/file_io/file_factory/JsonFileFactory.cpp b/file_io/src/JsonFileFactory.cpp similarity index 94% rename from src/file_io/file_factory/JsonFileFactory.cpp rename to file_io/src/JsonFileFactory.cpp index 843dcf92..c8a6f611 100644 --- a/src/file_io/file_factory/JsonFileFactory.cpp +++ b/file_io/src/JsonFileFactory.cpp @@ -1,8 +1,8 @@ -#include "file_io/JsonFileFactory.hpp" -#include "file_io/JsonFile.hpp" -#include "file_io/SubFile.hpp" -#include "common/defs.hpp" -#include "file_io/helpers.hpp" +#include "aare/JsonFileFactory.hpp" +#include "aare/JsonFile.hpp" +#include "aare/SubFile.hpp" +#include "aare/defs.hpp" +#include "aare/helpers.hpp" #include #include #include diff --git a/src/file_io/file/SubFile.cpp b/file_io/src/SubFile.cpp similarity index 99% rename from src/file_io/file/SubFile.cpp rename to file_io/src/SubFile.cpp index 08875dcc..7b3ac1d8 100644 --- a/src/file_io/file/SubFile.cpp +++ b/file_io/src/SubFile.cpp @@ -1,4 +1,4 @@ -#include "file_io/SubFile.hpp" +#include "aare/SubFile.hpp" #include // #include diff --git a/src/file_io/helpers.cpp b/file_io/src/helpers.cpp similarity index 86% rename from src/file_io/helpers.cpp rename to file_io/src/helpers.cpp index d16f8be7..9c7ceeb8 100644 --- a/src/file_io/helpers.cpp +++ b/file_io/src/helpers.cpp @@ -1,4 +1,4 @@ -#include "file_io/helpers.hpp" +#include "aare/helpers.hpp" bool is_master_file(std::filesystem::path fpath) { diff --git a/include/aare/aare.hpp b/include/aare/aare.hpp new file mode 100644 index 00000000..6734b06d --- /dev/null +++ b/include/aare/aare.hpp @@ -0,0 +1 @@ +//This is the top level header to include and what most users will use \ No newline at end of file diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 33272733..18d1b173 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1 +1,4 @@ pybind11_add_module(_aare src/bindings.cpp) +set_target_properties(_aare PROPERTIES + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} +) \ No newline at end of file diff --git a/python/src/bindings.cpp b/python/src/bindings.cpp index 249323df..ab861fe5 100644 --- a/python/src/bindings.cpp +++ b/python/src/bindings.cpp @@ -3,9 +3,9 @@ #include #include -#include "common/defs.hpp" -#include "core/Frame.hpp" -#include "file_io/FileHandler.hpp" +#include "aare/defs.hpp" +#include "aare/Frame.hpp" +#include "aare/FileHandler.hpp" namespace py = pybind11; diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index 8b137891..00000000 --- a/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 99386b50..00000000 --- a/src/CMakeLists.txt +++ /dev/null @@ -1,4 +0,0 @@ -add_subdirectory(file_io) -add_subdirectory(core) -add_subdirectory(processing) -add_subdirectory(common) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt deleted file mode 100644 index aedc0336..00000000 --- a/src/common/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -add_library(common "${CMAKE_CURRENT_SOURCE_DIR}/defs.cpp") - -target_link_libraries(common PUBLIC fmt::fmt) - - -if(AARE_BUILD_TESTS) - set(TestSources - ${CMAKE_CURRENT_SOURCE_DIR}/defs.test.cpp - ) - target_sources(tests PRIVATE ${TestSources} ) - - #Work around to remove, this is not the way to do it =) - target_include_directories(tests PRIVATE ${CMAKE_SOURCE_DIR}/include/common) - target_link_libraries(tests PRIVATE common) - -endif() \ No newline at end of file diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt deleted file mode 100644 index 7c3061eb..00000000 --- a/src/core/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ -# target_include_directories(aare PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) - -# target_sources(aare PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/Frame.cpp") - - -add_library(core "${CMAKE_CURRENT_SOURCE_DIR}/Frame.cpp") - -target_link_libraries(core PUBLIC common) - - diff --git a/src/file_io/CMakeLists.txt b/src/file_io/CMakeLists.txt deleted file mode 100644 index 72e5adc0..00000000 --- a/src/file_io/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ - -set(FILE_IO_SOURCES "file/File.cpp" - "file/JsonFile.cpp" - "file/SubFile.cpp" - "file_factory/FileFactory.cpp" - "file_factory/JsonFileFactory.cpp" - "helpers.cpp" - ) -# append ${CMAKE_CURRENT_SOURCE_DIR} to the list of sources using for loop -foreach(FILE_IO_SOURCE ${FILE_IO_SOURCES}) - list(APPEND FILE_IO_SOURCES_WITH_PATH "${CMAKE_CURRENT_SOURCE_DIR}/${FILE_IO_SOURCE}") -endforeach() - -add_library(file_io ${FILE_IO_SOURCES_WITH_PATH}) - -target_link_libraries(file_io common fmt::fmt core nlohmann_json::nlohmann_json) \ No newline at end of file diff --git a/src/processing/CMakeLists.txt b/src/processing/CMakeLists.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/tests/.gitignore b/tests/.gitignore deleted file mode 100644 index 8b137891..00000000 --- a/tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ -