1
0
Fork 0
mirror of https://gitlab.com/niansa/SomeBot.git synced 2025-03-06 20:48:26 +01:00
SomeBot/CMakeLists.txt
2023-12-07 01:31:19 +01:00

36 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.9)
project(SomeBot LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_compile_definitions(COMPILER_ID="${CMAKE_CXX_COMPILER_ID}")
add_compile_definitions(COMPILER_VERSION="${CMAKE_CXX_COMPILER_VERSION}")
add_compile_definitions(COMPILER_PLATFORM="${CMAKE_CXX_PLATFORM_ID}")
add_subdirectory(DPP)
file(GLOB MODULES modules/*.cpp modules/*.hpp)
add_executable(SomeBot main.cpp util.cpp bot.hpp ${MODULES})
target_link_libraries(SomeBot PRIVATE dpp sqlite3 pthread)
if (CMAKE_BUILD_TYPE STREQUAL "Release")
set_property(TARGET SomeBot PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
message(STATUS "Interprocedural optimization is enabled")
endif()
target_compile_options(SomeBot PRIVATE
-Wall -Wextra -Wpedantic
)
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
set(UBSAN_FLAGS "-fsanitize=undefined")
if (CMAKE_BUILD_TYPE STREQUAL "Release")
set(UBSAN_FLAGS ${UBSAN_FLAGS} "-fsanitize-minimal-runtime")
endif()
target_compile_options(SomeBot PUBLIC ${UBSAN_FLAGS})
target_link_options(SomeBot PUBLIC ${UBSAN_FLAGS})
message(STATUS "Undefined sanitizer runtime is enabled")
endif()
install(TARGETS SomeBot
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})