cmake_minimum_required(VERSION 3.19)
project(nekodl LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 26)

include(FetchContent)
FetchContent_Declare(ftxui
  GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui
  GIT_TAG v7.0.3
)
FetchContent_MakeAvailable(ftxui)

FetchContent_Declare(htmlparser
  GIT_REPOSITORY https://github.com/mylogin/htmlparser
  GIT_TAG f468bb3eb6ed2ac38b7c5cb8e6789346f888c69a
)
FetchContent_MakeAvailable(htmlparser)

find_package(Qt6 6.5 REQUIRED COMPONENTS Core Network)
find_package(Boost CONFIG REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LibTorrent REQUIRED IMPORTED_TARGET libtorrent-rasterbar)

qt_standard_project_setup()

qt_add_executable(nekodl
    main.cpp
    mainscreen.h mainscreen.cpp
    torrentsession.h torrentsession.cpp
)

target_include_directories(nekodl
    PRIVATE
        ${htmlparser_SOURCE_DIR}
)

target_link_libraries(nekodl
    PRIVATE
        Qt::Core
        Qt::Network
        PkgConfig::LibTorrent
        ftxui::ftxui
        htmlparser
        OpenSSL::SSL
        OpenSSL::Crypto
)

target_compile_definitions(nekodl PRIVATE TORRENT_USE_OPENSSL=1)

install(TARGETS nekodl
    BUNDLE  DESTINATION .
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
