diff --git a/cmake/StandardProjectSettings.cmake b/cmake/StandardProjectSettings.cmake index af4648e..b5dc34c 100644 --- a/cmake/StandardProjectSettings.cmake +++ b/cmake/StandardProjectSettings.cmake @@ -18,6 +18,9 @@ set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) +# Build shared libraries by default +set(BUILD_SHARED_LIBS ON CACHE INTERNAL "" FORCE) + set(FTXUI_BUILD_DOCS OFF CACHE INTERNAL "" FORCE) set(FTXUI_BUILD_EXAMPLES OFF CACHE INTERNAL "" FORCE) set(FTXUI_ENABLE_INSTALL OFF CACHE INTERNAL "" FORCE) diff --git a/gucc/CMakeLists.txt b/gucc/CMakeLists.txt index b7f8f7e..977cad9 100644 --- a/gucc/CMakeLists.txt +++ b/gucc/CMakeLists.txt @@ -31,6 +31,7 @@ add_library(${PROJECT_NAME} SHARED src/umount_partitions.cpp include/gucc/umount_partitions.hpp src/hwclock.cpp include/gucc/hwclock.hpp src/package_profiles.cpp include/gucc/package_profiles.hpp + src/logger.cpp include/gucc/logger.hpp #src/chwd_profiles.cpp src/chwd_profiles.hpp #src/disk.cpp src/disk.hpp ) diff --git a/gucc/meson.build b/gucc/meson.build index 1627016..83b0ff8 100644 --- a/gucc/meson.build +++ b/gucc/meson.build @@ -21,6 +21,7 @@ gucc_lib = library('gucc', 'src/umount_partitions.cpp', 'src/hwclock.cpp', 'src/package_profiles.cpp', + 'src/logger.cpp', ], include_directories : [include_directories('include')], dependencies: deps diff --git a/gucc/tests/unit-crypttab_gen.cpp b/gucc/tests/unit-crypttab_gen.cpp index d7b0fd1..dc8b439 100644 --- a/gucc/tests/unit-crypttab_gen.cpp +++ b/gucc/tests/unit-crypttab_gen.cpp @@ -1,4 +1,5 @@ #include "gucc/crypttab.hpp" +#include "gucc/logger.hpp" #include @@ -35,7 +36,9 @@ int main() { auto callback_sink = std::make_shared([](const spdlog::details::log_msg&) { // noop }); - spdlog::set_default_logger(std::make_shared("default", callback_sink)); + auto logger = std::make_shared("default", callback_sink); + spdlog::set_default_logger(logger); + gucc::logger::set_logger(logger); const auto& uuid_str = "6bdb3301-8efb-4b84-b0b7-4caeef26fd6f"s; const auto& btrfs_mountopts = "defaults,noatime,compress=zstd,space_cache=v2,commit=120"s; diff --git a/gucc/tests/unit-fstab_gen.cpp b/gucc/tests/unit-fstab_gen.cpp index bbb5288..facf3f3 100644 --- a/gucc/tests/unit-fstab_gen.cpp +++ b/gucc/tests/unit-fstab_gen.cpp @@ -1,4 +1,5 @@ #include "gucc/fstab.hpp" +#include "gucc/logger.hpp" #include @@ -85,7 +86,9 @@ int main() { auto callback_sink = std::make_shared([](const spdlog::details::log_msg&) { // noop }); - spdlog::set_default_logger(std::make_shared("default", callback_sink)); + auto logger = std::make_shared("default", callback_sink); + spdlog::set_default_logger(logger); + gucc::logger::set_logger(logger); // btrfs with subvolumes { diff --git a/gucc/tests/unit-grub_config_gen.cpp b/gucc/tests/unit-grub_config_gen.cpp index b50391a..78ef319 100644 --- a/gucc/tests/unit-grub_config_gen.cpp +++ b/gucc/tests/unit-grub_config_gen.cpp @@ -1,4 +1,5 @@ #include "gucc/bootloader.hpp" +#include "gucc/logger.hpp" #include @@ -137,7 +138,9 @@ int main() { auto callback_sink = std::make_shared([](const spdlog::details::log_msg&) { // noop }); - spdlog::set_default_logger(std::make_shared("default", callback_sink)); + auto logger = std::make_shared("default", callback_sink); + spdlog::set_default_logger(logger); + gucc::logger::set_logger(logger); // default config { diff --git a/gucc/tests/unit-initcpio.cpp b/gucc/tests/unit-initcpio.cpp index a9d67fd..ce25d42 100644 --- a/gucc/tests/unit-initcpio.cpp +++ b/gucc/tests/unit-initcpio.cpp @@ -1,5 +1,6 @@ #include "gucc/file_utils.hpp" #include "gucc/initcpio.hpp" +#include "gucc/logger.hpp" #include #include @@ -61,7 +62,9 @@ int main() { auto callback_sink = std::make_shared([](const spdlog::details::log_msg&) { // noop }); - spdlog::set_default_logger(std::make_shared("default", callback_sink)); + auto logger = std::make_shared("default", callback_sink); + spdlog::set_default_logger(logger); + gucc::logger::set_logger(logger); using namespace gucc; // NOLINT diff --git a/gucc/tests/unit-locale.cpp b/gucc/tests/unit-locale.cpp index 539b56c..2de74a0 100644 --- a/gucc/tests/unit-locale.cpp +++ b/gucc/tests/unit-locale.cpp @@ -1,5 +1,6 @@ #include "gucc/file_utils.hpp" #include "gucc/locale.hpp" +#include "gucc/logger.hpp" #include @@ -67,7 +68,9 @@ int main() { auto callback_sink = std::make_shared([](const spdlog::details::log_msg&) { // noop }); - spdlog::set_default_logger(std::make_shared("default", callback_sink)); + auto logger = std::make_shared("default", callback_sink); + spdlog::set_default_logger(logger); + gucc::logger::set_logger(logger); // prepare test data static constexpr std::string_view folder_testpath{"/tmp/test-locale-unittest"}; diff --git a/gucc/tests/unit-package_profiles.cpp b/gucc/tests/unit-package_profiles.cpp index 72af311..3e9c26b 100644 --- a/gucc/tests/unit-package_profiles.cpp +++ b/gucc/tests/unit-package_profiles.cpp @@ -1,4 +1,5 @@ #include "gucc/file_utils.hpp" +#include "gucc/logger.hpp" #include "gucc/package_profiles.hpp" #include @@ -62,7 +63,9 @@ int main() { auto callback_sink = std::make_shared([](const spdlog::details::log_msg&) { // noop }); - spdlog::set_default_logger(std::make_shared("default", callback_sink)); + auto logger = std::make_shared("default", callback_sink); + spdlog::set_default_logger(logger); + gucc::logger::set_logger(logger); // valid profile { diff --git a/src/main.cpp b/src/main.cpp index 3be86c8..0fd4d51 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5,6 +5,7 @@ // import gucc #include "gucc/io_utils.hpp" +#include "gucc/logger.hpp" #include // for seconds #include // for regex_search, match_result... @@ -44,6 +45,9 @@ int main() { spdlog::set_level(spdlog::level::debug); spdlog::flush_every(std::chrono::seconds(5)); + // Set gucc logger. + gucc::logger::set_logger(logger); + if (!utils::handle_connection()) { error_inter("An active network connection could not be detected, please connect and restart the installer.\n"); return 0;