* cleanup patches
* fix polyseed patch
* Fix iOS builds
* fix polyseed dependencies
* fix polyseed patch for macOS
* update ledger patch
* update wownero patches and version
* update checksums
* wip"
* update gitmodules
* update boost build script
* update build_single.sh
* vix verbosey_copy
* fix __clear_cache bug on wownero
* update randomwow
* migrate build system
* fix cross compilation issues
* some more build issue
* update polyseed
* cleanup cmakelists
* fix toolchain.cmake.in
* add ssp
* another attempt at building windows on CI
* fix package name
* migrate mirror to my own hosting
* change download mirror priority (fallback first)
* link ssp in monero module as well by using CMAKE_{C,CXX}_FLAGS
* fix android builds
* update polyseed source
* 13 -> trixie
* fix package name conflicts, update runner to sid
* update boost to 1_84_0, disable patch that's no longer needed
* switch to ubuntu:24.04
* add POLYSEED_STATIC to toolchain.cmake.in in order to properly link
* drop patches
* fixes to darwin
* link missing wowner-seed library
* a litte bit more of experiments
* build locale only on windows
* update iconv
* update definitions
* update ci builds
* update my progress
* ios fix, update depends, ci
* multithread build system
* fix android, mingw and linux build issues
* remove dependency check
* update Dockerfile to include pigz
* show a message when pigz is missing
* fix devcontainer mingw setup (missing ENV)
* update android build runner
* sailfishos dropped (you better go behave yourself and run actual linux programs)
* fiz pigz issues
* install llvm-ranlib for android
* fix iOS build issues
* fix dummy ledger patch
* fix macos and darwin
* fix macos ci
* fix macos build command
* install autoconf
* add automake
* add libtool
* macos fixes, wownero fixes, idk what else, please help me
* fix wownero iOS build
* Cleanup patches
* add try-catch into monero code
* fix error handling
* update checksums
116 lines
5.4 KiB
CMake
116 lines
5.4 KiB
CMake
cmake_minimum_required(VERSION 3.4.1)
|
|
project(wallet2_api_c)
|
|
message(STATUS ABI_INFO = ${HOST_ABI})
|
|
|
|
set (CMAKE_CXX_STANDARD 11)
|
|
|
|
if(${HOST_ABI} STREQUAL "x86_64-w64-mingw32")
|
|
set(CMAKE_SYSTEM_NAME Windows)
|
|
set(CMAKE_LINKER "x86_64-w64-mingw32-ld")
|
|
set(TARGET "x86_64-w64-mingw32")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lssp")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lssp")
|
|
elseif(${HOST_ABI} STREQUAL "i686-w64-mingw32")
|
|
set(CMAKE_SYSTEM_NAME Windows)
|
|
set(CMAKE_LINKER "i686-w64-mingw32-ld")
|
|
set(TARGET "i686-w64-mingw32")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -lssp")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lssp")
|
|
elseif(${HOST_ABI} STREQUAL "host-apple-ios" OR
|
|
${HOST_ABI} STREQUAL "aarch64-apple-ios")
|
|
set(CMAKE_SYSTEM_NAME iOS)
|
|
elseif(${HOST_ABI} STREQUAL "host-apple-darwin" OR
|
|
${HOST_ABI} STREQUAL "x86_64-host-apple-darwin" OR
|
|
${HOST_ABI} STREQUAL "aarch64-host-apple-darwin")
|
|
set(CMAKE_SYSTEM_NAME Darwin)
|
|
endif()
|
|
|
|
if (${HOST_ABI} STREQUAL "host-apple-darwin" OR
|
|
${HOST_ABI} STREQUAL "x86_64-host-apple-darwin" OR
|
|
${HOST_ABI} STREQUAL "aarch64-host-apple-darwin")
|
|
EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
|
|
if (NOT ${ARCHITECTURE} STREQUAL arm64)
|
|
set(CMAKE_OSX_ARCHITECTURES x86_64)
|
|
endif()
|
|
endif()
|
|
|
|
if(${HOST_ABI} STREQUAL "x86_64-linux-android" OR
|
|
${HOST_ABI} STREQUAL "i686-linux-android" OR
|
|
${HOST_ABI} STREQUAL "aarch64-linux-android" OR
|
|
${HOST_ABI} STREQUAL "armv7a-linux-androideabi")
|
|
add_link_options(-stdlib=libc++ -static-libstdc++)
|
|
set(EXTRA_LIBS_ANDROID log)
|
|
endif()
|
|
|
|
add_library( wallet2_api_c
|
|
SHARED
|
|
src/main/cpp/helpers.cpp
|
|
src/main/cpp/wallet2_api_c.cpp )
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden")
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden")
|
|
|
|
|
|
|
|
set(MONERO_DIR ${CMAKE_SOURCE_DIR}/../${MONERO_FLAVOR})
|
|
set(EXTERNAL_LIBS_DIR ${CMAKE_SOURCE_DIR}/../contrib/depends/${HOST_ABI})
|
|
|
|
if (${HOST_ABI} STREQUAL "x86_64-apple-darwin11" OR ${HOST_ABI} STREQUAL "aarch64-apple-darwin11")
|
|
set(EXTRA_LIBS_APPLE "-framework IOKit" "-framework CoreFoundation" "-framework Cocoa" hidapi)
|
|
# set_target_properties(wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,-F/Library/Frameworks")
|
|
elseif(${HOST_ABI} STREQUAL "host-apple-darwin" OR
|
|
${HOST_ABI} STREQUAL "x86_64-host-apple-darwin" OR
|
|
${HOST_ABI} STREQUAL "aarch64-host-apple-darwin")
|
|
set(EXTRA_LIBS_APPLE "-framework IOKit" "-framework CoreFoundation" "-framework Cocoa" apple_nghttp2)
|
|
elseif(${HOST_ABI} STREQUAL "host-apple-ios" OR ${HOST_ABI} STREQUAL "aarch64-apple-ios" OR ${HOST_ABI} STREQUAL "arm64-apple-ios")
|
|
set(EXTRA_LIBS_APPLE "-framework IOKit" "-framework CoreFoundation" iconv )
|
|
endif()
|
|
|
|
if(${HOST_ABI} STREQUAL "x86_64-w64-mingw32" OR ${HOST_ABI} STREQUAL "i686-w64-mingw32")
|
|
target_link_options(wallet2_api_c PRIVATE -static-libgcc -static-libstdc++)
|
|
endif()
|
|
|
|
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")
|
|
set_target_properties(wallet2_api_c PROPERTIES SUFFIX ".dylib")
|
|
|
|
set_target_properties(wallet2_api_c PROPERTIES NO_SONAME 1)
|
|
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()
|
|
|
|
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 (${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)
|
|
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 "wownero")
|
|
add_subdirectory(wownero-seed EXCLUDE_FROM_ALL)
|
|
set(EXTRA_LIBS_WOWNEROSEED wownero-seed)
|
|
endif()
|
|
|
|
#get_cmake_property(_variableNames VARIABLES)
|
|
#list (SORT _variableNames)
|
|
#foreach (_variableName ${_variableNames})
|
|
# message(STATUS "${_variableName}=${${_variableName}}")
|
|
#endforeach()
|
|
|
|
target_link_libraries( wallet2_api_c
|
|
|
|
wallet_api
|
|
${EXTRA_LIBS_WOWNEROSEED}
|
|
${EXTRA_LIBS_ANDROID}
|
|
${wallet_api_LIB_DEPENDS}
|
|
) |