diff options
| author | cyan <cyjan@mrcyjanek.net> | 2026-03-10 20:23:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-10 20:23:19 +0100 |
| commit | 7e227b0aa00c66d5d407751cac715e61e0c1c373 (patch) | |
| tree | addd746ecb1dc235d97e6fc7ba5d85bed3f905d2 /monero_libwallet2_api_c/CMakeLists.txt | |
| parent | 2c11591e02b907e63d8fd4fcb0a6559625934a95 (diff) | |
Cleanup and fixes (#180)
Diffstat (limited to 'monero_libwallet2_api_c/CMakeLists.txt')
| -rw-r--r-- | monero_libwallet2_api_c/CMakeLists.txt | 120 |
1 files changed, 30 insertions, 90 deletions
diff --git a/monero_libwallet2_api_c/CMakeLists.txt b/monero_libwallet2_api_c/CMakeLists.txt index f11c2bc..ab6a3b4 100644 --- a/monero_libwallet2_api_c/CMakeLists.txt +++ b/monero_libwallet2_api_c/CMakeLists.txt @@ -1,13 +1,11 @@ cmake_minimum_required(VERSION 3.5) -project(wallet2_api_c) -message(STATUS ABI_INFO = ${HOST_ABI}) +project(${MONERO_FLAVOR}_wallet2_api_c) +message(STATUS HOST_ABI = ${HOST_ABI}) set(MD_LIBRARY "") 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) @@ -21,92 +19,53 @@ elseif(${HOST_ABI} STREQUAL "i686-w64-mingw32") 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") +elseif(${HOST_ABI} MATCHES "-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") +elseif(${HOST_ABI} MATCHES "-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") +if(${HOST_ABI} MATCHES "-linux-android") add_link_options(-stdlib=libc++ -static-libstdc++) set(EXTRA_LIBS_ANDROID log) endif() -add_library( wallet2_api_c - SHARED + +add_library( ${MONERO_FLAVOR}_wallet2_api_c + ${OUTPUT_MODE} src/main/cpp/helpers.cpp - src/main/cpp/wallet2_api_c.cpp ) + src/main/cpp/${MONERO_FLAVOR}_wallet2_api_c.cpp + src/main/cpp/${MONERO_FLAVOR}_checksum.c) -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") - set_target_properties(wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,-z,noexecstack") +if(${HOST_ABI} MATCHES "-linux-android") + set_target_properties(${MONERO_FLAVOR}_wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,-z,noexecstack") endif() -if(${HOST_ABI} STREQUAL "x86_64-linux-gnu" OR - ${HOST_ABI} STREQUAL "i686-linux-gnu" OR - ${HOST_ABI} STREQUAL "aarch64-linux-gnu" OR - ${HOST_ABI} STREQUAL "armv7a-linux-gnu") - set_target_properties(wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,-z,noexecstack") +if(${HOST_ABI} MATCHES "-linux-gnu") + set_target_properties(${MONERO_FLAVOR}_wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,-z,noexecstack") endif() - 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" OR ${HOST_ABI} STREQUAL "arm64-apple-ios-simulator" OR ${HOST_ABI} STREQUAL "x86_64-apple-ios-simulator") - 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" OR ${HOST_ABI} STREQUAL "arm64-apple-iossimulator" OR ${HOST_ABI} STREQUAL "x86_64-apple-iossimulator") - set_target_properties(wallet2_api_c PROPERTIES SUFFIX ".dylib") - - set_target_properties(wallet2_api_c PROPERTIES NO_SONAME 1) + target_link_options(${MONERO_FLAVOR}_wallet2_api_c PRIVATE -static-libgcc -static-libstdc++) endif() if (${MONERO_FLAVOR} STREQUAL "monero") - target_compile_definitions(wallet2_api_c PRIVATE FLAVOR_MONERO) + target_compile_definitions(${MONERO_FLAVOR}_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) + target_compile_definitions(${MONERO_FLAVOR}_wallet2_api_c PRIVATE FLAVOR_WOWNERO) elseif(${MONERO_FLAVOR} STREQUAL "zano") - target_compile_definitions(wallet2_api_c PRIVATE FLAVOR_ZANO) + target_compile_definitions(${MONERO_FLAVOR}_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" AND NOT ${HOST_ABI} STREQUAL "aarch64-apple-ios-simulator" AND NOT ${HOST_ABI} STREQUAL "x86_64-apple-ios-simulator") - set_target_properties(wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL") +if(NOT HOST_ABI MATCHES "-apple-") + set_target_properties(${MONERO_FLAVOR}_wallet2_api_c PROPERTIES LINK_FLAGS "-Wl,--exclude-libs,ALL") endif() if (${MONERO_FLAVOR} STREQUAL "zano") @@ -116,26 +75,19 @@ if (${MONERO_FLAVOR} STREQUAL "zano") 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 "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" OR ${HOST_ABI} STREQUAL "aarch64-apple-iossimulator" OR ${HOST_ABI} STREQUAL "x86_64-apple-ios-simulator") - 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() + +if(HOST_ABI MATCHES "-apple-") + set(EXPORTED_SYMBOLS_FILE ${CMAKE_CURRENT_SOURCE_DIR}/${MONERO_FLAVOR}_libwallet2_api_c.exp) 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 +if (${MONERO_FLAVOR} STREQUAL "monero" OR ${MONERO_FLAVOR} STREQUAL "wownero") + set(WALLET_TARGETS wallet_api ${wallet_api_LIB_DEPENDS}) elseif(${MONERO_FLAVOR} STREQUAL "zano") set(THREADS_PREFER_PTHREAD_FLAG ON) - + set(CMAKE_THREAD_LIBS_INIT "-lpthread") set(CMAKE_HAVE_THREADS_LIBRARY 1) set(CMAKE_USE_PTHREADS_INIT 1) @@ -160,22 +112,10 @@ if(${MONERO_FLAVOR} STREQUAL "wownero") set(EXTRA_LIBS_WOWNEROSEED wownero-seed) endif() -#get_cmake_property(_variableNames VARIABLES) -#list (SORT _variableNames) -#foreach (_variableName ${_variableNames}) -# message(STATUS "${_variableName}=${${_variableName}}") -#endforeach() -#message(SEND_ERROR "${Boost_LIBRARIES}") -#message(SEND_ERROR "${WALLET_TARGETS} -# ${EXTRA_LIBS_WOWNEROSEED} -# ${EXTRA_LIBS_ANDROID}") - - -if (${HOST_ABI} STREQUAL "x86_64-w64-mingw32" OR - ${HOST_ABI} STREQUAL "i686-w64-mingw32") - target_link_options(wallet2_api_c PRIVATE "-Wl,--section-alignment,16384") +if (${HOST_ABI} MATCHES "-w64-mingw32") + target_link_options(${MONERO_FLAVOR}_wallet2_api_c PRIVATE "-Wl,--section-alignment,16384") elseif(${HOST_ABI} MATCHES "-linux-") - target_link_options(wallet2_api_c PRIVATE "-Wl,-z,max-page-size=16384") + target_link_options(${MONERO_FLAVOR}_wallet2_api_c PRIVATE "-Wl,-z,max-page-size=16384") endif() if(${HOST_ABI} MATCHES "-apple-") @@ -193,7 +133,7 @@ if(${HOST_ABI} MATCHES "-apple-") ) endif() -target_link_libraries( wallet2_api_c +target_link_libraries( ${MONERO_FLAVOR}_wallet2_api_c ${WALLET_TARGETS} ${EXTRA_LIBS_WOWNEROSEED} |
