mirror of
https://gitlab.com/niansa/SomeBot.git
synced 2025-03-06 20:48:26 +01:00
36 lines
1.2 KiB
CMake
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})
|