aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt41
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>
)