cmake_minimum_required(VERSION 3.21) project(shinoa VERSION 0.1.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) include(FetchContent) option(TELEGRAM_TUI_USE_SYSTEM_TDLIB "Use an installed TDLib package instead of fetching it." OFF) set(CURSES_NEED_WIDE TRUE) find_package(Curses REQUIRED) if(TELEGRAM_TUI_USE_SYSTEM_TDLIB) find_package(Td REQUIRED) else() set(TD_ENABLE_JNI OFF CACHE BOOL "" FORCE) set(TD_ENABLE_DOTNET OFF CACHE BOOL "" FORCE) set(TD_ENABLE_TESTS OFF CACHE BOOL "" FORCE) set(TD_ENABLE_BENCHMARKS OFF CACHE BOOL "" FORCE) set(TD_ENABLE_INSTALL OFF CACHE BOOL "" FORCE) set(BUILD_SHARED_LIBS ON CACHE BOOL "" FORCE) FetchContent_Declare( tdlib GIT_REPOSITORY https://github.com/tdlib/td.git GIT_TAG 8921c22f0f85b3cb0b56303f9cba81ba8549f4e8 GIT_SHALLOW TRUE ) FetchContent_MakeAvailable(tdlib) endif() add_executable( shinoa src/app_attachments.cpp src/app_chats.cpp src/app.cpp src/app_auth.cpp src/app_state.cpp src/main.cpp src/models.cpp src/td_client.cpp src/util.cpp ) target_include_directories(shinoa PRIVATE ${CURSES_INCLUDE_DIRS}) target_link_libraries(shinoa PRIVATE ${CURSES_LIBRARIES}) if(TELEGRAM_TUI_USE_SYSTEM_TDLIB) target_link_libraries(shinoa PRIVATE Td::TdJson) else() target_link_libraries(shinoa PRIVATE Td::TdJson) endif()