cmake_minimum_required(VERSION 3.22)
project(lingmo-archive-manager VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
include(GNUInstallDirs)
include(CTest)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LibArchive REQUIRED IMPORTED_TARGET libarchive)
option(ARCHIVE_MANAGER_BUILD_UI "Build the Lingmo SDK application" ON)
add_library(archive-manager-core STATIC src/archive.cpp)
target_include_directories(archive-manager-core PUBLIC src)
target_link_libraries(archive-manager-core PUBLIC PkgConfig::LibArchive)
if(ARCHIVE_MANAGER_BUILD_UI)
    find_package(LingmoSDK REQUIRED)
    add_library(archive-manager-ui STATIC src/archivewindow.cpp src/globalmenu.cpp)
    target_link_libraries(archive-manager-ui PUBLIC archive-manager-core Lingmo::SDK)
    add_executable(lingmo-archive-manager src/main.cpp)
    target_link_libraries(lingmo-archive-manager PRIVATE archive-manager-ui)
    install(TARGETS lingmo-archive-manager RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
    install(FILES data/lingmo-archive-manager.svg DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps)
    lingmo_add_translations(lingmo-archive-manager SOURCES src DESKTOP_FILES lingmo-archive-manager.desktop)
    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/lingmo-archive-manager.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
endif()
if(BUILD_TESTING)
    add_subdirectory(tests)
endif()
