initial zano commit (#83)

* initial zano commit

* update checksum, fix zano patches on CI

* fix monero builds

* fix cmake command

* fix: devcontainer on x64
ffigen: add zano
zano: add missing free
dart: implement zano

* update boost filenames

* unboost the cmakelists

* fix zano boost issues

* added patch into proper location

* fix various build issues

* [skip ci] update tor-connect

* fix zano builds for ios

* fix apply patches and don't fail-fast

* uncomment build depends for monero

* build_single.sh fix for macos native builds

* disable qemu on arm64 builders from buildjet

* fix boost, fix missing symbols (maybe)

* fix ordering of crypto and ssl libraries

* fix wownero mingw

* fetch zano releases to release-bulk

* build things 'the zano way'

* proper cmake config

* Zano.. yeah...

* Update zano release to 2.0.1.367

* update zano patches

* update zano builds

* update zano build

* fix zano build

* move zlibstatic to the top (this shouldn't matter anyway)

* fix patch location, update tor-connect

* update ci runner

* fix zano build on the CI

* enable zano for other targets

* nvm

* don't use darwin in single release file

* Increase max password length

* build contrib/depends offline

* zano support for macos

* Update dependencies to work on multithread via rosetta2

* different way of adding .patch-applied

* Improve performance of incremental builds

* remove unnecessary patches

* update coin-control patch

* fix test

* remove contrib/depends patches in wownero

* chore: support fallback names in the download_deps util

---------

Co-authored-by: Im-Beast <franik.mateusz@gmail.com>
This commit is contained in:
cyan
2025-01-04 09:02:44 +01:00
committed by GitHub
parent a6134fcebc
commit fcc2924f31
40 changed files with 2411 additions and 180 deletions

View File

@@ -1,8 +1,11 @@
cmake_minimum_required(VERSION 3.4.1)
cmake_minimum_required(VERSION 3.5)
project(wallet2_api_c)
message(STATUS ABI_INFO = ${HOST_ABI})
set (CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-lto")
if(${HOST_ABI} STREQUAL "x86_64-w64-mingw32")
set(CMAKE_SYSTEM_NAME Windows)
@@ -34,7 +37,7 @@ if (${HOST_ABI} STREQUAL "host-apple-darwin" OR
endif()
endif()
if(${HOST_ABI} STREQUAL "x86_64-linux-android" OR
if(${HOST_ABI} STREQUAL "" OR
${HOST_ABI} STREQUAL "i686-linux-android" OR
${HOST_ABI} STREQUAL "aarch64-linux-android" OR
${HOST_ABI} STREQUAL "armv7a-linux-androideabi")
@@ -76,26 +79,60 @@ if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64
set_target_properties(wallet2_api_c PROPERTIES NO_SONAME 1)
endif()
if (${MONERO_FLAVOR} STREQUAL "monero")
target_compile_definitions(wallet2_api_c PRIVATE FLAVOR_MONERO)
set(BCUR_ENABLED bc-ur)
elseif(${MONERO_FLAVOR} STREQUAL "wownero")
target_compile_definitions(wallet2_api_c PRIVATE FLAVOR_WOWNERO)
elseif(${MONERO_FLAVOR} STREQUAL "zano")
target_compile_definitions(wallet2_api_c PRIVATE FLAVOR_ZANO)
endif()
if(NOT ${HOST_ABI} STREQUAL "x86_64-apple-darwin11" AND NOT ${HOST_ABI} STREQUAL "aarch64-apple-darwin11" AND NOT ${HOST_ABI} STREQUAL "aarch64-apple-darwin" AND NOT ${HOST_ABI} STREQUAL "x86_64-apple-darwin" AND NOT ${HOST_ABI} STREQUAL "host-apple-darwin" AND NOT ${HOST_ABI} STREQUAL "x86_64-host-apple-darwin" AND NOT ${HOST_ABI} STREQUAL "aarch64-host-apple-darwin" AND NOT ${HOST_ABI} STREQUAL "host-apple-ios" AND NOT ${HOST_ABI} STREQUAL "aarch64-apple-ios")
set_target_properties(wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL")
endif()
if (${MONERO_FLAVOR} STREQUAL "zano")
include_directories(
${CMAKE_SOURCE_DIR}/build/${HOST_ABI}/zano_build/contrib/zlib
)
endif()
add_subdirectory("${CMAKE_SOURCE_DIR}/../${MONERO_FLAVOR}" ${CMAKE_BINARY_DIR}/${MONERO_FLAVOR}_build EXCLUDE_FROM_ALL)
if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin11" OR ${HOST_ABI} STREQUAL "host-apple-darwin" OR ${HOST_ABI} STREQUAL "x86_64-host-apple-darwin" OR ${HOST_ABI} STREQUAL "aarch64-host-apple-darwin" OR ${HOST_ABI} STREQUAL "host-apple-ios" OR ${HOST_ABI} STREQUAL "aarch64-apple-ios")
if(${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin11" OR ${HOST_ABI} STREQUAL "x86_64-apple-darwin" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin" OR ${HOST_ABI} STREQUAL "host-apple-darwin" OR ${HOST_ABI} STREQUAL "x86_64-host-apple-darwin" OR ${HOST_ABI} STREQUAL "aarch64-host-apple-darwin" OR ${HOST_ABI} STREQUAL "host-apple-ios" OR ${HOST_ABI} STREQUAL "aarch64-apple-ios")
if (${MONERO_FLAVOR} STREQUAL "monero")
set(EXPORTED_SYMBOLS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/monero_libwallet2_api_c.exp)
elseif(${MONERO_FLAVOR} STREQUAL "wownero")
set(EXPORTED_SYMBOLS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/wownero_libwallet2_api_c.exp)
elseif(${MONERO_FLAVOR} STREQUAL "zano")
set(EXPORTED_SYMBOLS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/zano_libwallet2_api_c.exp)
endif()
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -exported_symbols_list ${EXPORTED_SYMBOLS_FILE}")
set_target_properties(${TARGET} PROPERTIES LINK_DEPENDS ${EXPORTED_SYMBOLS_FILE})
endif()
if (${MONERO_FLAVOR} STREQUAL "monero")
set(WALLET_TARGETS wallet_api ${wallet_api_LIB_DEPENDS}) # wallet_api_LIB_DEPENDS
elseif(${MONERO_FLAVOR} STREQUAL "wownero")
set(WALLET_TARGETS wallet_api ${wallet_api_LIB_DEPENDS}) # wallet_api_LIB_DEPENDS
elseif(${MONERO_FLAVOR} STREQUAL "zano")
find_package(Boost 1.71 REQUIRED COMPONENTS system filesystem thread timer date_time chrono regex serialization atomic program_options)
find_package(OpenSSL REQUIRED)
set(WALLET_TARGETS
wallet
general
tor-connect
crypto
currency_core
common
zlibstatic
${Boost_LIBRARIES}
${OpenSSL_LIBRARIES})
endif()
if(${MONERO_FLAVOR} STREQUAL "wownero")
add_subdirectory(wownero-seed EXCLUDE_FROM_ALL)
set(EXTRA_LIBS_WOWNEROSEED wownero-seed)
@@ -106,11 +143,14 @@ endif()
#foreach (_variableName ${_variableNames})
# message(STATUS "${_variableName}=${${_variableName}}")
#endforeach()
#message(SEND_ERROR "${Boost_LIBRARIES}")
#message(SEND_ERROR "${WALLET_TARGETS}
# ${EXTRA_LIBS_WOWNEROSEED}
# ${EXTRA_LIBS_ANDROID}")
target_link_libraries( wallet2_api_c
wallet_api
${WALLET_TARGETS}
${EXTRA_LIBS_WOWNEROSEED}
${EXTRA_LIBS_ANDROID}
${wallet_api_LIB_DEPENDS}
)
)

View File

@@ -3,6 +3,7 @@
#include <set>
#include <sstream>
#include <cstdlib>
#include <iostream>
// Debug macros
#define DEBUG_START() \