summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt49
-rw-r--r--gui/CMakeLists.txt30
-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.h10
-rw-r--r--src/logger/logger.cc20
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/inc/gui.h b/gui/gui.h
index 668fafa..668fafa 100644
--- a/inc/gui.h
+++ b/gui/gui.h
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;
}