#
#
# ***********************************************************************************
# * Copyright (C) 2018 - 2020, BlockSettle AB
# * Distributed under the GNU Affero General Public License (AGPL v3)
# * See LICENSE or http://www.gnu.org/licenses/agpl.html
# *
# **********************************************************************************
#
#
PROJECT( ${SIGNER_APP_NAME} )

configure_file(SignerVersion.h.in SignerVersion.h)

SET(BSNetwork ${BLOCK_SETTLE_ROOT}/common/BlocksettleNetworkingLib)

FILE(GLOB SOURCES *.cpp)
FILE(GLOB SOURCES_QML interfaces/GUI_QML/*.cpp)
LIST(APPEND SOURCES ${SOURCES_QML})

FILE(GLOB HEADERS *.h)
FILE(GLOB HEADERS_QML interfaces/GUI_QML/*.h)
LIST(APPEND HEADERS ${HEADERS_QML})

FILE(GLOB RESOURCE_FILES *.qrc)

FILE(GLOB BIP39DICTIONARIES ${THIRD_PARTY_COMMON_DIR}/bips/bip-0039/*.txt)
FILE(COPY ${BIP39DICTIONARIES}
    DESTINATION ${CMAKE_CURRENT_SOURCE_DIR}/bip39Dictionaries)

INCLUDE_DIRECTORIES( interfaces/GUI_QML )
INCLUDE_DIRECTORIES( ${COMMON_LIB_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${BS_NETWORK_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${BS_COMMON_ENUMS_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${BS_COMMUNICATION_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${BS_STORAGE_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${WALLET_LIB_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${CRYPTO_LIB_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${PATH_TO_GENERATED} )
INCLUDE_DIRECTORIES( ${NETTY_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${BS_TERMINAL_API_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${MARKET_ENUMS_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${BOTAN_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${COMMON_UI_LIB_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${BLOCKSETTLE_UI_INCLUDE_DIR} )
INCLUDE_DIRECTORIES( ${Qt5DBus_INCLUDE_DIRS} )
INCLUDE_DIRECTORIES( ${BS_HW_LIB_INCLUDE_DIR} )

qt5_add_resources( GENERATED_RESOURCES ${RESOURCE_FILES})
qt5_add_resources( GENERATED_RESOURCES ${BLOCKSETTLE_UI_INCLUDE_DIR}/armory.qrc)

IF ( APPLE )
    SET( BUNDLE_NAME "BlockSettle Signer" )

    SET( MACOSX_BUNDLE_BUNDLE_NAME ${BUNDLE_NAME} )
    SET( MACOSX_BUNDLE_GUI_IDENTIFIER "com.blocksettle.signer" )
    SET( MACOSX_BUNDLE_BUNDLE_VERSION ${BS_VERSION_STRING})
    SET( MACOSX_BUNDLE_SHORT_VERSION_STRING ${BS_VERSION_STRING})
    SET( MACOSX_BUNDLE_LONG_VERSION_STRING ${BS_VERSION_STRING})

    SET( MACOSX_BUNDLE_ICON_FILE "interfaces/GUI_QML/blocksettle_signer.icns" )

    SET(BS_SIGNER_ICNS_FILE "interfaces/GUI_QML/blocksettle_signer.icns")

    SET_SOURCE_FILES_PROPERTIES(${BS_SIGNER_ICNS_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
    ADD_EXECUTABLE(${SIGNER_APP_NAME} MACOSX_BUNDLE ${SOURCES} ${HEADERS} ${GENERATED_RESOURCES} ${BS_SIGNER_ICNS_FILE})
    SET_TARGET_PROPERTIES(${SIGNER_APP_NAME} PROPERTIES OUTPUT_NAME "${BUNDLE_NAME}")
ELSEIF ( WIN32 )
#   SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
    ADD_EXECUTABLE(${SIGNER_APP_NAME} WIN32 ${SOURCES} ${HEADERS} ${GENERATED_RESOURCES} blocksettle.rc)
ELSE ()
    ADD_EXECUTABLE(${SIGNER_APP_NAME} ${SOURCES} ${HEADERS} ${GENERATED_RESOURCES})
ENDIF ()


TARGET_LINK_LIBRARIES(${SIGNER_APP_NAME}
   ${BLOCKSETTLE_UI_LIBRARY_NAME}
   ${BS_NETWORK_LIB_NAME}
   ${BLOCKSETTLE_HW_LIBRARY_NAME}
   ${CPP_WALLET_LIB_NAME}
   ${CRYPTO_LIB_NAME}
   ${BOTAN_LIB}
   ${ZMQ_LIB}
   ${WS_LIB}
   ${QRENCODE_LIB}
   ${QT_LINUX_LIBS}
   ${QT_QUICK_LIBS}
   Qt5::Qml
   Qt5::Quick
   Qt5::Gui
   Qt5::DBus
   Qt5::Network
   Qt5::PrintSupport
   Qt5::Core
   ${QT_LIBS}
   ${OS_SPECIFIC_LIBS}
   ${OPENSSL_LIBS}
)
