diff options
author | bd <bdunahu@operationnull.com> | 2025-03-24 12:17:41 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-03-24 12:17:41 -0400 |
commit | 895b5ddd6fe4db906720ecbf0de0cab5acdb35ec (patch) | |
tree | 8d2d9df8054214d4c019ace03e33f74e6ba571d0 | |
parent | e05f5306f50029b0f5f471b70cfe45749d0d21f6 (diff) |
Added gui folder with its own CMake to house GUI+main.cc
-rw-r--r-- | CMakeLists.txt | 49 | ||||
-rw-r--r-- | gui/CMakeLists.txt | 30 | ||||
-rw-r--r-- | gui/gui.cc (renamed from src/gui/gui.cc) | 0 | ||||
-rw-r--r-- | gui/gui.h (renamed from inc/gui.h) | 0 | ||||
-rw-r--r-- | gui/gui.ui (renamed from src/gui/gui.ui) | 0 | ||||
-rw-r--r-- | gui/main.cc (renamed from src/main.cc) | 3 | ||||
-rw-r--r-- | gui/resources.qrc (renamed from src/gui/resources.qrc) | 0 | ||||
-rw-r--r-- | gui/resources/input.txt (renamed from src/gui/resources/input.txt) | 0 | ||||
-rw-r--r-- | inc/logger.h | 10 | ||||
-rw-r--r-- | src/logger/logger.cc | 20 |
10 files changed, 53 insertions, 59 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d4be3ee..9daac12 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,58 +1,45 @@ cmake_minimum_required(VERSION 3.5) +set(CMAKE_CXX_COMPILER "g++") project(risc_vector) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_AUTOUIC ON) # automatically process .ui files into headers -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -add_compile_options(-Wall -lstdc++) +add_compile_options(-Wall -lstdc++ -g -O0) add_compile_options(-Wextra -Wpedantic) # cpp standard set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_COMPILER "g++") - # header files include_directories( ${PROJECT_SOURCE_DIR}/inc ) +# add gui +add_subdirectory(gui) + # gather source files file(GLOB_RECURSE SRCS "src/*.cc") -list(REMOVE_ITEM SRCS "${CMAKE_CURRENT_SOURCE_DIR}/src/main.cc") # find QT components find_package(Qt6 COMPONENTS Widgets REQUIRED) +qt_standard_project_setup() # binary executable -add_executable(${PROJECT_NAME} ${SRCS}) -qt_add_resources(GUI_RESOURCES "src/gui/resources.qrc") -target_link_libraries(${PROJECT_NAME} PRIVATE Qt6::Widgets) - -# find_package(Catch2 REQUIRED) - -# #gather test files -# file(GLOB_RECURSE TESTS "tests/*.cc") - -# # test executable -# add_executable(tests ${SRCS} ${TESTS}) -# target_link_libraries(tests PRIVATE Catch2::Catch2WithMain PRIVATE Qt6::Widgets) - -# # test discovery -# include(CTest) -# include(Catch) -# catch_discover_tests(tests) +add_library(${PROJECT_NAME}_lib ${SRCS}) +target_link_libraries(${PROJECT_NAME}_lib) +find_package(Catch2 REQUIRED) -# # Gather GUI Source Files -# file(GLOB_RECURSE GUI_SRCS "src/gui/*.cc") +#gather test files +file(GLOB_RECURSE TESTS "tests/*.cc") -# # Gather GUI Resources -# qt_add_resources(GUI_RESOURCES "src/gui/resources.qrc") +# test executable +add_executable(tests ${SRCS} ${TESTS}) +target_link_libraries(tests PRIVATE Catch2::Catch2WithMain PRIVATE) -# # GUI executable -# qt_add_executable("${PROJECT_NAME}_gui" ${GUI_SRCS} ${SRCS} ${GUI_RESOURCES}) -# target_link_libraries("${PROJECT_NAME}_gui" PRIVATE Qt6::Widgets) +# test discovery +include(CTest) +include(Catch) +catch_discover_tests(tests) diff --git a/gui/CMakeLists.txt b/gui/CMakeLists.txt new file mode 100644 index 0000000..6b5eb22 --- /dev/null +++ b/gui/CMakeLists.txt @@ -0,0 +1,30 @@ +cmake_minimum_required(VERSION 3.5) +set(CMAKE_CXX_COMPILER "g++") + +add_compile_options(-Wall -lstdc++) +add_compile_options(-Wextra -Wpedantic) + +# cpp standard +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +# find QT components +find_package(Qt6 COMPONENTS Widgets REQUIRED) +qt_standard_project_setup() + +file(GLOB SRCS + "*.h" + "*.cc" + "*.ui" +) + +# gather gui source files +qt_add_resources(GUI_RESOURCES "resources.qrc") + +add_executable(risc_vector ${SRCS} ${GUI_RESOURCES}) +target_link_libraries(${PROJECT_NAME} PRIVATE ${PROJECT_NAME}_lib Qt6::Widgets) + +set_target_properties(risc_vector PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}" +) + diff --git a/src/gui/gui.cc b/gui/gui.cc index 9f2405d..9f2405d 100644 --- a/src/gui/gui.cc +++ b/gui/gui.cc diff --git a/src/gui/gui.ui b/gui/gui.ui index 5f71c91..5f71c91 100644 --- a/src/gui/gui.ui +++ b/gui/gui.ui diff --git a/src/main.cc b/gui/main.cc index be0a6f0..4c14fbe 100644 --- a/src/main.cc +++ b/gui/main.cc @@ -76,10 +76,11 @@ int main(int argc, char **argv) Cli cli; cli.run(); } else { + global_log->log(INFO, "Starting QT..."); QApplication a(argc, argv); Gui w; w.show(); - return a.exec(); + a.exec(); } global_log->log(INFO, "Cleaning up..."); diff --git a/src/gui/resources.qrc b/gui/resources.qrc index 8bfd4e7..8bfd4e7 100644 --- a/src/gui/resources.qrc +++ b/gui/resources.qrc diff --git a/src/gui/resources/input.txt b/gui/resources/input.txt index fc1c3cf..fc1c3cf 100644 --- a/src/gui/resources/input.txt +++ b/gui/resources/input.txt diff --git a/inc/logger.h b/inc/logger.h index 38527c8..88f9e30 100644 --- a/inc/logger.h +++ b/inc/logger.h @@ -11,7 +11,7 @@ class Logger public: static Logger* getInstance(); - ~Logger(); + ~Logger() = default; /** * Do not allow copies. @@ -32,15 +32,9 @@ class Logger void log(LogLevel, const string &); private: - /** - * Constructor. - * @param The file name to log to. - * @return A new logger object. - */ - Logger(const string &); + Logger() = default; static Logger* logger_instance; static LogLevel level; - static ofstream logFile; static string level_to_string(LogLevel); static int level_to_int(LogLevel); }; diff --git a/src/logger/logger.cc b/src/logger/logger.cc index 55d7a15..6dfaef1 100644 --- a/src/logger/logger.cc +++ b/src/logger/logger.cc @@ -6,21 +6,8 @@ using namespace std; LogLevel Logger::level = INFO; -ofstream Logger::logFile; Logger *Logger::logger_instance; -Logger::Logger(const string &filename) -{ - if (!filename.empty()) { - logFile.open(filename, ios::app); - if (!logFile.is_open()) { - cerr << "Error opening log file." << endl; - } - } -} - -Logger::~Logger() { logFile.close(); } - void Logger::setLevel(LogLevel level) { level = level; } void Logger::log(LogLevel level, const string &message) @@ -39,17 +26,12 @@ void Logger::log(LogLevel level, const string &message) << message << endl; cout << logEntry.str(); - - if (logFile.is_open()) { - logFile << logEntry.str(); - logFile.flush(); - } } Logger *Logger::getInstance() { if (logger_instance == nullptr) { - logger_instance = new Logger("vector.log"); + logger_instance = new Logger(); } return logger_instance; } |