From abf8000abde3af69ec27da189d2c7d00d1d29c6b Mon Sep 17 00:00:00 2001 From: Brett Date: Wed, 1 Nov 2023 13:16:01 -0400 Subject: [PATCH] cmake config --- clion_cmake_exec.txt | 31 +++++++++++++++++++++++++++++++ clion_cmake_lib.txt | 31 +++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 clion_cmake_exec.txt create mode 100644 clion_cmake_lib.txt diff --git a/clion_cmake_exec.txt b/clion_cmake_exec.txt new file mode 100644 index 0000000..3e01c00 --- /dev/null +++ b/clion_cmake_exec.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) +project(${PROJECT_NAME}) + +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 ${CMAKE_LANGUAGE_VERSION}) + +include_directories(include/) +file(GLOB_RECURSE PROJECT_BUILD_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + +add_executable(${PROJECT_NAME} ${PROJECT_BUILD_FILES}) + +target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Werror -Wpedantic -Wno-comment) +target_link_options(${PROJECT_NAME} PRIVATE -Wall -Werror -Wpedantic -Wno-comment) + +if (${ENABLE_ADDRSAN} MATCHES ON) + target_compile_options(${PROJECT_NAME} PRIVATE -fsanitize=address) + target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address) +endif () + +if (${ENABLE_UBSAN} MATCHES ON) + target_compile_options(${PROJECT_NAME} PRIVATE -fsanitize=undefined) + target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=undefined) +endif () + +if (${ENABLE_TSAN} MATCHES ON) + target_compile_options(${PROJECT_NAME} PRIVATE -fsanitize=thread) + target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=thread) +endif () diff --git a/clion_cmake_lib.txt b/clion_cmake_lib.txt new file mode 100644 index 0000000..fd87361 --- /dev/null +++ b/clion_cmake_lib.txt @@ -0,0 +1,31 @@ +cmake_minimum_required(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) +project(${PROJECT_NAME}) + +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 ${CMAKE_LANGUAGE_VERSION}) + +include_directories(include/) +file(GLOB_RECURSE PROJECT_BUILD_FILES "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp") + +add_library(${PROJECT_NAME}${CMAKE_LIBRARY_TYPE} ${PROJECT_BUILD_FILES}) + +target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Werror -Wpedantic -Wno-comment) +target_link_options(${PROJECT_NAME} PRIVATE -Wall -Werror -Wpedantic -Wno-comment) + +if (${ENABLE_ADDRSAN} MATCHES ON) + target_compile_options(${PROJECT_NAME} PRIVATE -fsanitize=address) + target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address) +endif () + +if (${ENABLE_UBSAN} MATCHES ON) + target_compile_options(${PROJECT_NAME} PRIVATE -fsanitize=undefined) + target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=undefined) +endif () + +if (${ENABLE_TSAN} MATCHES ON) + target_compile_options(${PROJECT_NAME} PRIVATE -fsanitize=thread) + target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=thread) +endif ()