2023-01-19 23:14:46 +00:00
|
|
|
# The Flutter tooling requires that developers have CMake 3.10 or later
|
|
|
|
# installed. You should not increase this version, as doing so will cause
|
|
|
|
# the plugin to fail to compile for some customers of the plugin.
|
|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
|
|
|
|
# Project-level configuration.
|
|
|
|
set(PROJECT_NAME "cw_monero")
|
|
|
|
project(${PROJECT_NAME} LANGUAGES CXX)
|
|
|
|
|
|
|
|
# This value is used when generating builds using this plugin, so it must
|
|
|
|
# not be changed.
|
|
|
|
set(PLUGIN_NAME "cw_monero_plugin")
|
|
|
|
|
|
|
|
# Define the plugin library target. Its name must not be changed (see comment
|
|
|
|
# on PLUGIN_NAME above).
|
|
|
|
#
|
|
|
|
# Any new source files that you add to the plugin should be added here.
|
|
|
|
add_library(${PLUGIN_NAME} SHARED
|
|
|
|
"cw_monero_plugin.cc"
|
2023-04-18 20:45:32 +00:00
|
|
|
"../ios/Classes/monero_api.cpp"
|
2023-01-19 23:14:46 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
# Apply a standard set of build settings that are configured in the
|
|
|
|
# application-level CMakeLists.txt. This can be removed for plugins that want
|
|
|
|
# full control over build settings.
|
|
|
|
apply_standard_settings(${PLUGIN_NAME})
|
|
|
|
|
|
|
|
# Symbols are hidden by default to reduce the chance of accidental conflicts
|
|
|
|
# between plugins. This should not be removed; any symbols that should be
|
|
|
|
# exported should be explicitly exported with the FLUTTER_PLUGIN_EXPORT macro.
|
|
|
|
set_target_properties(${PLUGIN_NAME} PROPERTIES
|
|
|
|
CXX_VISIBILITY_PRESET hidden)
|
|
|
|
target_compile_definitions(${PLUGIN_NAME} PRIVATE FLUTTER_PLUGIN_IMPL)
|
|
|
|
|
|
|
|
# Source include directories and library dependencies. Add any plugin-specific
|
|
|
|
# dependencies here.
|
|
|
|
target_include_directories(${PLUGIN_NAME} INTERFACE
|
|
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/include")
|
|
|
|
target_link_libraries(${PLUGIN_NAME} PRIVATE flutter)
|
|
|
|
target_link_libraries(${PLUGIN_NAME} PRIVATE PkgConfig::GTK)
|
2023-04-18 20:45:32 +00:00
|
|
|
target_link_libraries(${PLUGIN_NAME} PUBLIC cw_monero)
|
2023-01-19 23:14:46 +00:00
|
|
|
# List of absolute paths to libraries that should be bundled with the plugin.
|
|
|
|
# This list could contain prebuilt libraries, or libraries created by an
|
|
|
|
# external build triggered from this build file.
|
|
|
|
set(cw_monero_bundled_libraries
|
|
|
|
""
|
|
|
|
PARENT_SCOPE
|
|
|
|
)
|
|
|
|
|
|
|
|
add_library( cw_monero
|
|
|
|
STATIC
|
|
|
|
../ios/Classes/monero_api.cpp)
|
|
|
|
|
|
|
|
set(EXTERNAL_LIBS_DIR ${CMAKE_SOURCE_DIR}/../cw_shared_external/ios/External/linux)
|
|
|
|
|
|
|
|
############
|
|
|
|
# libsodium
|
|
|
|
############
|
|
|
|
|
|
|
|
add_library(sodium STATIC IMPORTED)
|
|
|
|
set_target_properties(sodium PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libsodium.a)
|
|
|
|
|
|
|
|
############
|
|
|
|
# OpenSSL
|
|
|
|
############
|
|
|
|
|
|
|
|
add_library(crypto STATIC IMPORTED)
|
|
|
|
set_target_properties(crypto PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libcrypto.a)
|
|
|
|
|
|
|
|
add_library(ssl STATIC IMPORTED)
|
|
|
|
set_target_properties(ssl PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libssl.a)
|
|
|
|
|
|
|
|
############
|
|
|
|
# Boost
|
|
|
|
############
|
|
|
|
|
|
|
|
add_library(boost_chrono STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_chrono PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_chrono.a)
|
|
|
|
|
|
|
|
add_library(boost_date_time STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_date_time PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_date_time.a)
|
|
|
|
|
|
|
|
add_library(boost_filesystem STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_filesystem PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_filesystem.a)
|
|
|
|
|
|
|
|
add_library(boost_program_options STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_program_options PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_program_options.a)
|
|
|
|
|
|
|
|
add_library(boost_regex STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_regex PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_regex.a)
|
|
|
|
|
|
|
|
add_library(boost_serialization STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_serialization PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_serialization.a)
|
|
|
|
|
|
|
|
add_library(boost_system STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_system PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_system.a)
|
|
|
|
|
|
|
|
add_library(boost_thread STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_thread PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_thread.a)
|
|
|
|
|
|
|
|
add_library(boost_wserialization STATIC IMPORTED)
|
|
|
|
set_target_properties(boost_wserialization PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libboost_wserialization.a)
|
|
|
|
|
|
|
|
#############
|
|
|
|
# Monero
|
|
|
|
#############
|
|
|
|
|
|
|
|
|
|
|
|
add_library(wallet STATIC IMPORTED)
|
|
|
|
set_target_properties(wallet PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libwallet.a)
|
|
|
|
|
|
|
|
add_library(wallet_api STATIC IMPORTED)
|
|
|
|
set_target_properties(wallet_api PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libwallet_api.a)
|
|
|
|
|
|
|
|
add_library(cryptonote_core STATIC IMPORTED)
|
|
|
|
set_target_properties(cryptonote_core PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libcryptonote_core.a)
|
|
|
|
|
|
|
|
add_library(cryptonote_basic STATIC IMPORTED)
|
|
|
|
set_target_properties(cryptonote_basic PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libcryptonote_basic.a)
|
|
|
|
|
|
|
|
add_library(cryptonote_format_utils_basic STATIC IMPORTED)
|
|
|
|
set_target_properties(cryptonote_format_utils_basic PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libcryptonote_format_utils_basic.a)
|
|
|
|
|
|
|
|
add_library(mnemonics STATIC IMPORTED)
|
|
|
|
set_target_properties(mnemonics PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libmnemonics.a)
|
|
|
|
|
|
|
|
add_library(common STATIC IMPORTED)
|
|
|
|
set_target_properties(common PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libcommon.a)
|
|
|
|
|
|
|
|
add_library(cncrypto STATIC IMPORTED)
|
|
|
|
set_target_properties(cncrypto PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libcncrypto.a)
|
|
|
|
|
|
|
|
add_library(ringct STATIC IMPORTED)
|
|
|
|
set_target_properties(ringct PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libringct.a)
|
|
|
|
|
|
|
|
add_library(ringct_basic STATIC IMPORTED)
|
|
|
|
set_target_properties(ringct_basic PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libringct_basic.a)
|
|
|
|
|
|
|
|
add_library(blockchain_db STATIC IMPORTED)
|
|
|
|
set_target_properties(blockchain_db PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libblockchain_db.a)
|
|
|
|
|
|
|
|
add_library(lmdb STATIC IMPORTED)
|
|
|
|
set_target_properties(lmdb PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/liblmdb.a)
|
|
|
|
|
|
|
|
add_library(easylogging STATIC IMPORTED)
|
|
|
|
set_target_properties(easylogging PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libeasylogging.a)
|
|
|
|
|
|
|
|
add_library(epee STATIC IMPORTED)
|
|
|
|
set_target_properties(epee PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libepee.a)
|
|
|
|
|
|
|
|
add_library(blocks STATIC IMPORTED)
|
|
|
|
set_target_properties(blocks PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libblocks.a)
|
|
|
|
|
|
|
|
add_library(checkpoints STATIC IMPORTED)
|
|
|
|
set_target_properties(checkpoints PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libcheckpoints.a)
|
|
|
|
|
|
|
|
add_library(device STATIC IMPORTED)
|
|
|
|
set_target_properties(device PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libdevice.a)
|
|
|
|
|
|
|
|
add_library(device_trezor STATIC IMPORTED)
|
|
|
|
set_target_properties(device_trezor PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libdevice_trezor.a)
|
|
|
|
|
|
|
|
add_library(multisig STATIC IMPORTED)
|
|
|
|
set_target_properties(multisig PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libmultisig.a)
|
|
|
|
|
|
|
|
add_library(version STATIC IMPORTED)
|
|
|
|
set_target_properties(version PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libversion.a)
|
|
|
|
|
|
|
|
add_library(net STATIC IMPORTED)
|
|
|
|
set_target_properties(net PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libnet.a)
|
|
|
|
|
|
|
|
add_library(hardforks STATIC IMPORTED)
|
|
|
|
set_target_properties(hardforks PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libhardforks.a)
|
|
|
|
|
|
|
|
add_library(randomx STATIC IMPORTED)
|
|
|
|
set_target_properties(randomx PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/librandomx.a)
|
|
|
|
|
|
|
|
add_library(rpc_base STATIC IMPORTED)
|
|
|
|
set_target_properties(rpc_base PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/librpc_base.a)
|
|
|
|
|
|
|
|
add_library(wallet-crypto STATIC IMPORTED)
|
|
|
|
set_target_properties(wallet-crypto PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/monero/libwallet-crypto.a)
|
|
|
|
|
|
|
|
add_library(unbound STATIC IMPORTED)
|
|
|
|
set_target_properties(unbound PROPERTIES IMPORTED_LOCATION
|
|
|
|
${EXTERNAL_LIBS_DIR}/lib/libunbound.a)
|
|
|
|
|
|
|
|
include_directories( ${EXTERNAL_LIBS_DIR}/include )
|
|
|
|
|
|
|
|
target_link_libraries( cw_monero
|
|
|
|
|
|
|
|
wallet_api
|
|
|
|
wallet
|
|
|
|
cryptonote_core
|
|
|
|
cryptonote_basic
|
|
|
|
cryptonote_format_utils_basic
|
|
|
|
mnemonics
|
|
|
|
ringct
|
|
|
|
ringct_basic
|
|
|
|
net
|
|
|
|
common
|
|
|
|
cncrypto
|
|
|
|
blockchain_db
|
|
|
|
lmdb
|
|
|
|
easylogging
|
|
|
|
unbound
|
|
|
|
epee
|
|
|
|
blocks
|
|
|
|
checkpoints
|
|
|
|
device
|
|
|
|
device_trezor
|
|
|
|
multisig
|
|
|
|
version
|
|
|
|
randomx
|
|
|
|
hardforks
|
|
|
|
rpc_base
|
|
|
|
wallet-crypto
|
|
|
|
|
|
|
|
boost_chrono
|
|
|
|
boost_date_time
|
|
|
|
boost_filesystem
|
|
|
|
boost_program_options
|
|
|
|
boost_regex
|
|
|
|
boost_serialization
|
|
|
|
boost_system
|
|
|
|
boost_thread
|
|
|
|
boost_wserialization
|
|
|
|
|
|
|
|
ssl
|
|
|
|
crypto
|
|
|
|
|
|
|
|
sodium
|
2023-04-18 20:45:32 +00:00
|
|
|
)
|