summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-04-11 23:09:49 -0400
committerbd <bdunahu@operationnull.com>2025-04-11 23:09:49 -0400
commitdf580c5352528a4837b996a838f486d3838050a4 (patch)
tree72671b34d6baf1ea2ec4cd02f73fe51338ce0b6d /CMakeLists.txt
parent3eeb345d673bee6d62b04fc8a8a95ab822dc1e45 (diff)
Move storage to a separate git repository.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt31
1 files changed, 25 insertions, 6 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9daac12..c7918b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,12 +1,27 @@
cmake_minimum_required(VERSION 3.5)
-set(CMAKE_CXX_COMPILER "g++")
project(risc_vector)
+find_package(Git QUIET)
+if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
+ execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --remote --recursive
+ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+ RESULT_VARIABLE GIT_SUBMOD_RESULT)
+ if(NOT GIT_SUBMOD_RESULT EQUAL "0")
+ message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
+ endif()
+endif()
+
+if(NOT EXISTS "${PROJECT_SOURCE_DIR}/ram/CMakeLists.txt")
+ message(FATAL_ERROR "The submodules were not downloaded! GIT_SUBMODULE was turned off or failed. Please update submodules and try again.")
+endif()
+
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_compile_options(-Wall -lstdc++ -g -O0)
add_compile_options(-Wextra -Wpedantic)
+set(RAM ram)
+
# cpp standard
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -16,7 +31,11 @@ include_directories(
${PROJECT_SOURCE_DIR}/inc
)
-# add gui
+# don't build RAM's tests
+set(RAM_TESTS OF CACHE BOOL "" FORCE)
+
+# add submodules
+add_subdirectory(${RAM})
add_subdirectory(gui)
# gather source files
@@ -28,7 +47,7 @@ qt_standard_project_setup()
# binary executable
add_library(${PROJECT_NAME}_lib ${SRCS})
-target_link_libraries(${PROJECT_NAME}_lib)
+target_link_libraries(${PROJECT_NAME}_lib ${RAM}_lib)
find_package(Catch2 REQUIRED)
@@ -36,10 +55,10 @@ find_package(Catch2 REQUIRED)
file(GLOB_RECURSE TESTS "tests/*.cc")
# test executable
-add_executable(tests ${SRCS} ${TESTS})
-target_link_libraries(tests PRIVATE Catch2::Catch2WithMain PRIVATE)
+add_executable(test_rv ${SRCS} ${TESTS})
+target_link_libraries(test_rv PRIVATE Catch2::Catch2WithMain PRIVATE ${RAM}_lib)
# test discovery
include(CTest)
include(Catch)
-catch_discover_tests(tests)
+catch_discover_tests(test_rv)