diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..568899d --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*~* +*\#* +build \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..958865f --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,9 @@ +cmake_minimum_required(VERSION 3.2) + +project(gark-project + LANGUAGES CXX +) + +add_subdirectory(lib) +add_subdirectory(src) +add_subdirectory(tests) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..b1958ea --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +.PHONY: build tests install + +build: + cmake -B build + cmake --build build + +tests: build + build/gark-tests + +install: tests + sudo cmake --install build + +force-install: + sudo cmake --install build diff --git a/doc/grammar.bnf b/doc/grammar.bnf new file mode 100644 index 0000000..e69de29 diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt new file mode 100644 index 0000000..af284a0 --- /dev/null +++ b/lib/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required(VERSION 3.2) + +project(gark-lib + LANGUAGES CXX +) + +add_library(gark-lib + Module.cpp +) + +set_property(TARGET gark-lib PROPERTY CXX_STANDARD 17) + +target_compile_options(gark-lib + PUBLIC -Wall -Wextra +) diff --git a/lib/Module.cpp b/lib/Module.cpp new file mode 100644 index 0000000..e70441a --- /dev/null +++ b/lib/Module.cpp @@ -0,0 +1,12 @@ +#include "Module.hpp" + +namespace gk +{ + /*explicit*/ Module::Module() + { + } + + /*virtual*/ Module::~Module() + { + } +} diff --git a/lib/Module.hpp b/lib/Module.hpp new file mode 100644 index 0000000..28ece12 --- /dev/null +++ b/lib/Module.hpp @@ -0,0 +1,16 @@ +#ifndef gk_MODULE_HPP +#define gk_MODULE_HPP + +namespace gk +{ + class Module + { + public: + explicit Module(); + virtual ~Module(); + + private: + }; +} + +#endif diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..da71b96 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.2) + +project(gark + LANGUAGES CXX +) + +add_executable(gark + main.cpp +) + +add_dependencies(gark gark-lib) + +set_property(TARGET gark PROPERTY CXX_STANDARD 17) + +target_link_libraries(gark + PRIVATE gark-lib +) + +install(TARGETS gark) diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..e32c011 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,6 @@ +#include + +int main() +{ + return 0; +} diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..e0d81f1 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.2) + +project(gark-tests + LANGUAGES CXX +) + +add_executable(gark-tests + trivial.cpp +) + +add_dependencies(gark-tests gark-lib) + +set_property(TARGET gark-tests PROPERTY CXX_STANDARD 17) + +find_package(Catch2 REQUIRED) + +target_link_libraries(gark-tests + PRIVATE gark-lib + PRIVATE Catch2::Catch2WithMain +) diff --git a/tests/trivial.cpp b/tests/trivial.cpp new file mode 100644 index 0000000..19a956a --- /dev/null +++ b/tests/trivial.cpp @@ -0,0 +1,15 @@ +#include + +class trivialTest +{ +public: + explicit trivialTest() {} + virtual ~trivialTest() {} + +protected: +}; + +TEST_CASE_METHOD(trivialTest, "trivial_") +{ + REQUIRE(0 == 0); +}