cmake_minimum_required(VERSION 3.13) set(CMAKE_C_STANDARD 11) set(CMAKE_CXX_STANDARD 20) project(xbot VERSION 1 LANGUAGES C CXX ) find_package(Boost 1.83.0 CONFIG COMPONENTS log) find_package(PkgConfig REQUIRED) pkg_check_modules(LIBHS libhs REQUIRED IMPORTED_TARGET) include(FetchContent) FetchContent_Declare( tomlplusplus GIT_REPOSITORY https://github.com/marzer/tomlplusplus.git GIT_TAG v3.4.0 ) FetchContent_MakeAvailable(tomlplusplus) add_custom_command( OUTPUT irc_commands.inc COMMAND gperf -C -Z IrcCommandHash -K text -L C++ -t --output-file irc_commands.inc ${CMAKE_CURRENT_SOURCE_DIR}/irc_commands.gperf DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/irc_commands.gperf VERBATIM) add_subdirectory(mybase64) add_executable(xbot main.cpp irc_commands.inc ircmsg.cpp settings.cpp connection.cpp write_irc.cpp registration_thread.cpp ping_thread.cpp snote_thread.cpp self_thread.cpp watchdog_thread.cpp ) # command_thread.cpp priv_thread.cpp # sasl_thread.cpp) target_include_directories(xbot PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) target_link_libraries(xbot PRIVATE Boost::log Boost::headers tomlplusplus_tomlplusplus PkgConfig::LIBHS mybase64)