From 1b8af4198f7f18ccbfb336709f20a88e26e2b195 Mon Sep 17 00:00:00 2001 From: Dawsyn Schraiber Date: Sat, 2 Sep 2023 09:55:10 -0400 Subject: Project Structure and Build System --- .gitignore | 2 ++ CMakeLists.txt | 23 +++++++++++++++++++++++ README.md | 13 +++++++++++++ src/CMakeLists.txt | 1 + src/active-drag-system.cpp | 7 +++++++ test/CMakeLists.txt | 14 ++++++++++++++ test/hello_test.cc | 9 +++++++++ 7 files changed, 69 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 README.md create mode 100644 src/CMakeLists.txt create mode 100644 src/active-drag-system.cpp create mode 100644 test/CMakeLists.txt create mode 100644 test/hello_test.cc diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c243f0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build/* +Testing/* diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..afe6539 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 3.14) +project(Active-Drag-System CXX) + +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror") +include(CTest) + +add_subdirectory(src) +if(BUILD_TESTING) + add_subdirectory(test) +endif() + +include(FetchContent) +FetchContent_Declare( + googletest + URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip +) + +# For Windows: Prevent overriding the parent project's compiler/linker settings +set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) +FetchContent_MakeAvailable(googletest) + diff --git a/README.md b/README.md new file mode 100644 index 0000000..eb36387 --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Active Drag System (ADS) +This is the main codebase for Rocketry at Virginia Tech's Active Drag System, also known coloquially as the ADS, for the 2023-2024 competition year. It runs primarily on a BeagleBone Black, and its goal is to autonomously control the ADS' deployment during flight. + +## BUILD +cmake -B build +cmake --build build/ + +## RUN +cd build && src/ads + +## TEST +cd build && ctest + diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..95d2f15 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1 @@ +add_executable (ads active-drag-system.cpp) diff --git a/src/active-drag-system.cpp b/src/active-drag-system.cpp new file mode 100644 index 0000000..2b76215 --- /dev/null +++ b/src/active-drag-system.cpp @@ -0,0 +1,7 @@ +#include +#include + +int main() { + std::cout << "ADS Deployed!" << std::endl; + return EXIT_SUCCESS; +} diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..9aef78e --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,14 @@ +enable_testing() + +add_executable( + hello_test + hello_test.cc +) +target_link_libraries( + hello_test + GTest::gtest_main +) + +include(GoogleTest) +gtest_discover_tests(hello_test) + diff --git a/test/hello_test.cc b/test/hello_test.cc new file mode 100644 index 0000000..5a57e13 --- /dev/null +++ b/test/hello_test.cc @@ -0,0 +1,9 @@ +#include + +// Demonstrate some basic assertions. +TEST(HelloTest, BasicAssertions) { + // Expect two strings not to be equal. + EXPECT_STRNE("hello", "world"); + // Expect equality. + EXPECT_EQ(7 * 6, 42); +} -- cgit v1.2.3