From f1520cadc1626db773f9d388ad9c26db622c2f8b Mon Sep 17 00:00:00 2001 From: Brett Laptop Date: Thu, 11 Apr 2024 17:53:30 -0400 Subject: [PATCH] init --- .gitignore | 2 ++ CMakeLists.txt | 31 +++++++++++++++++++++++++++++++ main.cpp | 7 +++++++ 3 files changed, 40 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100644 main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e5bb5c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +cmake-build-*/ +build*/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..1d5e637 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION 3.25) +project(graphs) + +option(ENABLE_ADDRSAN "Enable the address sanitizer" OFF) +option(ENABLE_UBSAN "Enable the ub sanitizer" OFF) +option(ENABLE_TSAN "Enable the thread data race sanitizer" OFF) + +set(CMAKE_CXX_STANDARD 17) + +include_directories(include/) +file(GLOB_RECURSE PROJECT_BUILD_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + +add_executable(graphs ${PROJECT_BUILD_FILES}) + +target_compile_options(graphs PRIVATE -Wall -Werror -Wpedantic -Wno-comment) +target_link_options(graphs PRIVATE -Wall -Werror -Wpedantic -Wno-comment) + +if (${ENABLE_ADDRSAN} MATCHES ON) + target_compile_options(graphs PRIVATE -fsanitize=address) + target_link_options(graphs PRIVATE -fsanitize=address) +endif () + +if (${ENABLE_UBSAN} MATCHES ON) + target_compile_options(graphs PRIVATE -fsanitize=undefined) + target_link_options(graphs PRIVATE -fsanitize=undefined) +endif () + +if (${ENABLE_TSAN} MATCHES ON) + target_compile_options(graphs PRIVATE -fsanitize=thread) + target_link_options(graphs PRIVATE -fsanitize=thread) +endif () \ No newline at end of file diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..4f9de56 --- /dev/null +++ b/main.cpp @@ -0,0 +1,7 @@ +#include + +int main() +{ + std::cout << "Hello, World!" << std::endl; + return 0; +}