cmake_minimum_required(VERSION 3.20)
project(NerbusWallet VERSION 0.2.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(Qt6 6.2 REQUIRED COMPONENTS Widgets Network Svg)
if(WIN32)
  add_library(sodium SHARED IMPORTED)
  set_target_properties(sodium PROPERTIES
    IMPORTED_IMPLIB "${CMAKE_CURRENT_SOURCE_DIR}/vendor/sodium/lib/libsodium.lib"
    IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/vendor/sodium/bin/libsodium.dll"
    INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/vendor/sodium/include")
else()
  find_package(PkgConfig REQUIRED)
  pkg_check_modules(SODIUM REQUIRED IMPORTED_TARGET libsodium)
  add_library(sodium ALIAS PkgConfig::SODIUM)
endif()
qt_add_executable(nerbus-qt WIN32 wallet_app.cpp wallet_store.cpp wallet_store.h)
target_link_libraries(nerbus-qt PRIVATE Qt6::Widgets Qt6::Network Qt6::Svg sodium)
if(MSVC)
  target_compile_options(nerbus-qt PRIVATE /utf-8 /W4)
endif()
if(WIN32)
  add_custom_command(TARGET nerbus-qt POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:sodium> $<TARGET_FILE_DIR:nerbus-qt>)
endif()
install(TARGETS nerbus-qt RUNTIME DESTINATION .)
