summaryrefslogtreecommitdiff
path: root/monero_libwallet2_api_c/CMakeLists.txt
diff options
context:
space:
mode:
authorcyan <cyjan@mrcyjanek.net>2026-03-10 20:23:19 +0100
committerGitHub <noreply@github.com>2026-03-10 20:23:19 +0100
commit7e227b0aa00c66d5d407751cac715e61e0c1c373 (patch)
treeaddd746ecb1dc235d97e6fc7ba5d85bed3f905d2 /monero_libwallet2_api_c/CMakeLists.txt
parent2c11591e02b907e63d8fd4fcb0a6559625934a95 (diff)
Cleanup and fixes (#180)
Diffstat (limited to 'monero_libwallet2_api_c/CMakeLists.txt')
-rw-r--r--monero_libwallet2_api_c/CMakeLists.txt120
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}