mirror of
https://github.com/wownero/lwsf-wow.git
synced 2026-10-17 07:21:28 +02:00
Update build process, update primary include file
This commit is contained in:
+18
-184
@@ -1,4 +1,4 @@
|
|||||||
# Copyright (c) 2020, The Monero Project
|
# Copyright (c) 2024-2025, The Monero Project
|
||||||
#
|
#
|
||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
#
|
#
|
||||||
@@ -27,198 +27,49 @@
|
|||||||
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.1.0)
|
cmake_minimum_required(VERSION 3.1.0)
|
||||||
project(lws-frontend)
|
project(lwsf)
|
||||||
|
|
||||||
enable_language(CXX)
|
enable_language(CXX)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
option(BUILD_TESTS "Build Tests" OFF)
|
|
||||||
|
|
||||||
set(MONERO_LIBRARIES
|
|
||||||
daemon_messages
|
|
||||||
serialization
|
|
||||||
lmdb_lib
|
|
||||||
net
|
|
||||||
checkpoints
|
|
||||||
hardforks
|
|
||||||
cryptonote_core
|
|
||||||
cryptonote_basic
|
|
||||||
cryptonote_format_utils_basic
|
|
||||||
ringct
|
|
||||||
ringct_basic
|
|
||||||
mnemonics
|
|
||||||
multisig
|
|
||||||
blockchain_db
|
|
||||||
common
|
|
||||||
lmdb
|
|
||||||
device
|
|
||||||
device_trezor
|
|
||||||
cncrypto
|
|
||||||
randomx
|
|
||||||
epee
|
|
||||||
easylogging
|
|
||||||
version
|
|
||||||
unbound
|
|
||||||
wallet
|
|
||||||
wallet_api
|
|
||||||
)
|
|
||||||
|
|
||||||
set(MONERO_OPTIONAL unbound)
|
|
||||||
|
|
||||||
set(MONERO_SEARCH_PATHS
|
|
||||||
"/contrib/epee/src"
|
|
||||||
"/external/db_drivers/liblmdb"
|
|
||||||
"/external/easylogging++"
|
|
||||||
"/lib"
|
|
||||||
"/src"
|
|
||||||
"src/checkpoints"
|
|
||||||
"/src/crypto"
|
|
||||||
"/src/cryptonote_basic"
|
|
||||||
"/src/cryptonote_core"
|
|
||||||
"/src/device"
|
|
||||||
"/src/device_trezor"
|
|
||||||
"/src/hardforks"
|
|
||||||
"/src/lmdb"
|
|
||||||
"/src/ringct"
|
|
||||||
"/src/rpc"
|
|
||||||
"/src/wallet/api"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Pull some information from monero build
|
|
||||||
#
|
|
||||||
|
|
||||||
# Needed due to "bug" in monero CMake - the `project` function is used twice!
|
|
||||||
if (NOT MONERO_SOURCE_DIR)
|
if (NOT MONERO_SOURCE_DIR)
|
||||||
message(FATAL_ERROR "The argument -DMONERO_SOURCE_DIR must specify a location of a monero source tree")
|
message(FATAL_ERROR "The argument -DMONERO_SOURCE_DIR must specify a location of a monero source tree")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT MONERO_BUILD_DIR)
|
include(FetchContent)
|
||||||
message(FATAL_ERROR "The argument -DMONERO_BUILD_DIR must specify a location of an existing monero build")
|
FetchContent_Declare(monero SOURCE_DIR ${MONERO_SOURCE_DIR})
|
||||||
endif()
|
|
||||||
|
|
||||||
if(STATIC)
|
if (NOT monero_POPULATED)
|
||||||
if(MSVC)
|
FetchContent_MakeAvailable(monero)
|
||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .lib .dll.a .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
endif ()
|
||||||
else()
|
|
||||||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
load_cache(${MONERO_BUILD_DIR} READ_WITH_PREFIX monero_
|
|
||||||
Boost_THREAD_LIBRARY_RELEASE
|
|
||||||
CMAKE_CXX_COMPILER
|
|
||||||
EXTRA_LIBRARIES
|
|
||||||
LIBUDEV_LIBRARY
|
|
||||||
usb_LIBRARY
|
|
||||||
HIDAPI_INCLUDE_DIR
|
|
||||||
HIDAPI_LIBRARY
|
|
||||||
LMDB_INCLUDE
|
|
||||||
monero_SOURCE_DIR
|
|
||||||
OPENSSL_INCLUDE_DIR
|
|
||||||
OPENSSL_CRYPTO_LIBRARY
|
|
||||||
OPENSSL_SSL_LIBRARY
|
|
||||||
sodium_LIBRARY_RELEASE
|
|
||||||
UNBOUND_LIBRARIES
|
|
||||||
ZMQ_INCLUDE_PATH
|
|
||||||
ZMQ_LIB
|
|
||||||
PGM_LIBRARY
|
|
||||||
NORM_LIBRARY
|
|
||||||
GSSAPI_LIBRARY
|
|
||||||
PROTOLIB_LIBRARY
|
|
||||||
)
|
|
||||||
|
|
||||||
if (NOT (monero_monero_SOURCE_DIR MATCHES "${MONERO_SOURCE_DIR}(/src/cryptonote_protocol)"))
|
|
||||||
message(FATAL_ERROR "Invalid Monero source dir - does not appear to match source used for build directory")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT (CMAKE_CXX_COMPILER STREQUAL monero_CMAKE_CXX_COMPILER))
|
|
||||||
message(FATAL_ERROR "Compiler for monero build differs from this project")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if ("${monero_UNBOUND_LIBRARIES}" STREQUAL "UNBOUND_LIBRARIES-NOTFOUND")
|
|
||||||
unset(monero_UNBOUND_LIBRARIES)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if ("${monero_HIDAPI_LIBRARY}" STREQUAL "HIDAPI_LIBRARY-NOTFOUND")
|
|
||||||
unset(monero_HIDAPI_INCLUDE_DIR)
|
|
||||||
unset(monero_HIDAPI_LIBRARY)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Dependencies specific to monero-lws
|
# Dependencies specific to lwsf
|
||||||
#
|
#
|
||||||
|
|
||||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
# boost
|
|
||||||
set(Boost_NO_BOOST_CMAKE ON)
|
set(Boost_NO_BOOST_CMAKE ON)
|
||||||
if(STATIC)
|
if(STATIC)
|
||||||
set(Boost_USE_STATIC_LIBS ON)
|
set(Boost_USE_STATIC_LIBS ON)
|
||||||
set(Boost_USE_STATIC_RUNTIME ON)
|
set(Boost_USE_STATIC_RUNTIME ON)
|
||||||
endif()
|
endif()
|
||||||
find_package(Boost 1.58 QUIET REQUIRED COMPONENTS chrono filesystem program_options regex serialization system thread)
|
find_package(Boost 1.66 QUIET REQUIRED COMPONENTS program_options thread)
|
||||||
|
|
||||||
if (NOT (Boost_THREAD_LIBRARY STREQUAL monero_Boost_THREAD_LIBRARY_RELEASE))
|
list(INSERT CMAKE_MODULE_PATH 0
|
||||||
message(STATUS "Found Boost_THREAD_LIBRARY: ${Boost_THREAD_LIBRARY}")
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||||
message(STATUS "Found monero_Boost_THREAD_LIBRARY_RELEASE: ${monero_Boost_THREAD_LIBRARY_RELEASE}")
|
|
||||||
message(FATAL_ERROR "Boost libraries for monero build differs from this project")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(monero_PGM_LIBRARY)
|
if(STATIC)
|
||||||
set(ZMQ_LIB "${ZMQ_LIB};${monero_PGM_LIBRARY}")
|
set(sodium_USE_STATIC_LIBS ON)
|
||||||
endif()
|
|
||||||
if(monero_NORM_LIBRARY)
|
|
||||||
set(ZMQ_LIB "${ZMQ_LIB};${monero_NORM_LIBRARY}")
|
|
||||||
endif()
|
|
||||||
if(monero_GSSAPI_LIBRARY)
|
|
||||||
set(ZMQ_LIB "${ZMQ_LIB};${monero_GSSAPI_LIBRARY}")
|
|
||||||
endif()
|
|
||||||
if(monero_PROTOLIB_LIBRARY)
|
|
||||||
set(ZMQ_LIB "${ZMQ_LIB};${monero_PROTOLIB_LIBRARY}")
|
|
||||||
endif()
|
|
||||||
if(monero_sodium_LIBRARY_RELEASE)
|
|
||||||
set(ZMQ_LIB "${ZMQ_LIB};${monero_sodium_LIBRARY_RELEASE}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(STATIC AND NOT IOS)
|
|
||||||
if(UNIX)
|
|
||||||
set(monero_OPENSSL_LIBRARIES "${monero_OPENSSL_LIBRARIES};${CMAKE_DL_LIBS};${CMAKE_THREAD_LIBS_INIT}")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
foreach (LIB ${MONERO_LIBRARIES})
|
|
||||||
find_library(LIB_PATH NAMES "${LIB}" PATHS ${MONERO_BUILD_DIR} PATH_SUFFIXES "/src/${LIB}" "external/${LIB}" ${MONERO_SEARCH_PATHS} NO_DEFAULT_PATH)
|
|
||||||
|
|
||||||
list(FIND MONERO_OPTIONAL "${LIB}" LIB_OPTIONAL)
|
|
||||||
if (NOT LIB_PATH)
|
|
||||||
if (LIB_OPTIONAL EQUAL -1)
|
|
||||||
message(FATAL_ERROR "Unable to find required Monero library ${LIB}")
|
|
||||||
endif()
|
|
||||||
else ()
|
|
||||||
set(LIB_NAME "monero::${LIB}")
|
|
||||||
add_library(${LIB_NAME} STATIC IMPORTED)
|
|
||||||
set_target_properties(${LIB_NAME} PROPERTIES IMPORTED_LOCATION ${LIB_PATH})
|
|
||||||
list(APPEND IMPORTED_MONERO_LIBRARIES "${LIB_NAME}")
|
|
||||||
endif()
|
|
||||||
unset(LIB_PATH CACHE)
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if(APPLE)
|
|
||||||
find_library(IOKIT_LIBRARY IOKit)
|
|
||||||
list(APPEND IMPORTED_MONERO_LIBRARIES ${IOKIT_LIBRARY})
|
|
||||||
endif()
|
endif()
|
||||||
|
find_package(Sodium REQUIRED)
|
||||||
|
|
||||||
add_library(monero::libraries INTERFACE IMPORTED)
|
add_library(monero::libraries INTERFACE IMPORTED)
|
||||||
set_property(TARGET monero::libraries PROPERTY
|
set_property(TARGET monero::libraries PROPERTY
|
||||||
INTERFACE_INCLUDE_DIRECTORIES
|
INTERFACE_INCLUDE_DIRECTORIES
|
||||||
${Boost_INCLUDE_DIR}
|
${Boost_INCLUDE_DIR}
|
||||||
${monero_HIDAPI_INCLUDE_DIRS}
|
|
||||||
${monero_OPENSSL_INCLUDE_DIR}
|
|
||||||
"${MONERO_BUILD_DIR}/generated_include"
|
|
||||||
"${MONERO_SOURCE_DIR}/contrib/epee/include"
|
"${MONERO_SOURCE_DIR}/contrib/epee/include"
|
||||||
"${MONERO_SOURCE_DIR}/external/easylogging++"
|
"${MONERO_SOURCE_DIR}/external/easylogging++"
|
||||||
"${MONERO_SOURCE_DIR}/external/rapidjson/include"
|
"${MONERO_SOURCE_DIR}/external/rapidjson/include"
|
||||||
@@ -227,28 +78,11 @@ set_property(TARGET monero::libraries PROPERTY
|
|||||||
)
|
)
|
||||||
set_property(TARGET monero::libraries PROPERTY
|
set_property(TARGET monero::libraries PROPERTY
|
||||||
INTERFACE_LINK_LIBRARIES
|
INTERFACE_LINK_LIBRARIES
|
||||||
${IMPORTED_MONERO_LIBRARIES}
|
common
|
||||||
${Boost_CHRONO_LIBRARY}
|
epee
|
||||||
${Boost_FILESYSTEM_LIBRARY}
|
mnemonics
|
||||||
${Boost_PROGRAM_OPTIONS_LIBRARY}
|
wallet_api
|
||||||
${Boost_REGEX_LIBRARY}
|
|
||||||
${Boost_SERIALIZATION_LIBRARY}
|
|
||||||
${Boost_SYSTEM_LIBRARY}
|
|
||||||
${Boost_THREAD_LIBRARY}
|
|
||||||
${monero_HIDAPI_LIBRARY}
|
|
||||||
${monero_usb_LIBRARY}
|
|
||||||
${monero_LIBUDEV_LIBRARY}
|
|
||||||
${monero_OPENSSL_SSL_LIBRARY}
|
|
||||||
${monero_OPENSSL_CRYPTO_LIBRARY}
|
|
||||||
${monero_sodium_LIBRARY_RELEASE}
|
|
||||||
${monero_UNBOUND_LIBRARIES}
|
|
||||||
${CMAKE_DL_LIBS}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
#
|
|
||||||
# Build monero-lws code
|
|
||||||
#
|
|
||||||
|
|
||||||
include_directories(include)
|
|
||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/cmake/CheckLinkerFlag.cmake b/cmake/CheckLinkerFlag.cmake
|
||||||
|
index 7ecf5f610..69eefe810 100644
|
||||||
|
--- a/cmake/CheckLinkerFlag.cmake
|
||||||
|
+++ b/cmake/CheckLinkerFlag.cmake
|
||||||
|
@@ -6,7 +6,7 @@ macro(CHECK_LINKER_FLAG flag VARIABLE)
|
||||||
|
message(STATUS "Looking for ${flag} linker flag")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
- set(_cle_source ${CMAKE_SOURCE_DIR}/cmake/CheckLinkerFlag.c)
|
||||||
|
+ set(_cle_source ${monero_SOURCE_DIR}/cmake/CheckLinkerFlag.c)
|
||||||
|
|
||||||
|
set(saved_CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
|
||||||
|
set(CMAKE_C_FLAGS "${flag}")
|
||||||
+20
-1343
File diff suppressed because it is too large
Load Diff
+21
-7
@@ -29,7 +29,6 @@
|
|||||||
include_directories(.)
|
include_directories(.)
|
||||||
add_subdirectory(wire)
|
add_subdirectory(wire)
|
||||||
|
|
||||||
# For both the server and admin utility.
|
|
||||||
set(lwsf_sources
|
set(lwsf_sources
|
||||||
address_book.cpp
|
address_book.cpp
|
||||||
backend.cpp
|
backend.cpp
|
||||||
@@ -53,16 +52,31 @@ set(lwsf_headers
|
|||||||
transaction_info.h
|
transaction_info.h
|
||||||
wallet.h
|
wallet.h
|
||||||
)
|
)
|
||||||
|
|
||||||
add_executable(lwsf-ledger ledger_main.cpp ${lwsf_sources} ${lwsf_headers})
|
add_library(lwsf-api ${lwsf_sources} ${lwsf_headers})
|
||||||
target_link_libraries(lwsf-ledger
|
target_include_directories(lwsf-api
|
||||||
|
PUBLIC
|
||||||
|
"${lwsf_SOURCE_DIR}/include"
|
||||||
|
PRIVATE
|
||||||
|
"."
|
||||||
|
)
|
||||||
|
target_link_libraries(lwsf-api
|
||||||
|
PUBLIC
|
||||||
|
monero::libraries
|
||||||
PRIVATE
|
PRIVATE
|
||||||
lwsf-wire
|
lwsf-wire
|
||||||
lwsf-wire-json
|
lwsf-wire-json
|
||||||
lwsf-wire-msgpack
|
lwsf-wire-msgpack
|
||||||
lwsf-wire-wrapper
|
lwsf-wire-wrapper
|
||||||
monero::libraries
|
${Boost_THREAD_LIBRARY}
|
||||||
${Boost_PROGRAM_OPTIONS_LIBRARY}
|
${sodium_LIBRARY_RELEASE}
|
||||||
${Boost_FILESYSTEM_LIBRARY}
|
Threads::Threads
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(lwsf-ledger ledger_main.cpp)
|
||||||
|
target_link_libraries(lwsf-ledger
|
||||||
|
PRIVATE
|
||||||
|
lwsf-api
|
||||||
|
${Boost_PROGRAM_OPTIONS_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -404,7 +404,7 @@ namespace lwsf
|
|||||||
return new internal::wallet_manager{};
|
return new internal::wallet_manager{};
|
||||||
}
|
}
|
||||||
|
|
||||||
void WalletManagerFactory::setLogLevel(int level)
|
void WalletManagerFactory::setLogLevel(LogLevel level)
|
||||||
{
|
{
|
||||||
//! \TODO Complete
|
//! \TODO Complete
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ set(lwsf-wire_sources basic_value.cpp error.cpp read.cpp write.cpp)
|
|||||||
set(lwsf-wire_headers basic_value.h error.h field.h filters.h fwd.h json.h read.h traits.h vector.h write.h)
|
set(lwsf-wire_headers basic_value.h error.h field.h filters.h fwd.h json.h read.h traits.h vector.h write.h)
|
||||||
|
|
||||||
add_library(lwsf-wire ${lwsf-wire_sources} ${lwsf-wire_headers})
|
add_library(lwsf-wire ${lwsf-wire_sources} ${lwsf-wire_headers})
|
||||||
target_include_directories(lwsf-wire PUBLIC "${LMDB_INCLUDE}")
|
|
||||||
target_link_libraries(lwsf-wire PRIVATE monero::libraries)
|
target_link_libraries(lwsf-wire PRIVATE monero::libraries)
|
||||||
|
|
||||||
add_subdirectory(json)
|
add_subdirectory(json)
|
||||||
|
|||||||
Reference in New Issue
Block a user