diff options
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 41 |
1 files changed, 37 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 9810762..25ead17 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,45 @@ cmake_minimum_required(VERSION 3.2.0) +set(CMAKE_EXPORT_COMPILE_COMMANDS 1) +set(CMAKE_CXX_STANDARD 20) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + + project(yacppdic CXX) -add_library(${PROJECT_NAME} INTERFACE) +add_library(${PROJECT_NAME} STATIC) + +target_sources( + ${PROJECT_NAME} + PRIVATE + src/container.cpp + src/object_type.cpp +) + +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 + -Wmissing-declarations -Wmissing-include-dirs + -Woverloaded-virtual -Wredundant-decls + -Wsign-conversion -Wsign-promo + -Wstrict-overflow=5 -Wswitch-default + -Wundef -Werror + -pedantic -fsanitize=address -fno-exceptions -stdlib=libc++ +) + +target_link_options(${PROJECT_NAME} PRIVATE -fsanitize=address -stdlib=libc++) -target_include_directories( - ${PROJECT_NAME} - INTERFACE +target_include_directories(${PROJECT_NAME} + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/src + PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> ) |