From c41090d12f4c7269524124dc0a2b5f9a03a61d93 Mon Sep 17 00:00:00 2001 From: HampusM Date: Fri, 25 Feb 2022 18:05:20 +0100 Subject: build: improve CMakeLists --- src/CMakeLists.txt | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/CMakeLists.txt (limited to 'src/CMakeLists.txt') 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) -- cgit v1.2.3-18-g5258