aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..04f3e02
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,38 @@
+function(target_link_libraries_system target)
+ set(libs ${ARGN})
+
+ foreach(lib ${libs})
+ get_target_property(lib_include_dirs ${lib} INTERFACE_INCLUDE_DIRECTORIES)
+ target_include_directories(${target} SYSTEM PRIVATE ${lib_include_dirs})
+ target_link_libraries(${target} ${lib})
+ endforeach(lib)
+endfunction(target_link_libraries_system)
+
+file(GLOB SOURCES
+ game_of_life.cpp
+ conversion.cpp
+ randomization.cpp)
+
+add_executable(${PROJECT_NAME} ${SOURCES})
+
+target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
+
+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 -fno-exceptions
+)
+
+
+target_include_directories(${PROJECT_NAME} PRIVATE .)
+
+target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address)