diff --git a/.github/workflows/build-targets.yml b/.github/workflows/build-targets.yml index 5d93ddb4..9bda9a86 100644 --- a/.github/workflows/build-targets.yml +++ b/.github/workflows/build-targets.yml @@ -252,8 +252,9 @@ jobs: - name: Checkout uses: actions/checkout@v4 - with: - submodules: "recursive" + + - name: Parallel checkout submodules + run: git submodule update --init --recursive --jobs 6 --depth 1 - name: Configure Linux host if: ${{ runner.os == 'Linux'}} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ab8ff62..efad93a6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -101,8 +101,9 @@ jobs: - name: Checkout uses: actions/checkout@v4 - with: - submodules: "recursive" + + - name: Parallel checkout submodules + run: git submodule update --init --recursive --jobs 6 --depth 1 - name: Configure Linux host if: ${{ runner.os == 'Linux'}} diff --git a/.gitmodules b/.gitmodules index 78d20ced..5bc92e31 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,21 +9,9 @@ [submodule "ipfs-lite-cpp"] path = ipfs-lite-cpp url = ../ipfs-lite-cpp.git -[submodule "celer-network/pb3-gen-sol"] - path = celer-network/pb3-gen-sol - url = https://github.com/celer-network/pb3-gen-sol.git -[submodule "lmdb"] - path = lmdb - url = ../lmdb.git [submodule "flutter"] path = flutter url = https://github.com/flutter/flutter.git -[submodule "curl-android-ios"] - path = curl-android-ios - url = https://github.com/gcesarmza/curl-android-ios.git -[submodule "grpc"] - path = grpc - url = ../grpc [submodule "GSL"] path = GSL url = ../GSL.git @@ -32,14 +20,11 @@ url = https://github.com/gabime/spdlog [submodule "hat-trie"] path = hat-trie - url = https://github.com/masterjedy/hat-trie + url = https://github.com/masterjedy/hat-trie.git [submodule "Boost.DI"] path = Boost.DI url = ../Boost.DI branch = cpp14 -[submodule "cpp-ipfs-http-client"] - path = cpp-ipfs-http-client - url = https://github.com/vasild/cpp-ipfs-http-client [submodule "ipfs-pubsub"] path = ipfs-pubsub url = ../ipfs-pubsub.git @@ -52,15 +37,9 @@ [submodule "rapidjson"] path = rapidjson url = ../rapidjson.git -[submodule "gnostic"] - path = gnostic - url = https://github.com/googleapis/gnostic [submodule "rocksdb"] path = rocksdb url = ../rocksdb.git -[submodule "sr25519-donna"] - path = sr25519-donna - url = ../sr25519-donna.git [submodule "fmt"] path = fmt url = https://github.com/fmtlib/fmt.git @@ -117,9 +96,6 @@ [submodule "AsyncIOManager"] path = AsyncIOManager url = ../AsyncIOManager.git -[submodule "cryptopp-cmake"] - path = cryptopp-cmake - url = https://github.com/abdes/cryptopp-cmake.git [submodule "stb"] path = stb url = https://github.com/nothings/stb.git @@ -133,8 +109,11 @@ path = SQLiteModernCpp url = ../sqlite_modern_cpp.git [submodule "json"] - path = json - url = git@github.com:nlohmann/json.git + path = json + url = https://github.com/nlohmann/json.git [submodule "snappy"] path = snappy url = https://github.com/google/snappy.git +[submodule "protobuf"] + path = protobuf + url = https://github.com/protocolbuffers/protobuf.git diff --git a/GTest b/GTest index b796f7d4..52eb8108 160000 --- a/GTest +++ b/GTest @@ -1 +1 @@ -Subproject commit b796f7d44681514f58a683a3a71ff17c94edb0c1 +Subproject commit 52eb8108c5bdec04579160ae17225d66034bd723 diff --git a/build/Android/CMakeLists.txt b/build/Android/CMakeLists.txt index 91a0d42a..b73280ab 100644 --- a/build/Android/CMakeLists.txt +++ b/build/Android/CMakeLists.txt @@ -43,6 +43,13 @@ set(_CMAKE_COMMON_CACHE_ARGS ${_CMAKE_COMMON_CACHE_ARGS} -DOPENSSL_USE_STATIC_LIBS:BOOL=TRUE ) +set(BOOST_ANDROID_B2_EXTRA_FLAGS "") +if(ANDROID_ABI STREQUAL "arm64-v8a") + set(BOOST_ANDROID_B2_EXTRA_FLAGS "architecture=arm,address-model=64,abi=aapcs,binary-format=elf") +elseif(ANDROID_ABI STREQUAL "armeabi-v7a") + set(BOOST_ANDROID_B2_EXTRA_FLAGS "architecture=arm,address-model=32,abi=aapcs,binary-format=elf") +endif() + # Boost set(BOOST_ROOT "${CMAKE_CURRENT_BINARY_DIR}/boost/build") ExternalProject_Add(Boost @@ -52,28 +59,29 @@ ExternalProject_Add(Boost CONFIGURE_COMMAND "" PATCH_COMMAND "" - BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/Boost-for-Android/build-android.sh ${CMAKE_ANDROID_NDK} --src-dir="${THIRDPARTY_DIR}/boost" --boost="${BOOST_VERSION}" --arch="${ANDROID_ABI}" --target-version="${ANDROID_PLATFORM_LEVEL}" --prefix="${BOOST_ROOT}" --with-libraries="${BOOST_INCLUDE_LIBRARIES_COMMA_SEPARATED}" --extra="--build-type=minimal,visibility=global,cxxstd=${CMAKE_CXX_STANDARD},-d0" + BUILD_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/Boost-for-Android/build-android.sh ${CMAKE_ANDROID_NDK} --src-dir="${THIRDPARTY_DIR}/boost" --boost="${BOOST_VERSION}" --arch="${ANDROID_ABI}" --target-version="${ANDROID_PLATFORM_LEVEL}" --prefix="${BOOST_ROOT}" --with-libraries="${BOOST_INCLUDE_LIBRARIES_COMMA_SEPARATED}" --extra="--build-type=minimal,visibility=global,cxxstd=${CMAKE_CXX_STANDARD},-d0,${BOOST_B2_EXTRA_FLAGS},${BOOST_ANDROID_B2_EXTRA_FLAGS}" INSTALL_COMMAND "" UPDATE_COMMAND "" -# TODO: fix this so that ninja parallel build will work -# BUILD_BYPRODUCTS -# "${BOOST_ROOT}/lib/libboost_container.a" -# "${BOOST_ROOT}/lib/libboost_program_options.a" -# "${BOOST_ROOT}/lib/libboost_random.a" -# "${BOOST_ROOT}/lib/libboost_regex.a" -# "${BOOST_ROOT}/lib/libboost_system.a" -# "${BOOST_ROOT}/lib/libboost_prg_exec_monitor.a" -# "${BOOST_ROOT}/lib/libboost_test_exec_monitor.a" -# "${BOOST_ROOT}/lib/libboost_unit_test_framework.a" -# "${BOOST_ROOT}/lib/libboost_timer.a" -# "${BOOST_ROOT}/lib/libboost_date_time.a" -# "${BOOST_ROOT}/lib/libboost_atomic.a" -# "${BOOST_ROOT}/lib/libboost_filesystem.a" -# "${BOOST_ROOT}/lib/libboost_json.a" -# "${BOOST_ROOT}/lib/libboost_thread.a" -# "${BOOST_ROOT}/lib/libboost_chrono.a" -# "${BOOST_ROOT}/lib/libboost_log.a" -# "${BOOST_ROOT}/lib/libboost_log_setup.a" + BUILD_BYPRODUCTS + "${BOOST_ROOT}/lib/libboost_container.a" + "${BOOST_ROOT}/lib/libboost_program_options.a" + "${BOOST_ROOT}/lib/libboost_random.a" + "${BOOST_ROOT}/lib/libboost_regex.a" + "${BOOST_ROOT}/lib/libboost_system.a" + "${BOOST_ROOT}/lib/libboost_prg_exec_monitor.a" + "${BOOST_ROOT}/lib/libboost_test_exec_monitor.a" + "${BOOST_ROOT}/lib/libboost_unit_test_framework.a" + "${BOOST_ROOT}/lib/libboost_timer.a" + "${BOOST_ROOT}/lib/libboost_date_time.a" + "${BOOST_ROOT}/lib/libboost_atomic.a" + "${BOOST_ROOT}/lib/libboost_filesystem.a" + "${BOOST_ROOT}/lib/libboost_json.a" + "${BOOST_ROOT}/lib/libboost_thread.a" + "${BOOST_ROOT}/lib/libboost_chrono.a" + "${BOOST_ROOT}/lib/libboost_log.a" + "${BOOST_ROOT}/lib/libboost_log_setup.a" + "${BOOST_ROOT}/lib/libboost_context.a" + "${BOOST_ROOT}/lib/libboost_coroutine.a" ) set(Boost_DIR "${BOOST_ROOT}/lib/cmake/Boost-${BOOST_VERSION}") @@ -92,6 +100,8 @@ set(boost_log_DIR "${BOOST_ROOT}/lib/cmake/boost_log-${BOOST_VERSION}") set(boost_log_setup_DIR "${BOOST_ROOT}/lib/cmake/boost_log_setup-${BOOST_VERSION}") set(boost_container_DIR "${BOOST_ROOT}/lib/cmake/boost_container-${BOOST_VERSION}") set(boost_unit_test_framework_DIR "${BOOST_ROOT}/lib/cmake/boost_unit_test_framework-${BOOST_VERSION}") +set(boost_context_DIR "${BOOST_ROOT}/lib/cmake/boost_context-${BOOST_VERSION}") +set(boost_coroutine_DIR "${BOOST_ROOT}/lib/cmake/boost_coroutine-${BOOST_VERSION}") set(_BOOST_CACHE_ARGS -DBOOST_ROOT:PATH=${BOOST_ROOT} @@ -115,6 +125,8 @@ set(_BOOST_CACHE_ARGS -Dboost_system_DIR:PATH=${boost_system_DIR} -Dboost_thread_DIR:PATH=${boost_thread_DIR} -Dboost_unit_test_framework_DIR:PATH=${boost_unit_test_framework_DIR} + -Dboost_context_DIR:PATH=${boost_context_DIR} + -Dboost_coroutine_DIR:PATH=${boost_coroutine_DIR} -DBoost_COMPILER:STRING=clang ) diff --git a/build/CommonCompilerOptions.CMake b/build/CommonCompilerOptions.CMake index 0f1237d6..afc2f71c 100644 --- a/build/CommonCompilerOptions.CMake +++ b/build/CommonCompilerOptions.CMake @@ -91,11 +91,12 @@ if(NOT EXISTS "${THIRDPARTY_DIR}/build") endif() # Boost settings -set(BOOST_INCLUDE_LIBRARIES container date_time filesystem json log program_options random regex system test timer) +set(BOOST_INCLUDE_LIBRARIES container date_time filesystem json log program_options random regex system test timer context coroutine) list(JOIN BOOST_INCLUDE_LIBRARIES "," BOOST_INCLUDE_LIBRARIES_COMMA_SEPARATED) separate_arguments(BOOST_B2_FLAGS NATIVE_COMMAND "${CMAKE_CXX_FLAGS}") list(APPEND BOOST_B2_FLAGS "-fPIC") +set(BOOST_B2_EXTRA_FLAGS "context-impl=fcontext") list(TRANSFORM BOOST_B2_FLAGS PREPEND "cxxflags=") # OpenSSL diff --git a/build/CommonTargets.CMake b/build/CommonTargets.CMake index cfb12cdc..1e986c93 100644 --- a/build/CommonTargets.CMake +++ b/build/CommonTargets.CMake @@ -15,7 +15,7 @@ if(CMAKE_CROSSCOMPILING) ExternalProject_Add(protobuf_host PREFIX ${PROTOBUF_HOST_PREFIX} - SOURCE_DIR "${THIRDPARTY_DIR}/grpc/third_party/protobuf" + SOURCE_DIR "${THIRDPARTY_DIR}/protobuf" CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= CMAKE_CACHE_ARGS @@ -29,17 +29,12 @@ if(CMAKE_CROSSCOMPILING) ${_PROTOBUF_HOST_EXTRA_CACHE_ARGS} ) else() - set(PROTOBUF_HOST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/grpc") - set(PROTOBUF_TARGET grpc) -endif() - -if(MSVC) - set(Protobuf_HOST_DIR "${PROTOBUF_HOST_PREFIX}/cmake") -else() - set(Protobuf_HOST_DIR "${PROTOBUF_HOST_PREFIX}/lib/cmake/protobuf") + set(PROTOBUF_HOST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/protobuf") + set(PROTOBUF_TARGET protobuf) endif() set(absl_HOST_DIR "${PROTOBUF_HOST_PREFIX}/lib/cmake/absl") +set(Protobuf_HOST_DIR "${PROTOBUF_HOST_PREFIX}/lib/cmake/protobuf") set(utf8_range_HOST_DIR "${PROTOBUF_HOST_PREFIX}/lib/cmake/utf8_range") set(PROTOBUF_HOST_INCLUDE_DIR "${PROTOBUF_HOST_PREFIX}/include") @@ -76,10 +71,10 @@ set(_FINDPACKAGE_CARES_CONFIG_DIR "${INSTALL_DIR}/lib/cmake/c-ares") set(_FINDPACKAGE_CARES_LIBRARY_DIR "${INSTALL_DIR}/lib") set(_FINDPACKAGE_CARES_INCLUDE_DIR "${INSTALL_DIR}/include") -# gRPC -ExternalProject_Add(grpc - PREFIX grpc - SOURCE_DIR "${THIRDPARTY_DIR}/grpc" +# Protobuf +ExternalProject_Add(protobuf + PREFIX protobuf + SOURCE_DIR "${THIRDPARTY_DIR}/protobuf" CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= CMAKE_CACHE_ARGS @@ -87,65 +82,30 @@ ExternalProject_Add(grpc -DABSL_ENABLE_INSTALL:BOOL=ON -DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_TESTING:BOOL=OFF - -Dc-ares_DIR:PATH=${_FINDPACKAGE_CARES_CONFIG_DIR} - -DgRPC_BUILD_CODEGEN:BOOL=OFF - -DgRPC_BUILD_CSHARP_EXT:BOOL=OFF - -DgRPC_BUILD_GRPC_CPP_PLUGIN:BOOL=OFF - -DgRPC_BUILD_GRPC_CSHARP_PLUGIN:BOOL=OFF - -DgRPC_BUILD_GRPC_NODE_PLUGIN:BOOL=OFF - -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN:BOOL=OFF - -DgRPC_BUILD_GRPC_PHP_PLUGIN:BOOL=OFF - -DgRPC_BUILD_GRPC_PYTHON_PLUGIN:BOOL=OFF - -DgRPC_BUILD_GRPC_RUBY_PLUGIN:BOOL=OFF - -DgRPC_CARES_PROVIDER:STRING=package - -DgRPC_INSTALL:BOOL=ON - -DgRPC_SSL_PROVIDER:STRING=package - -DgRPC_ZLIB_PROVIDER:STRING=package - -Dprotobuf_ABSL_PROVIDER:STRING=package -Dprotobuf_MODULE_COMPATIBLE:BOOL=ON -Dprotobuf_MSVC_STATIC_RUNTIME:BOOL=ON - -DRE2_BUILD_TESTING:BOOL=OFF - -DZLIB_ROOT:PATH=${ZLIB_ROOT} - -DZLIB_USE_STATIC_LIBS:BOOL=ON - -DABSL_PROPAGATE_CXX_STD:BOOL=ON - ${_OPENSSL_CACHE_ARGS} - DEPENDS openssl zlib cares ) - -ExternalProject_Get_Property(grpc INSTALL_DIR) - -# absl +ExternalProject_Get_Property(protobuf INSTALL_DIR) set(absl_DIR "${INSTALL_DIR}/lib/cmake/absl") - -# utf8_range set(utf8_range_DIR "${INSTALL_DIR}/lib/cmake/utf8_range") - -# Protobuf -if(MSVC) - set(Protobuf_DIR "${INSTALL_DIR}/cmake") -else() - set(Protobuf_DIR "${INSTALL_DIR}/lib/cmake/protobuf") -endif() - -set(Protobuf_LIBRARIES "${INSTALL_DIR}/lib") -set(Protobuf_INCLUDE_DIR "${INSTALL_DIR}/include") +set(Protobuf_DIR "${INSTALL_DIR}/lib/cmake/protobuf") # Snappy for RocksDB compression ExternalProject_Add(snappy - PREFIX snappy - SOURCE_DIR "${THIRDPARTY_DIR}/snappy" - CMAKE_ARGS - CMAKE_CACHE_ARGS - -DCMAKE_INSTALL_PREFIX:PATH= - -DFAIL_ON_WARNINGS:BOOL=OFF - -DSNAPPY_BUILD_TESTS:BOOL=OFF - -DSNAPPY_BUILD_BENCHMARKS:BOOL=OFF - ${_CMAKE_COMMON_CACHE_ARGS} - # these need to be at the end to override previous cached args line - -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}\ -DNDEBUG - -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}\ -DNDEBUG - BUILD_BYPRODUCTS - "${CMAKE_CURRENT_BINARY_DIR}/snappy/lib/libsnappy.a" + PREFIX snappy + SOURCE_DIR "${THIRDPARTY_DIR}/snappy" + CMAKE_ARGS + CMAKE_CACHE_ARGS + -DCMAKE_INSTALL_PREFIX:PATH= + -DFAIL_ON_WARNINGS:BOOL=OFF + -DSNAPPY_BUILD_TESTS:BOOL=OFF + -DSNAPPY_BUILD_BENCHMARKS:BOOL=OFF + ${_CMAKE_COMMON_CACHE_ARGS} + # these need to be at the end to override previous cached args line + -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG}\ -DNDEBUG + -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG}\ -DNDEBUG + BUILD_BYPRODUCTS + "${CMAKE_CURRENT_BINARY_DIR}/snappy/lib/libsnappy.a" ) set(_FINDPACKAGE_SNAPPY_DIR "${CMAKE_CURRENT_BINARY_DIR}/snappy/lib/cmake/Snappy") @@ -368,17 +328,12 @@ ExternalProject_Add(libp2p ${_OPENSSL_CACHE_ARGS} ${_CMAKE_COMMON_CACHE_ARGS} -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}\ -I\ ${_FINDPACKAGE_GSL_INCLUDE_DIR}\ -I\ ${_FINDPACKAGE_SQLITE3_INCLUDE_DIR} - DEPENDS Boost Microsoft.GSL openssl cares ${PROTOBUF_TARGET} fmt yaml-cpp soralog tsl_hat_trie Boost.DI SQLiteModernCpp grpc + DEPENDS Boost Microsoft.GSL openssl cares ${PROTOBUF_TARGET} fmt yaml-cpp soralog tsl_hat_trie Boost.DI SQLiteModernCpp protobuf ) set(_FINDPACKAGE_libp2p_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/libp2p/lib/cmake/libp2p") set(_FINDPACKAGE_libp2p_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libp2p/lib") set(_FINDPACKAGE_LIBP2P_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libp2p/include") -#if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") -# set(IS_APPLE_PLATFORM ON) -#elseif(CMAKE_SYSTEM_NAME STREQUAL "iOS") -# set(IS_APPLE_PLATFORM ON) -#endif() if(NOT ANDROID) # Vulkan-Headers ExternalProject_Add( @@ -412,25 +367,25 @@ if(NOT ANDROID) endif() if(NOT APPLE OR (APPLE AND CMAKE_OSX_SYSROOT MATCHES "iPhoneOS")) -ExternalProject_Add(MNN - PREFIX MNN - SOURCE_DIR "${THIRDPARTY_DIR}/MNN" - CMAKE_CACHE_ARGS - -DCMAKE_INSTALL_PREFIX:PATH= - -DMNN_BUILD_SHARED_LIBS:BOOL=OFF - -DMNN_BUILD_TESTS:BOOL=OFF - -DMNN_BUILD_TOOLS:BOOL=OFF - -DMNN_BUILD_PROTOBUFFER:BOOL=OFF - -DMNN_VULKAN:BOOL=ON - -DMNN_WIN_RUNTIME_MT:BOOL=ON - ${_CMAKE_COMMON_CACHE_ARGS} - ${_MNN_EXTRA_PARAM} - DEPENDS ${_MNN_DEPENDS} ${vulkanTarget} -) + ExternalProject_Add(MNN + PREFIX MNN + SOURCE_DIR "${THIRDPARTY_DIR}/MNN" + CMAKE_CACHE_ARGS + -DCMAKE_INSTALL_PREFIX:PATH= + -DMNN_BUILD_SHARED_LIBS:BOOL=OFF + -DMNN_BUILD_TESTS:BOOL=OFF + -DMNN_BUILD_TOOLS:BOOL=OFF + -DMNN_BUILD_PROTOBUFFER:BOOL=OFF + -DMNN_VULKAN:BOOL=ON + -DMNN_WIN_RUNTIME_MT:BOOL=ON + ${_CMAKE_COMMON_CACHE_ARGS} + ${_MNN_EXTRA_PARAM} + DEPENDS ${_MNN_DEPENDS} ${vulkanTarget} + ) -set(_FINDPACKAGE_MNN_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/MNN/lib/cmake/MNN") -set(_FINDPACKAGE_MNN_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/MNN/lib") -set(_FINDPACKAGE_MNN_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/MNN/include") + set(_FINDPACKAGE_MNN_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/MNN/lib/cmake/MNN") + set(_FINDPACKAGE_MNN_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/MNN/lib") + set(_FINDPACKAGE_MNN_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/MNN/include") endif() # ipfs-lite-cpp @@ -463,7 +418,7 @@ ExternalProject_Add(ipfs-lite-cpp ${_BOOST_CACHE_ARGS} ${_OPENSSL_CACHE_ARGS} -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}\ -I\ ${_FINDPACKAGE_GSL_INCLUDE_DIR} - DEPENDS Microsoft.GSL spdlog tsl_hat_trie libp2p grpc ${PROTOBUF_TARGET} rocksdb Boost.DI + DEPENDS Microsoft.GSL spdlog tsl_hat_trie libp2p protobuf ${PROTOBUF_TARGET} rocksdb Boost.DI ) set(_FINDPACKAGE_IPFS_LITE_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/ipfs-lite-cpp/lib/cmake/ipfs-lite-cpp") set(_FINDPACKAGE_IPFS_LITE_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/ipfs-lite-cpp/lib") @@ -553,18 +508,6 @@ ExternalProject_Add(ed25519 ) set(_FINDPACKAGE_ed25519_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/ed25519/lib/cmake/ed25519") -# sr25519-donna -ExternalProject_Add(sr25519-donna - PREFIX sr25519-donna - SOURCE_DIR "${THIRDPARTY_DIR}/sr25519-donna" - CMAKE_CACHE_ARGS - -DCMAKE_INSTALL_PREFIX:PATH= - -DTESTING:BOOL=OFF - -DBUILD_SHARED_LIBS:BOOL=OFF - -DHASH_USE_SHA3_BRAINHUB:BOOL=ON - ${_CMAKE_COMMON_CACHE_ARGS} -) - # RapidJSON ExternalProject_Add(rapidjson PREFIX rapidjson @@ -616,8 +559,8 @@ ExternalProject_Add(protobuf-plugin INSTALL_DIR protobuf-plugin CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= - -Dabsl_DIR:PATH=${absl_HOST_DIR} -DCMAKE_BUILD_TYPE:STRING=Release + -Dabsl_DIR:PATH=${absl_HOST_DIR} -DProtobuf_DIR:PATH=${Protobuf_HOST_DIR} -Dprotobuf_MODULE_COMPATIBLE:BOOL=ON -DTW_USE_EXTERNAL_PROTOC:BOOL=TRUE @@ -657,8 +600,8 @@ ExternalProject_Add(wallet-core # doesn't short-circuit a second config (e.g. Release after Debug) and skip # building the correct config's artifact. PATCH_COMMAND ${CMAKE_COMMAND} -E rm -f "${THIRDPARTY_DIR}/wallet-core/rust/target/libwallet_core_rs.a" - COMMAND ${_WALLET_CORE_GENERATE_SCRIPT} --target-os=${_WALLET_CORE_ARCH} --arch-abi=${WALLET_CORE_ARCH_ABI} --protobuf-dir=${PROTOBUF_HOST_PREFIX} --out-dir= --plugin-dir=${ProtobufPlugin_DIR}/bin --build-type=$ - DEPENDS Boost grpc openssl protobuf-plugin + COMMAND ${_WALLET_CORE_GENERATE_SCRIPT} --target-os=${_WALLET_CORE_ARCH} --arch-abi=${WALLET_CORE_ARCH_ABI} --protobuf-dir=${PROTOBUF_HOST_PREFIX} --out-dir= --plugin-dir=${ProtobufPlugin_DIR}/bin --build-type=$ + DEPENDS Boost protobuf openssl protobuf-plugin BUILD_BYPRODUCTS "${CMAKE_CURRENT_BINARY_DIR}/wallet-core/lib/libTrustWalletCore.a" ) @@ -718,11 +661,8 @@ ExternalProject_Add(AsyncIOManager ${_BOOST_CACHE_ARGS} ${_OPENSSL_CACHE_ARGS} ${_CMAKE_COMMON_CACHE_ARGS} - DEPENDS libssh2 openssl ipfs-lite-cpp ipfs-bitswap-cpp grpc ${PROTOBUF_TARGET} Boost MNN + DEPENDS libssh2 openssl ipfs-lite-cpp ipfs-bitswap-cpp protobuf ${PROTOBUF_TARGET} Boost MNN ) -set(_FINDPACKAGE_ASIOMGR_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/AsyncIOManager/lib/cmake/AsyncIOManager") -set(_FINDPACKAGE_ASIOMGR_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/AsyncIOManager/lib") -set(_FINDPACKAGE_ASIOMGR_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/AsyncIOManager/include") # gnus_upnp ExternalProject_Add(gnus_upnp @@ -741,25 +681,19 @@ ExternalProject_Add(gnus_upnp ${_OPENSSL_CACHE_ARGS} DEPENDS Boost fmt spdlog tsl_hat_trie yaml-cpp ) -set(_FINDPACKAGE_GNUS_UPNP_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/gnus_upnp/lib/cmake/gnus_upnp") -set(_FINDPACKAGE_GNUS_UPNP_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/gnus_upnp/lib") -set(_FINDPACKAGE_GNUS_UPNP_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/gnus_upnp/include") -#json.hpp +# Nlohmann JSON ExternalProject_Add(json PREFIX json SOURCE_DIR "${THIRDPARTY_DIR}/json" CMAKE_CACHE_ARGS -DCMAKE_INSTALL_PREFIX:PATH= - -DJSON_BuildTests:BOOL=OFF + -DJSON_BuildTests:BOOL=OFF ${_CMAKE_COMMON_CACHE_ARGS} ${_BOOST_CACHE_ARGS} ${_OPENSSL_CACHE_ARGS} DEPENDS Boost ) -set(_FINDPACKAGE_JSON_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/json/lib/cmake/valijson") -set(_FINDPACKAGE_JSON_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/json/lib") -set(_FINDPACKAGE_JSON_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/json/include") # jsonrpc-lean install( diff --git a/build/Linux/CMakeLists.txt b/build/Linux/CMakeLists.txt index c397b2a6..f7b1ded7 100644 --- a/build/Linux/CMakeLists.txt +++ b/build/Linux/CMakeLists.txt @@ -24,10 +24,31 @@ ExternalProject_Add(Boost CONFIGURE_COMMAND /bootstrap.sh --with-toolset=clang --with-libraries=${BOOST_INCLUDE_LIBRARIES_COMMA_SEPARATED} --prefix=${BOOST_ROOT} - BUILD_COMMAND /b2${CMAKE_EXECUTABLE_SUFFIX} ${BOOST_B2_FLAGS} cxxstd=${CMAKE_CXX_STANDARD} visibility=global runtime-link=static link=static threading=multi --build-type=minimal address-model=64 ${BOOST_ARCH_FLAGS} variant=${BOOST_VARIANT} --prefix= -d0 -j4 install + BUILD_COMMAND /b2${CMAKE_EXECUTABLE_SUFFIX} ${BOOST_B2_FLAGS} ${BOOST_B2_EXTRA_FLAGS} cxxstd=${CMAKE_CXX_STANDARD} visibility=global runtime-link=static link=static threading=multi --build-type=minimal address-model=64 ${BOOST_ARCH_FLAGS} variant=${BOOST_VARIANT} --prefix= -d0 install BUILD_IN_SOURCE TRUE INSTALL_COMMAND "" + BUILD_BYPRODUCTS + "${BOOST_ROOT}/lib/libboost_container.a" + "${BOOST_ROOT}/lib/libboost_program_options.a" + "${BOOST_ROOT}/lib/libboost_random.a" + "${BOOST_ROOT}/lib/libboost_regex.a" + "${BOOST_ROOT}/lib/libboost_system.a" + "${BOOST_ROOT}/lib/libboost_prg_exec_monitor.a" + "${BOOST_ROOT}/lib/libboost_test_exec_monitor.a" + "${BOOST_ROOT}/lib/libboost_unit_test_framework.a" + "${BOOST_ROOT}/lib/libboost_timer.a" + "${BOOST_ROOT}/lib/libboost_date_time.a" + "${BOOST_ROOT}/lib/libboost_atomic.a" + "${BOOST_ROOT}/lib/libboost_filesystem.a" + "${BOOST_ROOT}/lib/libboost_json.a" + "${BOOST_ROOT}/lib/libboost_thread.a" + "${BOOST_ROOT}/lib/libboost_chrono.a" + "${BOOST_ROOT}/lib/libboost_log.a" + "${BOOST_ROOT}/lib/libboost_log_setup.a" + "${BOOST_ROOT}/lib/libboost_context.a" + "${BOOST_ROOT}/lib/libboost_coroutine.a" + ) set(Boost_DIR "${BOOST_ROOT}/lib/cmake/Boost-${BOOST_VERSION}") diff --git a/build/OSX/CMakeLists.txt b/build/OSX/CMakeLists.txt index 58e1b65a..2a750cd1 100644 --- a/build/OSX/CMakeLists.txt +++ b/build/OSX/CMakeLists.txt @@ -39,7 +39,7 @@ ExternalProject_Add(Boost CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env MACOSX_DEPLOYMENT_TARGET=${DEPLOYMENT_TARGET} /bootstrap.sh --with-toolset=clang --with-libraries=${BOOST_INCLUDE_LIBRARIES_COMMA_SEPARATED} --prefix=${BOOST_ROOT} - BUILD_COMMAND ${CMAKE_COMMAND} -E env MACOSX_DEPLOYMENT_TARGET=${DEPLOYMENT_TARGET} /b2${CMAKE_EXECUTABLE_SUFFIX} ${BOOST_B2_FLAGS} toolset=clang cxxstd=${CMAKE_CXX_STANDARD} visibility=global runtime-link=static link=static threading=multi --build-type=minimal address-model=64 architecture=${BOOST_ARCH} variant=${BOOST_VARIANT} --prefix=${BOOST_ROOT} -j4 install + BUILD_COMMAND ${CMAKE_COMMAND} -E env MACOSX_DEPLOYMENT_TARGET=${DEPLOYMENT_TARGET} /b2${CMAKE_EXECUTABLE_SUFFIX} ${BOOST_B2_FLAGS} ${BOOST_B2_EXTRA_FLAGS} toolset=clang cxxstd=${CMAKE_CXX_STANDARD} abi=sysv visibility=global runtime-link=static link=static threading=multi --build-type=minimal address-model=64 architecture=${BOOST_ARCH} variant=${BOOST_VARIANT} --prefix=${BOOST_ROOT} install BUILD_IN_SOURCE TRUE INSTALL_COMMAND "" @@ -61,6 +61,8 @@ ExternalProject_Add(Boost "${BOOST_ROOT}/lib/libboost_chrono.a" "${BOOST_ROOT}/lib/libboost_log.a" "${BOOST_ROOT}/lib/libboost_log_setup.a" + "${BOOST_ROOT}/lib/libboost_context.a" + "${BOOST_ROOT}/lib/libboost_coroutine.a" ) @@ -73,6 +75,8 @@ set(boost_program_options_DIR "${BOOST_ROOT}/lib/cmake/boost_program_options-${B set(boost_random_DIR "${BOOST_ROOT}/lib/cmake/boost_random-${BOOST_VERSION}") set(boost_regex_DIR "${BOOST_ROOT}/lib/cmake/boost_regex-${BOOST_VERSION}") set(boost_system_DIR "${BOOST_ROOT}/lib/cmake/boost_system-${BOOST_VERSION}") +set(boost_context_DIR "${BOOST_ROOT}/lib/cmake/boost_context-${BOOST_VERSION}") +set(boost_coroutine_DIR "${BOOST_ROOT}/lib/cmake/boost_coroutine-${BOOST_VERSION}") set(_BOOST_CACHE_ARGS -DBOOST_ROOT:PATH=${BOOST_ROOT} @@ -85,6 +89,8 @@ set(_BOOST_CACHE_ARGS -Dboost_random_DIR:PATH=${boost_random_DIR} -Dboost_regex_DIR:PATH=${boost_regex_DIR} -Dboost_system_DIR:PATH=${boost_system_DIR} + -Dboost_context_DIR:PATH=${boost_context_DIR} + -Dboost_coroutine_DIR:PATH=${boost_coroutine_DIR} -DBoost_NO_SYSTEM_PATHS:BOOL=ON -DBoost_USE_MULTITHREADED:BOOL=ON -DBoost_USE_STATIC_LIBS:BOOL=ON diff --git a/build/Windows/CMakeLists.txt b/build/Windows/CMakeLists.txt index 0e282616..589ca749 100644 --- a/build/Windows/CMakeLists.txt +++ b/build/Windows/CMakeLists.txt @@ -31,7 +31,7 @@ ExternalProject_Add(Boost CONFIGURE_COMMAND ./bootstrap.bat vc143 - BUILD_COMMAND /b2${CMAKE_EXECUTABLE_SUFFIX} cxxstd=${CMAKE_CXX_STANDARD} visibility=global runtime-link=static link=static threading=multi --build-type=minimal ${BOOST_INCLUDE_LIBRARIES_EXPANDED} address-model=64 architecture=x86 variant=${BOOST_VARIANT} --prefix=${BOOST_ROOT} -d0 -j4 install + BUILD_COMMAND /b2${CMAKE_EXECUTABLE_SUFFIX} cxxstd=${CMAKE_CXX_STANDARD} visibility=global runtime-link=static link=static threading=multi --build-type=minimal ${BOOST_INCLUDE_LIBRARIES_EXPANDED} address-model=64 architecture=x86 variant=${BOOST_VARIANT} --prefix=${BOOST_ROOT} -d0 ${BOOST_B2_EXTRA_FLAGS} install BUILD_IN_SOURCE TRUE PATCH_COMMAND @@ -57,6 +57,8 @@ set(_BOOST_CACHE_ARGS -Dboost_random_DIR:PATH=${Boost_DIR}/boost_random-${BOOST_VERSION} -Dboost_regex_DIR:PATH=${Boost_DIR}/boost_regex-${BOOST_VERSION} -Dboost_system_DIR:PATH=${Boost_DIR}/boost_system-${BOOST_VERSION} + -Dboost_context_DIR:PATH=${Boost_DIR}/boost_context-${BOOST_VERSION} + -Dboost_coroutine_DIR:PATH=${Boost_DIR}/boost_coroutine-${BOOST_VERSION} -DBoost_NO_SYSTEM_PATHS:BOOL=ON -DBoost_USE_MULTITHREADED:BOOL=ON -DBoost_USE_STATIC_LIBS:BOOL=ON diff --git a/build/iOS/CMakeLists.txt b/build/iOS/CMakeLists.txt index ffa8264b..3cc22778 100644 --- a/build/iOS/CMakeLists.txt +++ b/build/iOS/CMakeLists.txt @@ -35,6 +35,9 @@ set(_CMAKE_COMMON_CACHE_ARGS ${_CMAKE_COMMON_CACHE_ARGS} # Boost set(BOOST_ROOT "${CMAKE_CURRENT_BINARY_DIR}/boost/build") +set(BOOST_IOS_ASM_B2_FLAGS ${BOOST_B2_FLAGS}) +list(TRANSFORM BOOST_IOS_ASM_B2_FLAGS REPLACE "^cxxflags=" "cflags=") + ExternalProject_Add(Boost PREFIX boost SOURCE_DIR "${THIRDPARTY_DIR}/boost" @@ -42,10 +45,30 @@ ExternalProject_Add(Boost CONFIGURE_COMMAND /bootstrap.sh --with-toolset=clang --with-libraries=${BOOST_INCLUDE_LIBRARIES_COMMA_SEPARATED} --prefix=${BOOST_ROOT} - BUILD_COMMAND /b2${CMAKE_EXECUTABLE_SUFFIX} ${BOOST_B2_FLAGS} cxxstd=${CMAKE_CXX_STANDARD} toolset=darwin target-os=iphone visibility=global runtime-link=static link=static threading=multi --build-type=minimal address-model=64 architecture=arm variant=${BOOST_VARIANT} --prefix= -d0 -j4 install + BUILD_COMMAND /b2${CMAKE_EXECUTABLE_SUFFIX} ${BOOST_B2_FLAGS} ${BOOST_IOS_ASM_B2_FLAGS} ${BOOST_B2_EXTRA_FLAGS} cxxstd=${CMAKE_CXX_STANDARD} toolset=darwin target-os=iphone visibility=global runtime-link=static link=static threading=multi --build-type=minimal address-model=64 architecture=arm variant=${BOOST_VARIANT} --prefix= -d0 install BUILD_IN_SOURCE TRUE INSTALL_COMMAND "" + BUILD_BYPRODUCTS + "${BOOST_ROOT}/lib/libboost_container.a" + "${BOOST_ROOT}/lib/libboost_program_options.a" + "${BOOST_ROOT}/lib/libboost_random.a" + "${BOOST_ROOT}/lib/libboost_regex.a" + "${BOOST_ROOT}/lib/libboost_system.a" + "${BOOST_ROOT}/lib/libboost_prg_exec_monitor.a" + "${BOOST_ROOT}/lib/libboost_test_exec_monitor.a" + "${BOOST_ROOT}/lib/libboost_unit_test_framework.a" + "${BOOST_ROOT}/lib/libboost_timer.a" + "${BOOST_ROOT}/lib/libboost_date_time.a" + "${BOOST_ROOT}/lib/libboost_atomic.a" + "${BOOST_ROOT}/lib/libboost_filesystem.a" + "${BOOST_ROOT}/lib/libboost_json.a" + "${BOOST_ROOT}/lib/libboost_thread.a" + "${BOOST_ROOT}/lib/libboost_chrono.a" + "${BOOST_ROOT}/lib/libboost_log.a" + "${BOOST_ROOT}/lib/libboost_log_setup.a" + "${BOOST_ROOT}/lib/libboost_context.a" + "${BOOST_ROOT}/lib/libboost_coroutine.a" ) set(Boost_DIR "${BOOST_ROOT}/lib/cmake/Boost-${BOOST_VERSION}") @@ -57,6 +80,8 @@ set(boost_filesystem_DIR "${BOOST_ROOT}/lib/cmake/boost_filesystem-${BOOST_VERSI set(boost_program_options_DIR "${BOOST_ROOT}/lib/cmake/boost_program_options-${BOOST_VERSION}") set(boost_regex_DIR "${BOOST_ROOT}/lib/cmake/boost_regex-${BOOST_VERSION}") set(boost_date_time_DIR "${BOOST_ROOT}/lib/cmake/boost_date_time-${BOOST_VERSION}") +set(boost_context_DIR "${BOOST_ROOT}/lib/cmake/boost_context-${BOOST_VERSION}") +set(boost_coroutine_DIR "${BOOST_ROOT}/lib/cmake/boost_coroutine-${BOOST_VERSION}") set(_BOOST_CACHE_ARGS -DBOOST_ROOT:PATH=${BOOST_ROOT} @@ -73,6 +98,8 @@ set(_BOOST_CACHE_ARGS -Dboost_random_DIR:PATH=${boost_random_DIR} -Dboost_regex_DIR:PATH=${boost_regex_DIR} -Dboost_system_DIR:PATH=${boost_system_DIR} + -Dboost_context_DIR:PATH=${boost_context_DIR} + -Dboost_coroutine_DIR:PATH=${boost_coroutine_DIR} ) # OpenSSL diff --git a/c-ares b/c-ares index bf4c5fd2..3ac47ee4 160000 --- a/c-ares +++ b/c-ares @@ -1 +1 @@ -Subproject commit bf4c5fd223e71776e3d0c5a6a8d5598ffb82597c +Subproject commit 3ac47ee46edd8ea40370222f91613fc16c434853 diff --git a/celer-network/pb3-gen-sol b/celer-network/pb3-gen-sol deleted file mode 160000 index a533630b..00000000 --- a/celer-network/pb3-gen-sol +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a533630b5c883b75d4228c684694262c764c72d5 diff --git a/cpp-ipfs-http-client b/cpp-ipfs-http-client deleted file mode 160000 index 763e59ad..00000000 --- a/cpp-ipfs-http-client +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 763e59ad698f3e3846f85df11e01c18ef3fbc401 diff --git a/cryptopp-cmake b/cryptopp-cmake deleted file mode 160000 index 9327192b..00000000 --- a/cryptopp-cmake +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9327192b0095dc1f420b2082d37bd427b5750d48 diff --git a/curl-android-ios b/curl-android-ios deleted file mode 160000 index da6f0d23..00000000 --- a/curl-android-ios +++ /dev/null @@ -1 +0,0 @@ -Subproject commit da6f0d2302ce7a9ea560871fe9e6e86398d5b584 diff --git a/gnostic b/gnostic deleted file mode 160000 index b262eedc..00000000 --- a/gnostic +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b262eedca18529879e9eb12c97fa2a188c5e1ebe diff --git a/grpc b/grpc deleted file mode 160000 index 9713d459..00000000 --- a/grpc +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9713d459ed9a4716dccf8e69a9fff58bff684812 diff --git a/hat-trie b/hat-trie index 343e0dac..4fdfc75e 160000 --- a/hat-trie +++ b/hat-trie @@ -1 +1 @@ -Subproject commit 343e0dac54fc8491065e8a059a02db9a2b1248ab +Subproject commit 4fdfc75e75276185eed4b748ea09671601101b8e diff --git a/ipfs-bitswap-cpp b/ipfs-bitswap-cpp index ab22bb1d..20d7d6c6 160000 --- a/ipfs-bitswap-cpp +++ b/ipfs-bitswap-cpp @@ -1 +1 @@ -Subproject commit ab22bb1d03f7ca734991fcbb36bcf81adf6e0381 +Subproject commit 20d7d6c6da132958942ac96cea9492fa3e49e9db diff --git a/json b/json index 55abcb5c..55f93686 160000 --- a/json +++ b/json @@ -1 +1 @@ -Subproject commit 55abcb5c0f0571b07a1717665859dbc5a9522f1b +Subproject commit 55f93686c01528224f448c19128836e7df245f72 diff --git a/libsecp256k1 b/libsecp256k1 index 0cdc758a..1a53f496 160000 --- a/libsecp256k1 +++ b/libsecp256k1 @@ -1 +1 @@ -Subproject commit 0cdc758a56360bf58a851fe91085a327ec97685a +Subproject commit 1a53f4961f337b4d166c25fce72ef0dc88806618 diff --git a/libssh2 b/libssh2 index cd61734d..a312b433 160000 --- a/libssh2 +++ b/libssh2 @@ -1 +1 @@ -Subproject commit cd61734dad079a2bb9dbd598dfa654272a35d2d6 +Subproject commit a312b43325e3383c865a87bb1d26cb52e3292641 diff --git a/lmdb b/lmdb deleted file mode 160000 index 10e4b713..00000000 --- a/lmdb +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 10e4b71350fe3e8516115dee4f50b43f13ee42df diff --git a/protobuf b/protobuf new file mode 160000 index 00000000..6a6cd88c --- /dev/null +++ b/protobuf @@ -0,0 +1 @@ +Subproject commit 6a6cd88c262ffdb1738167a47d5fcc7a3eb4edac diff --git a/sr25519-donna b/sr25519-donna deleted file mode 160000 index 987e2c54..00000000 --- a/sr25519-donna +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 987e2c54e56a29f0aac439d461dc24fcdcb51580 diff --git a/wallet-core b/wallet-core index 58e659a6..53f650c5 160000 --- a/wallet-core +++ b/wallet-core @@ -1 +1 @@ -Subproject commit 58e659a6b928bc67bc83641a93e1d92b5a2c6f01 +Subproject commit 53f650c5b699a2c01b98eeb891792fbb4db45b02 diff --git a/yaml-cpp b/yaml-cpp index 28f93bde..56e3bb55 160000 --- a/yaml-cpp +++ b/yaml-cpp @@ -1 +1 @@ -Subproject commit 28f93bdec6387d42332220afa9558060c8016795 +Subproject commit 56e3bb550c91fd7005566f19c079cb7a503223cf diff --git a/zlib b/zlib index 51b7f2ab..da607da7 160000 --- a/zlib +++ b/zlib @@ -1 +1 @@ -Subproject commit 51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf +Subproject commit da607da739fa6047df13e66a2af6b8bec7c2a498