aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2022-02-18 19:50:22 +0100
committerHampusM <hampus@hampusmat.com>2022-06-13 17:56:41 +0200
commit4210c8d2f8fc36e614b8bfb669511c00383002f0 (patch)
tree8e27ab794f64e43930ec091b90896c6d9794a7c9 /CMakeLists.txt
parent9a68aa2f4c45fab7bdeefd426778334d70b57fc3 (diff)
add basic projects files
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt32
1 files changed, 32 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..278d57e
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,32 @@
+cmake_minimum_required(VERSION 3.2.0)
+
+set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
+set(CMAKE_CXX_STANDARD 20)
+
+project(game-of-life CXX)
+
+file(GLOB SOURCES src/game_of_life.cpp)
+
+add_executable(${PROJECT_NAME} ${SOURCES})
+
+target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_20)
+
+target_compile_options(
+ ${PROJECT_NAME}
+ PRIVATE
+ -Wall -Wextra -Wpedantic -Wshadow
+ -Wold-style-cast -Wcast-align -Wno-unused
+ -Wconversion -Wcast-qual -Wctor-dtor-privacy
+ -Wdisabled-optimization -Wformat=2 -Winit-self
+ -Wlogical-op -Wmissing-declarations
+ -Wmissing-include-dirs -Wnoexcept -Woverloaded-virtual
+ -Wredundant-decls -Wsign-conversion -Wsign-promo
+ -Wstrict-null-sentinel -Wstrict-overflow=5 -Wswitch-default
+ -Wundef -Werror
+ -pedantic -fsanitize=address
+)
+
+target_include_directories(${PROJECT_NAME} PRIVATE src)
+
+target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address)
+