From ef61e622382c3b6d6c291050ba663c5af2050d24 Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 7 Mar 2024 15:48:06 +0100 Subject: [PATCH 1/2] new folder structure --- CMakeLists.txt | 50 ++++++++++--------- README.md | 8 +++ core/CMakeLists.txt | 23 +++++++++ {include/core => core/include/aare}/Frame.hpp | 2 +- .../common => core/include/aare}/defs.hpp | 0 {src/core => core/src}/Frame.cpp | 2 +- {src/common => core/src}/defs.cpp | 2 +- {src/common => core/src}/defs.test.cpp | 2 +- examples/main.cpp | 2 +- file_io/CMakeLists.txt | 28 +++++++++++ .../file_io => file_io/include/aare}/File.hpp | 5 +- .../include/aare}/FileFactory.hpp | 3 +- .../include/aare}/FileHandler.hpp | 5 +- .../include/aare}/JsonFile.hpp | 6 +-- .../include/aare}/JsonFileFactory.hpp | 2 +- .../include/aare}/RawFileFactory.hpp | 2 +- .../include/aare}/SubFile.hpp | 2 +- .../include/aare}/helpers.hpp | 2 +- {src/file_io/file => file_io/src}/File.cpp | 3 +- .../src}/FileFactory.cpp | 6 +-- .../file_io/file => file_io/src}/JsonFile.cpp | 2 +- .../src}/JsonFileFactory.cpp | 10 ++-- {src/file_io/file => file_io/src}/SubFile.cpp | 2 +- {src/file_io => file_io/src}/helpers.cpp | 2 +- include/aare/aare.hpp | 1 + python/CMakeLists.txt | 3 ++ python/src/bindings.cpp | 6 +-- src/.gitignore | 1 - src/CMakeLists.txt | 4 -- src/common/CMakeLists.txt | 16 ------ src/core/CMakeLists.txt | 10 ---- src/file_io/CMakeLists.txt | 16 ------ src/processing/CMakeLists.txt | 0 tests/.gitignore | 1 - 34 files changed, 126 insertions(+), 103 deletions(-) create mode 100644 core/CMakeLists.txt rename {include/core => core/include/aare}/Frame.hpp (96%) rename {include/common => core/include/aare}/defs.hpp (100%) rename {src/core => core/src}/Frame.cpp (95%) rename {src/common => core/src}/defs.cpp (97%) rename {src/common => core/src}/defs.test.cpp (92%) create mode 100644 file_io/CMakeLists.txt rename {include/file_io => file_io/include/aare}/File.hpp (97%) rename {include/file_io => file_io/include/aare}/FileFactory.hpp (96%) rename {include/file_io => file_io/include/aare}/FileHandler.hpp (90%) rename {include/file_io => file_io/include/aare}/JsonFile.hpp (67%) rename {include/file_io => file_io/include/aare}/JsonFileFactory.hpp (91%) rename {include/file_io => file_io/include/aare}/RawFileFactory.hpp (89%) rename {include/file_io => file_io/include/aare}/SubFile.hpp (97%) rename {include/file_io => file_io/include/aare}/helpers.hpp (79%) rename {src/file_io/file => file_io/src}/File.cpp (89%) rename {src/file_io/file_factory => file_io/src}/FileFactory.cpp (96%) rename {src/file_io/file => file_io/src}/JsonFile.cpp (94%) rename {src/file_io/file_factory => file_io/src}/JsonFileFactory.cpp (94%) rename {src/file_io/file => file_io/src}/SubFile.cpp (99%) rename {src/file_io => file_io/src}/helpers.cpp (86%) create mode 100644 include/aare/aare.hpp delete mode 100644 src/.gitignore delete mode 100644 src/CMakeLists.txt delete mode 100644 src/common/CMakeLists.txt delete mode 100644 src/core/CMakeLists.txt delete mode 100644 src/file_io/CMakeLists.txt delete mode 100644 src/processing/CMakeLists.txt delete mode 100644 tests/.gitignore diff --git a/CMakeLists.txt b/CMakeLists.txt index 831a105..a8049ab 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(SUPPRESSED_WARNINGS "-Wno-return-type") -set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} ${SUPPRESSED_WARNINGS}") +# 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) +# include_directories(include) +# add_subdirectory(src) + +add_subdirectory(core) +add_subdirectory(file_io) + 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 46b0ba7..1b31769 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 0000000..35d808d --- /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 902806d..78918a6 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 9af474d..f035fc4 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 a6ba458..dea1f85 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 4e5caf7..ecad682 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 693cabe..f4d45cb 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 0000000..ff9bc56 --- /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 01239a5..a30e7c8 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 1b89f3c..abb583d 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 afe459d..c28e681 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 d3ae890..b82aebc 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 347baf4..cdbfb95 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 15877cc..66a3f59 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 fd9b87c..02efa39 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 199e6ac..a140f58 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 9ee20c3..9cebbcc 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 5a5d465..d56e14c 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 7c0a31e..0d848d9 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 843dcf9..c8a6f61 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 08875dc..7b3ac1d 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 d16f8be..9c7ceeb 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 0000000..6734b06 --- /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 3327273..18d1b17 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 249323d..ab861fe 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 8b13789..0000000 --- a/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt deleted file mode 100644 index 99386b5..0000000 --- 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 aedc033..0000000 --- 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 7c3061e..0000000 --- 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 72e5adc..0000000 --- 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 e69de29..0000000 diff --git a/tests/.gitignore b/tests/.gitignore deleted file mode 100644 index 8b13789..0000000 --- a/tests/.gitignore +++ /dev/null @@ -1 +0,0 @@ - From 1f56374496cd5481a847a3ac94a9b1de4dfdbadf Mon Sep 17 00:00:00 2001 From: Erik Frojdh Date: Thu, 7 Mar 2024 15:55:34 +0100 Subject: [PATCH 2/2] cleanup --- CMakeLists.txt | 43 +++++++++++++++++-------------------------- python/CMakeLists.txt | 6 +++++- 2 files changed, 22 insertions(+), 27 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a8049ab..933a528 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.12) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 17) #TODO! Global or per target? project(aare VERSION 0.1 DESCRIPTION "Data processing library for PSI detectors" @@ -10,29 +10,26 @@ project(aare cmake_policy(SET CMP0135 NEW) cmake_policy(SET CMP0079 NEW) - include(GNUInstallDirs) - include(FetchContent) -option(USE_SANITIZER "Sanitizers for debugging" ON) -option(DISABLE_WARNINGS "Disbale compilation warnings" OFF) -option(USE_PYTHON "Build python bindings" ON) -option(AARE_BUILD_TESTS "Build tests" OFF) +option(AARE_USE_SANITIZER "Sanitizers for debugging" ON) +option(AARE_PYTHON_BINDINGS "Build python bindings" ON) +option(AARE_TESTS "Build tests" OFF) +option(AARE_EXAMPLES "Build examples" OFF) +#TODO! Should this be on the top level or move it down to the component +#that needs it? FetchContent_Declare(json GIT_REPOSITORY https://github.com/nlohmann/json GIT_TAG v3.11.3 ) FetchContent_MakeAvailable(json) -if(AARE_BUILD_TESTS) - add_subdirectory(tests) -endif() + set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - find_package(fmt 6 REQUIRED) @@ -63,32 +60,26 @@ find_package(fmt 6 REQUIRED) # set(CMAKE_CXX_FLAGS "${OPTIMIZATION_FLAGS} ${SUPPRESSED_WARNINGS}") -# if(USE_PYTHON) -# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") -# endif(USE_PYTHON) - - - - -# include_directories(include) -# add_subdirectory(src) +if(AARE_BUILD_TESTS) + add_subdirectory(tests) +endif() add_subdirectory(core) add_subdirectory(file_io) - +#Overall target to link to when using the library add_library(aare INTERFACE) target_link_libraries(aare INTERFACE core file_io) - +target_include_directories(aare INTERFACE + $ + $ +) add_subdirectory(examples) target_link_libraries(example PUBLIC aare) -if(USE_PYTHON) - find_package (Python 3.11 COMPONENTS Interpreter Development) - find_package(pybind11 2.11 REQUIRED) +if(AARE_PYTHON_BINDINGS) add_subdirectory(python) - target_link_libraries(_aare PRIVATE aare nlohmann_json::nlohmann_json fmt::fmt) endif() \ No newline at end of file diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt index 18d1b17..6f5300e 100644 --- a/python/CMakeLists.txt +++ b/python/CMakeLists.txt @@ -1,4 +1,8 @@ + +find_package (Python 3.11 COMPONENTS Interpreter Development) +find_package(pybind11 2.11 REQUIRED) pybind11_add_module(_aare src/bindings.cpp) set_target_properties(_aare PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} -) \ No newline at end of file +) +target_link_libraries(_aare PRIVATE aare) \ No newline at end of file