[submodule "src/additional/leveldb"]
path = src/additional/leveldb
url = https://github.com/google/leveldb
+[submodule "src/additional/libqrencode"]
+ path = src/additional/libqrencode
+ url = https://github.com/fukuchi/libqrencode
--- /dev/null
+cmake_minimum_required(VERSION 3.4.1)
+
+##
+## mkdir build && cd build
+##
+## cmake -DBerkeleyDB_ROOT:STRING=/opt/homebrew/Cellar/berkeley-db@4/4.8.30 ..
+## cmake -DUSE_ASM=1 ..
+## cmake -DUSE_SSE2 ..
+## cmake -DBerkeleyDB_INC:STRING=/usr/include -DBerkeleyDB_LIBS:STRING=/usr/lib/aarch64-linux-gnu -DUSE_SSE2 -DUSE_LEVELDB ..
+##
+
+project(novacoin-qt VERSION 0.5.9 LANGUAGES C CXX OBJCXX ASM)
+
+find_program(CCACHE_FOUND ccache)
+if(CCACHE_FOUND)
+ set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+ set(CMAKE_C_COMPILER_LAUNCHER ccache)
+ set(CMAKE_CXX_COMPILER_LAUNCHER ccache)
+endif(CCACHE_FOUND)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 COMPONENTS LinguistTools Core Widgets Gui Network Qml REQUIRED)
+
+set (CMAKE_C_FLAGS "-flto -O3 -fPIC -Wno-deprecated -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2")
+set (CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fexceptions -frtti")
+
+set(Boost_USE_STATIC_LIBS ON)
+find_package(Boost REQUIRED COMPONENTS atomic chrono filesystem program_options system thread)
+set(OPENSSL_USE_STATIC_LIBS ON)
+find_package(OpenSSL REQUIRED)
+
+add_subdirectory(src/additional/libqrencode)
+add_subdirectory(src/additional/IXWebSocket)
+
+# Set default root path for berkeley db
+if (NOT BerkeleyDB_ROOT)
+set(BerkeleyDB_ROOT /usr)
+endif()
+
+# Set default include path for berkeley db
+if (NOT BerkeleyDB_INC)
+set(BerkeleyDB_INC ${BerkeleyDB_ROOT}/include)
+endif()
+
+if (NOT EXISTS ${BerkeleyDB_INC}/db_cxx.h)
+ message(FATAL_ERROR "Unable to find db_cxx.h header file in ${BerkeleyDB_INC} directory. Try to specify either include directory path via BerkeleyDB_INC or berkeley db root path via BerkeleyDB_ROOT variable.")
+endif()
+
+# Set default library path for berkeley db
+if (NOT BerkeleyDB_LIBS)
+set(BerkeleyDB_LIBS ${BerkeleyDB_ROOT}/lib)
+endif()
+
+set(generic_sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/bitcoin.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/bitcoingui.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/intro.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/transactiontablemodel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/addresstablemodel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/optionsdialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/sendcoinsdialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/coincontroldialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/coincontroltreewidget.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/addressbookpage.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/signverifymessagedialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/aboutdialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/editaddressdialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/bitcoinaddressvalidator.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/trafficgraphwidget.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/mintingfilterproxy.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/mintingtablemodel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/mintingview.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/kernelrecord.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/alert.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/version.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/sync.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/util.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/netbase.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/ntp.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/key.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/script.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/main.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/miner.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/init.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/net.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/stun.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/irc.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/checkpoints.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/addrman.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/db.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/walletdb.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/clientmodel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/guiutil.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/transactionrecord.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/optionsmodel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/monitoreddatamapper.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/transactiondesc.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/transactiondescdialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/bitcoinstrings.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/bitcoinamountfield.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/wallet.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/keystore.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/transactionfilterproxy.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/transactionview.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/walletmodel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/bitcoinrpc.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/rpcdump.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/rpcnet.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/rpcmining.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/rpcwallet.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/rpcblockchain.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/rpcrawtransaction.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/overviewpage.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/csvmodelwriter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/crypter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/sendcoinsentry.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/qvalidatedlineedit.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/bitcoinunits.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/qvaluecombobox.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/askpassphrasedialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/protocol.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/notificator.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/qtipcserver.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/rpcconsole.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/noui.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/kernel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/kernel_worker.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/multisigaddressentry.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/multisiginputentry.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/multisigdialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/secondauthdialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/qrcodedialog.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/base58.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/ipcollector.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/intro.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/coincontroldialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/sendcoinsdialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/addressbookpage.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/signverifymessagedialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/aboutdialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/editaddressdialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/transactiondescdialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/overviewpage.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/sendcoinsentry.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/askpassphrasedialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/rpcconsole.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/optionsdialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/multisigaddressentry.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/multisiginputentry.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/multisigdialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/secondauthdialog.ui
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/qrcodedialog.ui
+)
+
+qt6_create_translation(bitcoin_en_qm ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/locale/bitcoin_en.ts)
+qt6_create_translation(bitcoin_ru_qm ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/locale/bitcoin_ru.ts)
+qt6_create_translation(bitcoin_uk_qm ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/locale/bitcoin_uk.ts)
+
+configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/qt/bitcoin.qrc bitcoin.qrc)
+
+list(APPEND ALL_SOURCES ${generic_sources} bitcoin.qrc)
+list(APPEND ALL_LIBRARIES ${Boost_LIBRARIES} ixwebsocket OpenSSL::Crypto qrencode Qt6::Gui Qt6::Widgets Qt6::Core Qt6::Network)
+
+if (WIN32)
+ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/bitcoin-qt.rc bitcoin-qt.rc)
+ list(APPEND ALL_SOURCES bitcoin-qt.rc)
+endif()
+
+if (APPLE)
+ list(APPEND ALL_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/bitcoin.icns ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/macdockiconhandler.mm ${CMAKE_CURRENT_SOURCE_DIR}/src/qt/macnotificationhandler.mm)
+ list(APPEND ALL_LIBRARIES "-framework Foundation -framework ApplicationServices -framework AppKit")
+endif()
+
+# Try various libdb library file extensions
+if (EXISTS ${BerkeleyDB_LIBS}/libdb_cxx.a)
+ list(APPEND ALL_LIBRARIES ${BerkeleyDB_LIBS}/libdb_cxx.a)
+elseif(EXISTS ${BerkeleyDB_LIBS}/libdb_cxx.so)
+ list(APPEND ALL_LIBRARIES ${BerkeleyDB_LIBS}/libdb_cxx.so)
+elseif(EXISTS ${BerkeleyDB_LIBS}/libdb_cxx.dylib)
+ list(APPEND ALL_LIBRARIES ${BerkeleyDB_LIBS}/libdb_cxx.dylib)
+elseif(EXISTS ${BerkeleyDB_LIBS}/libdb_cxx.dll)
+ list(APPEND ALL_LIBRARIES ${BerkeleyDB_LIBS}/libdb_cxx.dll)
+else()
+ message(FATAL_ERROR "Unable to find libdb_cxx library in ${BerkeleyDB_LIBS} directory. Try to specify either library path via BerkeleyDB_LIBS or berkeley db root path via BerkeleyDB_ROOT variable.")
+endif()
+
+if(USE_LEVELDB)
+ # Disable useless targets
+ option(LEVELDB_BUILD_TESTS "Build LevelDB's unit tests" OFF)
+ option(LEVELDB_BUILD_BENCHMARKS "Build LevelDB's benchmarks" OFF)
+ option(LEVELDB_INSTALL "Install LevelDB's header and library" OFF)
+
+ add_subdirectory(src/additional/leveldb)
+ list(APPEND ALL_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/txdb-leveldb.cpp)
+ list(APPEND ALL_LIBRARIES leveldb)
+ list(APPEND ALL_DEFINITIONS USE_LEVELDB)
+else()
+ list(APPEND ALL_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/txdb-bdb.cpp)
+endif()
+
+if (USE_ASM)
+ # Assembler implementation
+ set(asm_sources
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/scrypt/asm/scrypt-arm.S
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/scrypt/asm/scrypt-x86.S
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/scrypt/asm/scrypt-x86_64.S
+ )
+
+ list(APPEND ALL_SOURCES ${generic_sources} ${asm_sources})
+ list(APPEND ALL_DEFINITIONS USE_ASM)
+elseif (USE_SSE2)
+ list( APPEND ALL_SOURCES ${generic_sources} ${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/scrypt/intrin/scrypt-sse2.cpp )
+ list(APPEND ALL_DEFINITIONS USE_SSE2)
+else()
+ list( APPEND ALL_SOURCES ${generic_sources} ${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/scrypt/generic/scrypt-generic.cpp )
+endif()
+
+# Generate build info header
+execute_process (
+ COMMAND sh -c "${CMAKE_CURRENT_SOURCE_DIR}/share/genbuild.sh ${CMAKE_CURRENT_SOURCE_DIR}/src/build.h"
+ OUTPUT_VARIABLE outVar
+)
+list(APPEND ALL_DEFINITIONS HAVE_BUILD_INFO)
+
+add_executable(novacoin-qt ${ALL_SOURCES})
+target_include_directories(novacoin-qt PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src ${CMAKE_CURRENT_SOURCE_DIR}/src/json ${BerkeleyDB_INC} ${CMAKE_CURRENT_SOURCE_DIR}/src/additional/leveldb/helpers ${Boost_INCLUDE_DIRS})
+target_link_libraries(novacoin-qt ${ALL_LIBRARIES})
+
+set_property(TARGET novacoin-qt PROPERTY CXX_STANDARD 17)
+set_property(TARGET novacoin-qt PROPERTY CXX_STANDARD_REQUIRED TRUE)
+set_property(TARGET novacoin-qt PROPERTY COMPILE_DEFINITIONS ${ALL_DEFINITIONS} USE_QRCODE)
+set_property(TARGET novacoin-qt PROPERTY CMAKE_WARN_DEPRECATED FALSE)
set (CMAKE_C_FLAGS "-flto -O3 -fPIC -Wno-deprecated -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2")
set (CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -fexceptions -frtti")
-# Add path for custom modules
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/additional/cmake)
-
set(Boost_USE_STATIC_LIBS ON)
find_package(Boost REQUIRED COMPONENTS atomic chrono filesystem program_options system thread)
set(OPENSSL_USE_STATIC_LIBS ON)
+++ /dev/null
-# Copyright (c) 2018 The Bitcoin developers
-
-find_program(BREW brew)
-
-function(find_brew_prefix VAR NAME)
- if(NOT BREW)
- return()
- endif()
-
- if(DEFINED ${VAR})
- return()
- endif()
-
- execute_process(
- COMMAND ${BREW} --prefix ${NAME}
- OUTPUT_VARIABLE PREFIX
- ERROR_QUIET
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- set(${VAR} ${PREFIX} PARENT_SCOPE)
-endfunction()
+++ /dev/null
-include(FindPackageMessage)
-
-# Find a library component, set the variables and create an imported target.
-# Variable names are compliant with cmake standards.
-function(find_component LIB COMPONENT)
- cmake_parse_arguments(ARG
- ""
- ""
- "HINTS;INCLUDE_DIRS;INTERFACE_LINK_LIBRARIES;NAMES;PATHS;PATH_SUFFIXES"
- ${ARGN}
- )
-
- # If the component is not requested, skip the search.
- if(${LIB}_FIND_COMPONENTS AND NOT ${COMPONENT} IN_LIST ${LIB}_FIND_COMPONENTS)
- return()
- endif()
-
- find_library(${LIB}_${COMPONENT}_LIBRARY
- NAMES ${ARG_NAMES}
- PATHS "" ${ARG_PATHS}
- HINTS "" ${ARG_HINTS}
- PATH_SUFFIXES "lib" ${ARG_PATH_SUFFIXES}
- )
- mark_as_advanced(${LIB}_${COMPONENT}_LIBRARY)
-
- if(${LIB}_${COMPONENT}_LIBRARY)
- # On success, set the standard FOUND variable...
- set(${LIB}_${COMPONENT}_FOUND TRUE PARENT_SCOPE)
-
- # ... and append the library path to the LIBRARIES variable ...
- list(APPEND ${LIB}_LIBRARIES
- "${${LIB}_${COMPONENT}_LIBRARY}"
- ${ARG_INTERFACE_LINK_LIBRARIES}
- )
- list(REMOVE_DUPLICATES ${LIB}_LIBRARIES)
- set(${LIB}_LIBRARIES ${${LIB}_LIBRARIES} PARENT_SCOPE)
-
- # ... and create an imported target for the component, if not already
- # done.
- if(NOT TARGET ${LIB}::${COMPONENT})
- add_library(${LIB}::${COMPONENT} UNKNOWN IMPORTED)
- set_target_properties(${LIB}::${COMPONENT} PROPERTIES
- IMPORTED_LOCATION "${${LIB}_${COMPONENT}_LIBRARY}"
- )
- set_property(TARGET ${LIB}::${COMPONENT} PROPERTY
- INTERFACE_INCLUDE_DIRECTORIES ${ARG_INCLUDE_DIRS}
- )
- set_property(TARGET ${LIB}::${COMPONENT} PROPERTY
- INTERFACE_LINK_LIBRARIES ${ARG_INTERFACE_LINK_LIBRARIES}
- )
- endif()
-
- find_package_message("${LIB}_${COMPONENT}"
- "Found ${LIB} component ${COMPONENT}: ${${LIB}_${COMPONENT}_LIBRARY}"
- "[${${LIB}_${COMPONENT}_LIBRARY}][${ARG_INCLUDE_DIRS}]"
- )
- endif()
-endfunction()
+++ /dev/null
-# Copyright (c) 2019-2020 The Bitcoin developers
-# Distributed under the MIT software license, see the accompanying
-# file COPYING or http://www.opensource.org/licenses/mit-license.php.
-
-#.rst
-# FindQREncode
-# -------------
-#
-# Find the QREncode library. The following
-# components are available::
-# qrencode
-#
-# This will define the following variables::
-#
-# QREncode_FOUND - system has QREncode lib
-# QREncode_INCLUDE_DIRS - the QREncode include directories
-# QREncode_LIBRARIES - Libraries needed to use QREncode
-#
-# And the following imported target::
-#
-# QREncode::qrencode
-
-include(BrewHelper)
-find_brew_prefix(_QREncode_BREW_HINT qrencode)
-
-find_package(PkgConfig)
-pkg_check_modules(PC_QREncode QUIET libqrencode)
-
-find_path(QREncode_INCLUDE_DIR
- NAMES qrencode.h
- HINTS ${_QREncode_BREW_HINT}
- PATHS ${PC_QREncode_INCLUDE_DIRS}
- PATH_SUFFIXES include
-)
-
-set(QREncode_INCLUDE_DIRS "${QREncode_INCLUDE_DIR}")
-mark_as_advanced(QREncode_INCLUDE_DIR)
-
-# TODO: extract a version number.
-# For now qrencode does not provide an easy way to extract a version number.
-
-if(QREncode_INCLUDE_DIR)
- include(ExternalLibraryHelper)
- find_component(QREncode qrencode
- NAMES qrencode
- HINTS ${_QREncode_BREW_HINT}
- PATHS ${PC_QREncode_LIBRARY_DIRS}
- INCLUDE_DIRS ${QREncode_INCLUDE_DIRS}
- )
-endif()
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(QREncode
- REQUIRED_VARS
- QREncode_INCLUDE_DIR
- REASON_FAILURE_MESSAGE "if displaying QR codes is not required, it can be skipped by passing -DENABLE_QRCODE=OFF to the cmake command line"
- HANDLE_COMPONENTS
-)
--- /dev/null
+Subproject commit 715e29fd4cd71b6e452ae0f4e36d917b43122ce8
#include "key.h"
#include "net.h"
#include "sync.h"
-#include "ui_interface.h"
+#include "interface.h"
using namespace std;
#include "init.h"
#include "util.h"
#include "sync.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "base58.h"
#include "bitcoinrpc.h"
#include "db.h"
#include "net.h"
#include "util.h"
#include "main.h"
-#include "ui_interface.h"
+#include "interface.h"
#include <boost/filesystem.hpp>
#include <boost/filesystem/fstream.hpp>
#include "init.h"
#include "util.h"
#include "ipcollector.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "checkpoints.h"
#include <boost/format.hpp>
#include <boost/filesystem.hpp>
#include "db.h"
#include "txdb.h"
#include "init.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "checkqueue.h"
#include "kernel.h"
#include <boost/algorithm/string/replace.hpp>
#include "net.h"
#include "init.h"
#include "addrman.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "miner.h"
#include "ntp.h"
// Copyright (c) 2009-2012 The Bitcoin developers
// Distributed under the MIT/X11 software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
-#include "ui_interface.h"
+#include "interface.h"
#include "init.h"
#include "bitcoinrpc.h"
#include "netbase.h"
#include "net.h"
//#include "util.h"
-#include "ui_interface.h"
+#include "interface.h"
extern int GetRandInt(int nMax);
#include "guiconstants.h"
#include "init.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "qtipcserver.h"
#include "intro.h"
<RCC>
<qresource prefix="/icons">
- <file alias="bitcoin">res/icons/novacoin-128.png</file>
- <file alias="address-book">res/icons/address-book.png</file>
- <file alias="quit">res/icons/quit.png</file>
- <file alias="send">res/icons/send.png</file>
- <file alias="toolbar">res/icons/novacoin-16.png</file>
- <file alias="connect_0">res/icons/connect0_16.png</file>
- <file alias="connect_1">res/icons/connect1_16.png</file>
- <file alias="connect_2">res/icons/connect2_16.png</file>
- <file alias="connect_3">res/icons/connect3_16.png</file>
- <file alias="connect_4">res/icons/connect4_16.png</file>
- <file alias="mining_active">res/icons/mining_active.png</file>
- <file alias="mining_inactive">res/icons/mining_inactive.png</file>
- <file alias="transaction_0">res/icons/transaction0.png</file>
- <file alias="transaction_confirmed">res/icons/transaction2.png</file>
- <file alias="transaction_1">res/icons/clock1.png</file>
- <file alias="transaction_2">res/icons/clock2.png</file>
- <file alias="transaction_3">res/icons/clock3.png</file>
- <file alias="transaction_4">res/icons/clock4.png</file>
- <file alias="transaction_5">res/icons/clock5.png</file>
- <file alias="options">res/icons/configure.png</file>
- <file alias="receiving_addresses">res/icons/receive.png</file>
- <file alias="editpaste">res/icons/editpaste.png</file>
- <file alias="editcopy">res/icons/editcopy.png</file>
- <file alias="add">res/icons/add.png</file>
- <file alias="bitcoin_testnet">res/icons/novacoin-128.png</file>
- <file alias="toolbar_testnet">res/icons/novacoin-16.png</file>
- <file alias="edit">res/icons/edit.png</file>
- <file alias="history">res/icons/history.png</file>
- <file alias="overview">res/icons/overview.png</file>
- <file alias="export">res/icons/export.png</file>
- <file alias="synced">res/icons/synced.png</file>
- <file alias="remove">res/icons/remove.png</file>
- <file alias="tx_mined">res/icons/tx_mined.png</file>
- <file alias="tx_input">res/icons/tx_input.png</file>
- <file alias="tx_output">res/icons/tx_output.png</file>
- <file alias="tx_inout">res/icons/tx_inout.png</file>
- <file alias="lock_closed">res/icons/lock_closed.png</file>
- <file alias="lock_open">res/icons/lock_open.png</file>
- <file alias="key">res/icons/key.png</file>
- <file alias="filesave">res/icons/filesave.png</file>
- <file alias="qrcode">res/icons/qrcode.png</file>
- <file alias="debugwindow">res/icons/debugwindow.png</file>
- <file alias="dump">res/icons/dump.png</file>
- <file alias="import">res/icons/import.png</file>
+ <file alias="bitcoin">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/novacoin-128.png</file>
+ <file alias="address-book">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/address-book.png</file>
+ <file alias="quit">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/quit.png</file>
+ <file alias="send">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/send.png</file>
+ <file alias="toolbar">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/novacoin-16.png</file>
+ <file alias="connect_0">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/connect0_16.png</file>
+ <file alias="connect_1">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/connect1_16.png</file>
+ <file alias="connect_2">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/connect2_16.png</file>
+ <file alias="connect_3">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/connect3_16.png</file>
+ <file alias="connect_4">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/connect4_16.png</file>
+ <file alias="mining_active">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/mining_active.png</file>
+ <file alias="mining_inactive">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/mining_inactive.png</file>
+ <file alias="transaction_0">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/transaction0.png</file>
+ <file alias="transaction_confirmed">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/transaction2.png</file>
+ <file alias="transaction_1">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/clock1.png</file>
+ <file alias="transaction_2">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/clock2.png</file>
+ <file alias="transaction_3">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/clock3.png</file>
+ <file alias="transaction_4">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/clock4.png</file>
+ <file alias="transaction_5">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/clock5.png</file>
+ <file alias="options">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/configure.png</file>
+ <file alias="receiving_addresses">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/receive.png</file>
+ <file alias="editpaste">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/editpaste.png</file>
+ <file alias="editcopy">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/editcopy.png</file>
+ <file alias="add">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/add.png</file>
+ <file alias="bitcoin_testnet">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/novacoin-128.png</file>
+ <file alias="toolbar_testnet">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/novacoin-16.png</file>
+ <file alias="edit">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/edit.png</file>
+ <file alias="history">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/history.png</file>
+ <file alias="overview">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/overview.png</file>
+ <file alias="export">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/export.png</file>
+ <file alias="synced">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/synced.png</file>
+ <file alias="remove">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/remove.png</file>
+ <file alias="tx_mined">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/tx_mined.png</file>
+ <file alias="tx_input">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/tx_input.png</file>
+ <file alias="tx_output">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/tx_output.png</file>
+ <file alias="tx_inout">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/tx_inout.png</file>
+ <file alias="lock_closed">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/lock_closed.png</file>
+ <file alias="lock_open">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/lock_open.png</file>
+ <file alias="key">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/key.png</file>
+ <file alias="filesave">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/filesave.png</file>
+ <file alias="qrcode">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/qrcode.png</file>
+ <file alias="debugwindow">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/debugwindow.png</file>
+ <file alias="dump">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/dump.png</file>
+ <file alias="import">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/import.png</file>
</qresource>
<qresource prefix="/images">
- <file alias="splash">res/images/splash2.jpg</file>
+ <file alias="splash">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/images/splash2.jpg</file>
</qresource>
<qresource prefix="/movies">
- <file alias="update_spinner">res/movies/update_spinner.mng</file>
+ <file alias="update_spinner">${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/movies/update_spinner.mng</file>
</qresource>
<qresource prefix="/translations">
- <file alias="en">locale/bitcoin_en.qm</file>
- <file alias="ru">locale/bitcoin_ru.qm</file>
- <file alias="uk">locale/bitcoin_uk.qm</file>
+ <file alias="en">${bitcoin_en_qm}</file>
+ <file alias="ru">${bitcoin_ru_qm}</file>
+ <file alias="uk">${bitcoin_uk_qm}</file>
</qresource>
</RCC>
#include "askpassphrasedialog.h"
#include "notificator.h"
#include "guiutil.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "rpcconsole.h"
#include "mintingview.h"
#include "alert.h"
#include "main.h"
-#include "ui_interface.h"
+#include "interface.h"
#include <QDateTime>
#include <QTimer>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="en">
-<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
<message>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="ru_RU">
-<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
<message>
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0" language="uk_UA">
-<defaultcodec>UTF-8</defaultcodec>
<context>
<name>AboutDialog</name>
<message>
+++ /dev/null
-CODECFORTR = UTF-8
-
-# for lrelease/lupdate
-# also add new translations to src/qt/bitcoin.qrc under translations/
-TRANSLATIONS = $$files(bitcoin_*.ts)
-
-isEmpty(QM_DIR):QM_DIR = $$PWD/src/qt/locale
-# automatically build translations, so they can be included in resource file
-TSQM.name = lrelease ${QMAKE_FILE_IN}
-TSQM.input = TRANSLATIONS
-TSQM.output = $$QM_DIR/${QMAKE_FILE_BASE}.qm
-TSQM.commands = $$QMAKE_LRELEASE ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_OUT}
-TSQM.CONFIG = no_link
-QMAKE_EXTRA_COMPILERS += TSQM
-
-windows:DEFINES += WIN32
-windows:RC_FILE = $$PWD/src/qt/res/bitcoin-qt.rc
#include "qtipcserver.h"
#include "guiconstants.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "util.h"
#include <boost/algorithm/string/predicate.hpp>
-IDI_ICON1 ICON DISCARDABLE "icons/novacoin.ico"
+IDI_ICON1 ICON DISCARDABLE "${CMAKE_CURRENT_SOURCE_DIR}/src/qt/res/icons/novacoin.ico"
#include <windows.h> // needed for VERSIONINFO
-#include "../../clientversion.h" // holds the needed client version information
+#include "${CMAKE_CURRENT_SOURCE_DIR}/src/clientversion.h" // holds the needed client version information
#define VER_PRODUCTVERSION CLIENT_VERSION_MAJOR,CLIENT_VERSION_MINOR,CLIENT_VERSION_REVISION,CLIENT_VERSION_BUILD
#define VER_PRODUCTVERSION_STR STRINGIZE(CLIENT_VERSION_MAJOR) "." STRINGIZE(CLIENT_VERSION_MINOR) "." STRINGIZE(CLIENT_VERSION_REVISION) "." STRINGIZE(CLIENT_VERSION_BUILD)
+++ /dev/null
-#include <QTest>\r
-#include <QObject>\r
-\r
-#include "uritests.h"\r
-\r
-// This is all you need to run all the tests\r
-int main(int argc, char *argv[])\r
-{\r
- bool fInvalid = false;\r
-\r
- URITests test1;\r
- if (QTest::qExec(&test1) != 0)\r
- fInvalid = true;\r
-\r
- return fInvalid;\r
-}\r
+++ /dev/null
-#include "uritests.h"
-#include "../guiutil.h"
-#include "../walletmodel.h"
-
-#include <QUrl>
-
-/*
-struct SendCoinsRecipient
-{
- QString address;
- QString label;
- qint64 amount;
-};
-*/
-
-void URITests::uriTests()
-{
- SendCoinsRecipient rv;
- QUrl uri;
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-dontexist="));
- QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?dontexist="));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
- QVERIFY(rv.label == QString());
- QVERIFY(rv.amount == 0);
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?label=Wikipedia Example Address"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
- QVERIFY(rv.label == QString("Wikipedia Example Address"));
- QVERIFY(rv.amount == 0);
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=0.001"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
- QVERIFY(rv.label == QString());
- QVERIFY(rv.amount == 100000);
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1.001"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
- QVERIFY(rv.label == QString());
- QVERIFY(rv.amount == 100100000);
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=100&label=Wikipedia Example"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
- QVERIFY(rv.amount == 10000000000LL);
- QVERIFY(rv.label == QString("Wikipedia Example"));
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address"));
- QVERIFY(GUIUtil::parseBitcoinURI(uri, &rv));
- QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
- QVERIFY(rv.label == QString());
-
- QVERIFY(GUIUtil::parseBitcoinURI("bitcoin://175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?message=Wikipedia Example Address", &rv));
- QVERIFY(rv.address == QString("175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W"));
- QVERIFY(rv.label == QString());
-
- // We currently don't implement the message parameter (ok, yea, we break spec...)
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?req-message=Wikipedia Example Address"));
- QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000&label=Wikipedia Example"));
- QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
-
- uri.setUrl(QString("bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?amount=1,000.0&label=Wikipedia Example"));
- QVERIFY(!GUIUtil::parseBitcoinURI(uri, &rv));
-}
+++ /dev/null
-#ifndef URITESTS_H
-#define URITESTS_H
-
-#include <QTest>
-#include <QObject>
-
-class URITests : public QObject
-{
- Q_OBJECT
-
-private slots:
- void uriTests();
-};
-
-#endif // URITESTS_H
#include "main.h"
#include "wallet.h"
#include "txdb.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "base58.h"
#include <vector>
#include "bitcoinunits.h"
#include "wallet.h"
-#include "ui_interface.h"
+#include "interface.h"
#include <QLocale>
#include <QList>
#include "mintingtablemodel.h"
#include "transactiontablemodel.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "wallet.h"
#include "walletdb.h" // for BackupWallet
#include "base58.h"
#include "init.h" // for pwalletMain
#include "bitcoinrpc.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "base58.h"
#define printf OutputDebugStringF
#include "util.h"
#include "sync.h"
#include "version.h"
-#include "ui_interface.h"
+#include "interface.h"
#include <boost/algorithm/string/join.hpp>
#include <boost/algorithm/string/case_conv.hpp> // for to_lower()
#include <boost/algorithm/string/predicate.hpp> // for startswith() and endswith()
#include "wallet.h"
#include "walletdb.h"
#include "crypter.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "base58.h"
#include "kernel.h"
#include "coincontrol.h"
#include "key.h"
#include "keystore.h"
#include "script.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "util.h"
#include "walletdb.h"
#include "base58.h"