diff --git a/Builds/CMake/deps/Boost.cmake b/Builds/CMake/deps/Boost.cmake index 2f4f0ff32..5038234bc 100644 --- a/Builds/CMake/deps/Boost.cmake +++ b/Builds/CMake/deps/Boost.cmake @@ -1,4 +1,50 @@ -find_package(Boost 1.83 REQUIRED +#[===================================================================[ + NIH dep: boost +#]===================================================================] + +if((NOT DEFINED BOOST_ROOT) AND(DEFINED ENV{BOOST_ROOT})) + set(BOOST_ROOT $ENV{BOOST_ROOT}) +endif() +file(TO_CMAKE_PATH "${BOOST_ROOT}" BOOST_ROOT) +if(WIN32 OR CYGWIN) + # Workaround for MSVC having two boost versions - x86 and x64 on same PC in stage folders + if(DEFINED BOOST_ROOT) + if(IS_DIRECTORY ${BOOST_ROOT}/stage64/lib) + set(BOOST_LIBRARYDIR ${BOOST_ROOT}/stage64/lib) + elseif(IS_DIRECTORY ${BOOST_ROOT}/stage/lib) + set(BOOST_LIBRARYDIR ${BOOST_ROOT}/stage/lib) + elseif(IS_DIRECTORY ${BOOST_ROOT}/lib) + set(BOOST_LIBRARYDIR ${BOOST_ROOT}/lib) + else() + message(WARNING "Did not find expected boost library dir. " + "Defaulting to ${BOOST_ROOT}") + set(BOOST_LIBRARYDIR ${BOOST_ROOT}) + endif() + endif() +endif() +message(STATUS "BOOST_ROOT: ${BOOST_ROOT}") +message(STATUS "BOOST_LIBRARYDIR: ${BOOST_LIBRARYDIR}") + +# uncomment the following as needed to debug FindBoost issues: +#set(Boost_DEBUG ON) + +#[=========================================================[ + boost dynamic libraries don't trivially support @rpath + linking right now (cmake's default), so just force + static linking for macos, or if requested on linux by flag +#]=========================================================] +if(static) + set(Boost_USE_STATIC_LIBS ON) +endif() +set(Boost_USE_MULTITHREADED ON) +if(static AND NOT APPLE) + set(Boost_USE_STATIC_RUNTIME ON) +else() + set(Boost_USE_STATIC_RUNTIME OFF) +endif() +# TBD: +# Boost_USE_DEBUG_RUNTIME: When ON, uses Boost libraries linked against the +find_package(Boost 1.86 REQUIRED COMPONENTS chrono container @@ -9,12 +55,11 @@ find_package(Boost 1.83 REQUIRED program_options regex system - thread -) + thread) add_library(ripple_boost INTERFACE) add_library(Ripple::boost ALIAS ripple_boost) -if(XCODE) +if(is_xcode) target_include_directories(ripple_boost BEFORE INTERFACE ${Boost_INCLUDE_DIRS}) target_compile_options(ripple_boost INTERFACE --system-header-prefix="boost/") else() diff --git a/Release.Builds/Builds/CMake/deps/Ed25519-donna.cmake b/Builds/CMake/deps/Ed25519-donna.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Ed25519-donna.cmake rename to Builds/CMake/deps/Ed25519-donna.cmake diff --git a/Release.Builds/Builds/CMake/deps/FindBoost.cmake b/Builds/CMake/deps/FindBoost.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/FindBoost.cmake rename to Builds/CMake/deps/FindBoost.cmake diff --git a/Release.Builds/Builds/CMake/deps/Findjemalloc.cmake b/Builds/CMake/deps/Findjemalloc.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Findjemalloc.cmake rename to Builds/CMake/deps/Findjemalloc.cmake diff --git a/Release.Builds/Builds/CMake/deps/Findlibarchive_pc.cmake b/Builds/CMake/deps/Findlibarchive_pc.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Findlibarchive_pc.cmake rename to Builds/CMake/deps/Findlibarchive_pc.cmake diff --git a/Release.Builds/Builds/CMake/deps/Findlz4.cmake b/Builds/CMake/deps/Findlz4.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Findlz4.cmake rename to Builds/CMake/deps/Findlz4.cmake diff --git a/Release.Builds/Builds/CMake/deps/Findsecp256k1.cmake b/Builds/CMake/deps/Findsecp256k1.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Findsecp256k1.cmake rename to Builds/CMake/deps/Findsecp256k1.cmake diff --git a/Release.Builds/Builds/CMake/deps/Findsnappy.cmake b/Builds/CMake/deps/Findsnappy.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Findsnappy.cmake rename to Builds/CMake/deps/Findsnappy.cmake diff --git a/Release.Builds/Builds/CMake/deps/Findsoci.cmake b/Builds/CMake/deps/Findsoci.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Findsoci.cmake rename to Builds/CMake/deps/Findsoci.cmake diff --git a/Release.Builds/Builds/CMake/deps/Findsqlite.cmake b/Builds/CMake/deps/Findsqlite.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Findsqlite.cmake rename to Builds/CMake/deps/Findsqlite.cmake diff --git a/Release.Builds/Builds/CMake/deps/Libarchive.cmake b/Builds/CMake/deps/Libarchive.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Libarchive.cmake rename to Builds/CMake/deps/Libarchive.cmake diff --git a/Release.Builds/Builds/CMake/deps/Lz4.cmake b/Builds/CMake/deps/Lz4.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Lz4.cmake rename to Builds/CMake/deps/Lz4.cmake diff --git a/Release.Builds/Builds/CMake/deps/Nudb.cmake b/Builds/CMake/deps/Nudb.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Nudb.cmake rename to Builds/CMake/deps/Nudb.cmake diff --git a/Release.Builds/Builds/CMake/deps/OpenSSL.cmake b/Builds/CMake/deps/OpenSSL.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/OpenSSL.cmake rename to Builds/CMake/deps/OpenSSL.cmake diff --git a/Release.Builds/Builds/CMake/deps/Postgres.cmake b/Builds/CMake/deps/Postgres.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Postgres.cmake rename to Builds/CMake/deps/Postgres.cmake diff --git a/Builds/CMake/deps/Protobuf.cmake b/Builds/CMake/deps/Protobuf.cmake index 0706ae322..35d5b9f0f 100644 --- a/Builds/CMake/deps/Protobuf.cmake +++ b/Builds/CMake/deps/Protobuf.cmake @@ -1,22 +1,155 @@ -find_package(Protobuf 3.8) +#[===================================================================[ + import protobuf (lib and compiler) and create a lib + from our proto message definitions. If the system protobuf + is not found, fallback on EP to download and build a version + from official source. +#]===================================================================] -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/proto_gen) -set(ccbd ${CMAKE_CURRENT_BINARY_DIR}) -set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_BINARY_DIR}/proto_gen) -protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS src/ripple/proto/ripple.proto) -set(CMAKE_CURRENT_BINARY_DIR ${ccbd}) +if (static) + set (Protobuf_USE_STATIC_LIBS ON) +endif () +find_package (Protobuf 3.8) +if (is_multiconfig) + set(protobuf_protoc_lib ${Protobuf_PROTOC_LIBRARIES}) +else () + string(TOUPPER ${CMAKE_BUILD_TYPE} upper_cmake_build_type) + set(protobuf_protoc_lib ${Protobuf_PROTOC_LIBRARY_${upper_cmake_build_type}}) +endif () +if (local_protobuf OR NOT (Protobuf_FOUND AND Protobuf_PROTOC_EXECUTABLE AND protobuf_protoc_lib)) + include (GNUInstallDirs) + message (STATUS "using local protobuf build.") + set(protobuf_reqs Protobuf_PROTOC_EXECUTABLE protobuf_protoc_lib) + foreach(lib ${protobuf_reqs}) + if(NOT ${lib}) + message(STATUS "Couldn't find ${lib}") + endif() + endforeach() + if (WIN32) + # protobuf prepends lib even on windows + set (pbuf_lib_pre "lib") + else () + set (pbuf_lib_pre ${ep_lib_prefix}) + endif () + # for the external project build of protobuf, we currently ignore the + # static option and always build static libs here. This is consistent + # with our other EP builds. Dynamic libs in an EP would add complexity + # because we'd need to get them into the runtime path, and probably + # install them. + ExternalProject_Add (protobuf_src + PREFIX ${nih_cache_path} + GIT_REPOSITORY https://github.com/protocolbuffers/protobuf.git + GIT_TAG v3.8.0 + SOURCE_SUBDIR cmake + CMAKE_ARGS + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_INSTALL_PREFIX=/_installed_ + -Dprotobuf_BUILD_TESTS=OFF + -Dprotobuf_BUILD_EXAMPLES=OFF + -Dprotobuf_BUILD_PROTOC_BINARIES=ON + -Dprotobuf_MSVC_STATIC_RUNTIME=ON + -DBUILD_SHARED_LIBS=OFF + -Dprotobuf_BUILD_SHARED_LIBS=OFF + -DCMAKE_DEBUG_POSTFIX=_d + -Dprotobuf_DEBUG_POSTFIX=_d + -Dprotobuf_WITH_ZLIB=$,ON,OFF> + $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> + $<$:-DCMAKE_UNITY_BUILD=ON}> + $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> + $<$: + "-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -EHa -MP" + > + LOG_BUILD ON + LOG_CONFIGURE ON + BUILD_COMMAND + ${CMAKE_COMMAND} + --build . + --config $ + --parallel ${ep_procs} + TEST_COMMAND "" + INSTALL_COMMAND + ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $ --target install + BUILD_BYPRODUCTS + /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf${ep_lib_suffix} + /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf_d${ep_lib_suffix} + /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc${ep_lib_suffix} + /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc_d${ep_lib_suffix} + /_installed_/bin/protoc${CMAKE_EXECUTABLE_SUFFIX} + ) + ExternalProject_Get_Property (protobuf_src BINARY_DIR) + ExternalProject_Get_Property (protobuf_src SOURCE_DIR) + if (CMAKE_VERBOSE_MAKEFILE) + print_ep_logs (protobuf_src) + endif () + exclude_if_included (protobuf_src) -add_library(pbufs STATIC ${PROTO_SRCS} ${PROTO_HDRS}) -target_include_directories(pbufs SYSTEM PUBLIC - ${CMAKE_BINARY_DIR}/proto_gen - ${CMAKE_BINARY_DIR}/proto_gen/src/ripple/proto -) -target_link_libraries(pbufs protobuf::libprotobuf) -target_compile_options(pbufs + if (NOT TARGET protobuf::libprotobuf) + add_library (protobuf::libprotobuf STATIC IMPORTED GLOBAL) + endif () + file (MAKE_DIRECTORY ${BINARY_DIR}/_installed_/include) + set_target_properties (protobuf::libprotobuf PROPERTIES + IMPORTED_LOCATION_DEBUG + ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf_d${ep_lib_suffix} + IMPORTED_LOCATION_RELEASE + ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf${ep_lib_suffix} + INTERFACE_INCLUDE_DIRECTORIES + ${BINARY_DIR}/_installed_/include) + add_dependencies (protobuf::libprotobuf protobuf_src) + exclude_if_included (protobuf::libprotobuf) + + if (NOT TARGET protobuf::libprotoc) + add_library (protobuf::libprotoc STATIC IMPORTED GLOBAL) + endif () + set_target_properties (protobuf::libprotoc PROPERTIES + IMPORTED_LOCATION_DEBUG + ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc_d${ep_lib_suffix} + IMPORTED_LOCATION_RELEASE + ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc${ep_lib_suffix} + INTERFACE_INCLUDE_DIRECTORIES + ${BINARY_DIR}/_installed_/include) + add_dependencies (protobuf::libprotoc protobuf_src) + exclude_if_included (protobuf::libprotoc) + + if (NOT TARGET protobuf::protoc) + add_executable (protobuf::protoc IMPORTED) + exclude_if_included (protobuf::protoc) + endif () + set_target_properties (protobuf::protoc PROPERTIES + IMPORTED_LOCATION "${BINARY_DIR}/_installed_/bin/protoc${CMAKE_EXECUTABLE_SUFFIX}") + add_dependencies (protobuf::protoc protobuf_src) +else () + if (NOT TARGET protobuf::protoc) + if (EXISTS "${Protobuf_PROTOC_EXECUTABLE}") + add_executable (protobuf::protoc IMPORTED) + set_target_properties (protobuf::protoc PROPERTIES + IMPORTED_LOCATION "${Protobuf_PROTOC_EXECUTABLE}") + else () + message (FATAL_ERROR "Protobuf import failed") + endif () + endif () +endif () + +file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/proto_gen) +set (save_CBD ${CMAKE_CURRENT_BINARY_DIR}) +set (CMAKE_CURRENT_BINARY_DIR ${CMAKE_BINARY_DIR}/proto_gen) +protobuf_generate_cpp ( + PROTO_SRCS + PROTO_HDRS + src/ripple/proto/ripple.proto) +set (CMAKE_CURRENT_BINARY_DIR ${save_CBD}) + +add_library (pbufs STATIC ${PROTO_SRCS} ${PROTO_HDRS}) + +target_include_directories (pbufs PRIVATE src) +target_include_directories (pbufs + SYSTEM PUBLIC ${CMAKE_BINARY_DIR}/proto_gen) +target_link_libraries (pbufs protobuf::libprotobuf) +target_compile_options (pbufs PUBLIC - $<$: + $<$: --system-header-prefix="google/protobuf" -Wno-deprecated-dynamic-exception-spec - > -) -add_library(Ripple::pbufs ALIAS pbufs) + >) +add_library (Ripple::pbufs ALIAS pbufs) +target_link_libraries (ripple_libs INTERFACE Ripple::pbufs) +exclude_if_included (pbufs) diff --git a/Release.Builds/Builds/CMake/deps/Rocksdb.cmake b/Builds/CMake/deps/Rocksdb.cmake similarity index 97% rename from Release.Builds/Builds/CMake/deps/Rocksdb.cmake rename to Builds/CMake/deps/Rocksdb.cmake index 2c832c593..18dc67508 100644 --- a/Release.Builds/Builds/CMake/deps/Rocksdb.cmake +++ b/Builds/CMake/deps/Rocksdb.cmake @@ -64,13 +64,13 @@ if (local_rocksdb) PATCH_COMMAND # only used by windows build ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/rocks_thirdparty.inc + ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/deps/rocks_thirdparty.inc /thirdparty.inc COMMAND # fixup their build version file to keep the values # from changing always ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/rocksdb_build_version.cc.in + ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/deps/rocksdb_build_version.cc.in /util/build_version.cc.in CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} diff --git a/Release.Builds/Builds/CMake/deps/Secp256k1.cmake b/Builds/CMake/deps/Secp256k1.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Secp256k1.cmake rename to Builds/CMake/deps/Secp256k1.cmake diff --git a/Release.Builds/Builds/CMake/deps/Snappy.cmake b/Builds/CMake/deps/Snappy.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Snappy.cmake rename to Builds/CMake/deps/Snappy.cmake diff --git a/Release.Builds/Builds/CMake/deps/Soci.cmake b/Builds/CMake/deps/Soci.cmake similarity index 98% rename from Release.Builds/Builds/CMake/deps/Soci.cmake rename to Builds/CMake/deps/Soci.cmake index d165d6e1f..87322cd81 100644 --- a/Release.Builds/Builds/CMake/deps/Soci.cmake +++ b/Builds/CMake/deps/Soci.cmake @@ -52,7 +52,7 @@ else() # whenever we update the GIT_TAG above. PATCH_COMMAND ${CMAKE_COMMAND} -D RIPPLED_SOURCE=${CMAKE_CURRENT_SOURCE_DIR} - -P ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/soci_patch.cmake + -P ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/deps/soci_patch.cmake CMAKE_ARGS -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} diff --git a/Release.Builds/Builds/CMake/SociConfig.cmake.patched b/Builds/CMake/deps/SociConfig.cmake.patched similarity index 100% rename from Release.Builds/Builds/CMake/SociConfig.cmake.patched rename to Builds/CMake/deps/SociConfig.cmake.patched diff --git a/Release.Builds/Builds/CMake/deps/Sqlite.cmake b/Builds/CMake/deps/Sqlite.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/Sqlite.cmake rename to Builds/CMake/deps/Sqlite.cmake diff --git a/Release.Builds/Builds/CMake/deps/cassandra.cmake b/Builds/CMake/deps/cassandra.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/cassandra.cmake rename to Builds/CMake/deps/cassandra.cmake diff --git a/Release.Builds/Builds/CMake/deps/date.cmake b/Builds/CMake/deps/date.cmake similarity index 100% rename from Release.Builds/Builds/CMake/deps/date.cmake rename to Builds/CMake/deps/date.cmake diff --git a/Builds/CMake/deps/gRPC.cmake b/Builds/CMake/deps/gRPC.cmake index 44185b3a2..8dd094175 100644 --- a/Builds/CMake/deps/gRPC.cmake +++ b/Builds/CMake/deps/gRPC.cmake @@ -1,15 +1,319 @@ -find_package(gRPC 1.23) + +# currently linking to unsecure versions...if we switch, we'll +# need to add ssl as a link dependency to the grpc targets +option (use_secure_grpc "use TLS version of grpc libs." OFF) +if (use_secure_grpc) + set (grpc_suffix "") +else () + set (grpc_suffix "_unsecure") +endif () + +find_package (gRPC 1.23 CONFIG QUIET) +if (TARGET gRPC::gpr AND NOT local_grpc) + get_target_property (_grpc_l gRPC::gpr IMPORTED_LOCATION_DEBUG) + if (NOT _grpc_l) + get_target_property (_grpc_l gRPC::gpr IMPORTED_LOCATION_RELEASE) + endif () + if (NOT _grpc_l) + get_target_property (_grpc_l gRPC::gpr IMPORTED_LOCATION) + endif () + message (STATUS "Found cmake config for gRPC. Using ${_grpc_l}.") +else () + find_package (PkgConfig QUIET) + if (PKG_CONFIG_FOUND) + pkg_check_modules (grpc QUIET "grpc${grpc_suffix}>=1.25" "grpc++${grpc_suffix}" gpr) + endif () + + if (grpc_FOUND) + message (STATUS "Found gRPC using pkg-config. Using ${grpc_gpr_PREFIX}.") + endif () + + add_executable (gRPC::grpc_cpp_plugin IMPORTED) + exclude_if_included (gRPC::grpc_cpp_plugin) + + if (grpc_FOUND AND NOT local_grpc) + # use installed grpc (via pkg-config) + macro (add_imported_grpc libname_) + if (static) + set (_search "${CMAKE_STATIC_LIBRARY_PREFIX}${libname_}${CMAKE_STATIC_LIBRARY_SUFFIX}") + else () + set (_search "${CMAKE_SHARED_LIBRARY_PREFIX}${libname_}${CMAKE_SHARED_LIBRARY_SUFFIX}") + endif() + find_library(_found_${libname_} + NAMES ${_search} + HINTS ${grpc_LIBRARY_DIRS}) + if (_found_${libname_}) + message (STATUS "importing ${libname_} as ${_found_${libname_}}") + else () + message (FATAL_ERROR "using pkg-config for grpc, can't find ${_search}") + endif () + add_library ("gRPC::${libname_}" STATIC IMPORTED GLOBAL) + set_target_properties ("gRPC::${libname_}" PROPERTIES IMPORTED_LOCATION ${_found_${libname_}}) + if (grpc_INCLUDE_DIRS) + set_target_properties ("gRPC::${libname_}" PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${grpc_INCLUDE_DIRS}) + endif () + target_link_libraries (ripple_libs INTERFACE "gRPC::${libname_}") + exclude_if_included ("gRPC::${libname_}") + endmacro () + + set_target_properties (gRPC::grpc_cpp_plugin PROPERTIES + IMPORTED_LOCATION "${grpc_gpr_PREFIX}/bin/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX}") + + pkg_check_modules (cares QUIET libcares) + if (cares_FOUND) + if (static) + set (_search "${CMAKE_STATIC_LIBRARY_PREFIX}cares${CMAKE_STATIC_LIBRARY_SUFFIX}") + set (_prefix cares_STATIC) + set (_static STATIC) + else () + set (_search "${CMAKE_SHARED_LIBRARY_PREFIX}cares${CMAKE_SHARED_LIBRARY_SUFFIX}") + set (_prefix cares) + set (_static) + endif() + find_library(_location NAMES ${_search} HINTS ${cares_LIBRARY_DIRS}) + if (NOT _location) + message (FATAL_ERROR "using pkg-config for grpc, can't find c-ares") + endif () + add_library (c-ares::cares ${_static} IMPORTED GLOBAL) + set_target_properties (c-ares::cares PROPERTIES + IMPORTED_LOCATION ${_location} + INTERFACE_INCLUDE_DIRECTORIES "${${_prefix}_INCLUDE_DIRS}" + INTERFACE_LINK_OPTIONS "${${_prefix}_LDFLAGS}" + ) + exclude_if_included (c-ares::cares) + else () + message (FATAL_ERROR "using pkg-config for grpc, can't find c-ares") + endif () + else () + #[===========================[ + c-ares (grpc requires) + #]===========================] + ExternalProject_Add (c-ares_src + PREFIX ${nih_cache_path} + GIT_REPOSITORY https://github.com/c-ares/c-ares.git + GIT_TAG cares-1_15_0 + CMAKE_ARGS + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> + -DCMAKE_DEBUG_POSTFIX=_d + $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> + -DCMAKE_INSTALL_PREFIX=/_installed_ + -DCARES_SHARED=OFF + -DCARES_STATIC=ON + -DCARES_STATIC_PIC=ON + -DCARES_INSTALL=ON + -DCARES_MSVC_STATIC_RUNTIME=ON + $<$: + "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP" + > + LOG_BUILD ON + LOG_CONFIGURE ON + BUILD_COMMAND + ${CMAKE_COMMAND} + --build . + --config $ + --parallel ${ep_procs} + TEST_COMMAND "" + INSTALL_COMMAND + ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $ --target install + BUILD_BYPRODUCTS + /_installed_/lib/${ep_lib_prefix}cares${ep_lib_suffix} + /_installed_/lib/${ep_lib_prefix}cares_d${ep_lib_suffix} + ) + exclude_if_included (c-ares_src) + ExternalProject_Get_Property (c-ares_src BINARY_DIR) + set (cares_binary_dir "${BINARY_DIR}") + + add_library (c-ares::cares STATIC IMPORTED GLOBAL) + file (MAKE_DIRECTORY ${BINARY_DIR}/_installed_/include) + set_target_properties (c-ares::cares PROPERTIES + IMPORTED_LOCATION_DEBUG + ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}cares_d${ep_lib_suffix} + IMPORTED_LOCATION_RELEASE + ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}cares${ep_lib_suffix} + INTERFACE_INCLUDE_DIRECTORIES + ${BINARY_DIR}/_installed_/include) + add_dependencies (c-ares::cares c-ares_src) + exclude_if_included (c-ares::cares) + + if (NOT has_zlib) + #[===========================[ + zlib (grpc requires) + #]===========================] + if (MSVC) + set (zlib_debug_postfix "d") # zlib cmake sets this internally for MSVC, so we really don't have a choice + set (zlib_base "zlibstatic") + else () + set (zlib_debug_postfix "_d") + set (zlib_base "z") + endif () + ExternalProject_Add (zlib_src + PREFIX ${nih_cache_path} + GIT_REPOSITORY https://github.com/madler/zlib.git + GIT_TAG v1.2.11 + CMAKE_ARGS + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> + -DCMAKE_DEBUG_POSTFIX=${zlib_debug_postfix} + $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> + -DCMAKE_INSTALL_PREFIX=/_installed_ + -DBUILD_SHARED_LIBS=OFF + $<$: + "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP" + "-DCMAKE_C_FLAGS_DEBUG=-MTd" + "-DCMAKE_C_FLAGS_RELEASE=-MT" + > + LOG_BUILD ON + LOG_CONFIGURE ON + BUILD_COMMAND + ${CMAKE_COMMAND} + --build . + --config $ + --parallel ${ep_procs} + TEST_COMMAND "" + INSTALL_COMMAND + ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $ --target install + BUILD_BYPRODUCTS + /_installed_/lib/${ep_lib_prefix}${zlib_base}${ep_lib_suffix} + /_installed_/lib/${ep_lib_prefix}${zlib_base}${zlib_debug_postfix}${ep_lib_suffix} + ) + exclude_if_included (zlib_src) + ExternalProject_Get_Property (zlib_src BINARY_DIR) + set (zlib_binary_dir "${BINARY_DIR}") + + add_library (ZLIB::ZLIB STATIC IMPORTED GLOBAL) + file (MAKE_DIRECTORY ${BINARY_DIR}/_installed_/include) + set_target_properties (ZLIB::ZLIB PROPERTIES + IMPORTED_LOCATION_DEBUG + ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}${zlib_base}${zlib_debug_postfix}${ep_lib_suffix} + IMPORTED_LOCATION_RELEASE + ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}${zlib_base}${ep_lib_suffix} + INTERFACE_INCLUDE_DIRECTORIES + ${BINARY_DIR}/_installed_/include) + add_dependencies (ZLIB::ZLIB zlib_src) + exclude_if_included (ZLIB::ZLIB) + endif () + + #[===========================[ + grpc + #]===========================] + ExternalProject_Add (grpc_src + PREFIX ${nih_cache_path} + GIT_REPOSITORY https://github.com/grpc/grpc.git + GIT_TAG v1.25.0 + CMAKE_ARGS + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> + $<$:-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}> + $<$:-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}> + $<$:-DCMAKE_UNITY_BUILD=ON}> + -DCMAKE_DEBUG_POSTFIX=_d + $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> + -DgRPC_BUILD_TESTS=OFF + -DgRPC_BENCHMARK_PROVIDER="" + -DgRPC_BUILD_CSHARP_EXT=OFF + -DgRPC_MSVC_STATIC_RUNTIME=ON + -DgRPC_INSTALL=OFF + -DgRPC_CARES_PROVIDER=package + -Dc-ares_DIR=${cares_binary_dir}/_installed_/lib/cmake/c-ares + -DgRPC_SSL_PROVIDER=package + -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} + -DgRPC_PROTOBUF_PROVIDER=package + -DProtobuf_USE_STATIC_LIBS=$,$>>,OFF,ON> + -DProtobuf_INCLUDE_DIR=$,:_:> + -DProtobuf_LIBRARY=$,$,$> + -DProtobuf_PROTOC_LIBRARY=$,$,$> + -DProtobuf_PROTOC_EXECUTABLE=$ + -DgRPC_ZLIB_PROVIDER=package + $<$>:-DZLIB_ROOT=${zlib_binary_dir}/_installed_> + $<$: + "-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -EHa -MP" + "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP" + > + LOG_BUILD ON + LOG_CONFIGURE ON + BUILD_COMMAND + ${CMAKE_COMMAND} + --build . + --config $ + --parallel ${ep_procs} + $<$: + COMMAND + ${CMAKE_COMMAND} -E copy + /$/${ep_lib_prefix}grpc${grpc_suffix}$<$:_d>${ep_lib_suffix} + /$/${ep_lib_prefix}grpc++${grpc_suffix}$<$:_d>${ep_lib_suffix} + /$/${ep_lib_prefix}address_sorting$<$:_d>${ep_lib_suffix} + /$/${ep_lib_prefix}gpr$<$:_d>${ep_lib_suffix} + /$/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX} + + > + LIST_SEPARATOR :_: + TEST_COMMAND "" + INSTALL_COMMAND "" + DEPENDS c-ares_src + BUILD_BYPRODUCTS + /${ep_lib_prefix}grpc${grpc_suffix}${ep_lib_suffix} + /${ep_lib_prefix}grpc${grpc_suffix}_d${ep_lib_suffix} + /${ep_lib_prefix}grpc++${grpc_suffix}${ep_lib_suffix} + /${ep_lib_prefix}grpc++${grpc_suffix}_d${ep_lib_suffix} + /${ep_lib_prefix}address_sorting${ep_lib_suffix} + /${ep_lib_prefix}address_sorting_d${ep_lib_suffix} + /${ep_lib_prefix}gpr${ep_lib_suffix} + /${ep_lib_prefix}gpr_d${ep_lib_suffix} + /grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX} + ) + if (TARGET protobuf_src) + ExternalProject_Add_StepDependencies(grpc_src build protobuf_src) + endif () + exclude_if_included (grpc_src) + ExternalProject_Get_Property (grpc_src BINARY_DIR) + ExternalProject_Get_Property (grpc_src SOURCE_DIR) + set (grpc_binary_dir "${BINARY_DIR}") + set (grpc_source_dir "${SOURCE_DIR}") + if (CMAKE_VERBOSE_MAKEFILE) + print_ep_logs (grpc_src) + endif () + file (MAKE_DIRECTORY ${SOURCE_DIR}/include) + + macro (add_imported_grpc libname_) + add_library ("gRPC::${libname_}" STATIC IMPORTED GLOBAL) + set_target_properties ("gRPC::${libname_}" PROPERTIES + IMPORTED_LOCATION_DEBUG + ${grpc_binary_dir}/${ep_lib_prefix}${libname_}_d${ep_lib_suffix} + IMPORTED_LOCATION_RELEASE + ${grpc_binary_dir}/${ep_lib_prefix}${libname_}${ep_lib_suffix} + INTERFACE_INCLUDE_DIRECTORIES + ${grpc_source_dir}/include) + add_dependencies ("gRPC::${libname_}" grpc_src) + target_link_libraries (ripple_libs INTERFACE "gRPC::${libname_}") + exclude_if_included ("gRPC::${libname_}") + endmacro () + + set_target_properties (gRPC::grpc_cpp_plugin PROPERTIES + IMPORTED_LOCATION "${grpc_binary_dir}/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX}") + add_dependencies (gRPC::grpc_cpp_plugin grpc_src) + endif () + + add_imported_grpc (gpr) + add_imported_grpc ("grpc${grpc_suffix}") + add_imported_grpc ("grpc++${grpc_suffix}") + add_imported_grpc (address_sorting) + + target_link_libraries ("gRPC::grpc${grpc_suffix}" INTERFACE c-ares::cares gRPC::gpr gRPC::address_sorting ZLIB::ZLIB) + target_link_libraries ("gRPC::grpc++${grpc_suffix}" INTERFACE "gRPC::grpc${grpc_suffix}" gRPC::gpr) +endif () #[=================================[ generate protobuf sources for grpc defs and bundle into a static lib #]=================================] -set(GRPC_GEN_DIR "${CMAKE_BINARY_DIR}/proto_gen_grpc") -file(MAKE_DIRECTORY ${GRPC_GEN_DIR}) -set(GRPC_PROTO_SRCS) -set(GRPC_PROTO_HDRS) -set(GRPC_PROTO_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/src/ripple/proto/org") +set (GRPC_GEN_DIR "${CMAKE_BINARY_DIR}/proto_gen_grpc") +file (MAKE_DIRECTORY ${GRPC_GEN_DIR}) +set (GRPC_PROTO_SRCS) +set (GRPC_PROTO_HDRS) +set (GRPC_PROTO_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/src/ripple/proto/org") file(GLOB_RECURSE GRPC_DEFINITION_FILES LIST_DIRECTORIES false "${GRPC_PROTO_ROOT}/*.proto") foreach(file ${GRPC_DEFINITION_FILES}) get_filename_component(_abs_file ${file} ABSOLUTE) @@ -20,10 +324,10 @@ foreach(file ${GRPC_DEFINITION_FILES}) get_filename_component(_rel_root_dir ${_rel_root_file} DIRECTORY) file(RELATIVE_PATH _rel_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_abs_dir}) - set(src_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.cc") - set(src_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.cc") - set(hdr_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.h") - set(hdr_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.h") + set (src_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.cc") + set (src_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.cc") + set (hdr_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.h") + set (hdr_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.h") add_custom_command( OUTPUT ${src_1} ${src_2} ${hdr_1} ${hdr_2} COMMAND protobuf::protoc @@ -41,22 +345,20 @@ foreach(file ${GRPC_DEFINITION_FILES}) list(APPEND GRPC_PROTO_HDRS ${hdr_1} ${hdr_2}) endforeach() -add_library(grpc_pbufs STATIC ${GRPC_PROTO_SRCS} ${GRPC_PROTO_HDRS}) -#target_include_directories(grpc_pbufs PRIVATE src) -target_include_directories(grpc_pbufs SYSTEM PUBLIC ${GRPC_GEN_DIR}) -target_link_libraries(grpc_pbufs - "gRPC::grpc++" - # libgrpc is missing references. - absl::random_random -) -target_compile_options(grpc_pbufs +add_library (grpc_pbufs STATIC ${GRPC_PROTO_SRCS} ${GRPC_PROTO_HDRS}) +#target_include_directories (grpc_pbufs PRIVATE src) +target_include_directories (grpc_pbufs SYSTEM PUBLIC ${GRPC_GEN_DIR}) +target_link_libraries (grpc_pbufs protobuf::libprotobuf "gRPC::grpc++${grpc_suffix}") +target_compile_options (grpc_pbufs PRIVATE $<$:-wd4065> $<$>:-Wno-deprecated-declarations> PUBLIC $<$:-wd4996> - $<$: + $<$: --system-header-prefix="google/protobuf" -Wno-deprecated-dynamic-exception-spec >) -add_library(Ripple::grpc_pbufs ALIAS grpc_pbufs) +add_library (Ripple::grpc_pbufs ALIAS grpc_pbufs) +target_link_libraries (ripple_libs INTERFACE Ripple::grpc_pbufs) +exclude_if_included (grpc_pbufs) diff --git a/Release.Builds/Builds/CMake/rocks_thirdparty.inc b/Builds/CMake/deps/rocks_thirdparty.inc similarity index 100% rename from Release.Builds/Builds/CMake/rocks_thirdparty.inc rename to Builds/CMake/deps/rocks_thirdparty.inc diff --git a/Release.Builds/Builds/CMake/rocksdb_build_version.cc.in b/Builds/CMake/deps/rocksdb_build_version.cc.in similarity index 100% rename from Release.Builds/Builds/CMake/rocksdb_build_version.cc.in rename to Builds/CMake/deps/rocksdb_build_version.cc.in diff --git a/Release.Builds/Builds/CMake/soci_patch.cmake b/Builds/CMake/deps/soci_patch.cmake similarity index 97% rename from Release.Builds/Builds/CMake/soci_patch.cmake rename to Builds/CMake/deps/soci_patch.cmake index 0c2a75c0d..1b5122e47 100644 --- a/Release.Builds/Builds/CMake/soci_patch.cmake +++ b/Builds/CMake/deps/soci_patch.cmake @@ -8,7 +8,7 @@ # those warnings. if (RIPPLED_SOURCE) execute_process( COMMAND ${CMAKE_COMMAND} -E copy_if_different - ${RIPPLED_SOURCE}/Builds/CMake/SociConfig.cmake.patched + ${RIPPLED_SOURCE}/Builds/CMake/deps/SociConfig.cmake.patched cmake/SociConfig.cmake ) endif () diff --git a/Release.Builds/Builds/CMake/CMakeFuncs.cmake b/Release.Builds/Builds/CMake/CMakeFuncs.cmake deleted file mode 100644 index fb60fd9b4..000000000 --- a/Release.Builds/Builds/CMake/CMakeFuncs.cmake +++ /dev/null @@ -1,207 +0,0 @@ - -macro(group_sources_in source_dir curdir) - file(GLOB children RELATIVE ${source_dir}/${curdir} - ${source_dir}/${curdir}/*) - foreach (child ${children}) - if (IS_DIRECTORY ${source_dir}/${curdir}/${child}) - group_sources_in(${source_dir} ${curdir}/${child}) - else() - string(REPLACE "/" "\\" groupname ${curdir}) - source_group(${groupname} FILES - ${source_dir}/${curdir}/${child}) - endif() - endforeach() -endmacro() - -macro(group_sources curdir) - group_sources_in(${PROJECT_SOURCE_DIR} ${curdir}) -endmacro() - -macro (exclude_from_default target_) - set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_ALL ON) - set_target_properties (${target_} PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD ON) -endmacro () - -macro (exclude_if_included target_) - get_directory_property(has_parent PARENT_DIRECTORY) - if (has_parent) - exclude_from_default (${target_}) - endif () -endmacro () - -function (print_ep_logs _target) - ExternalProject_Get_Property (${_target} STAMP_DIR) - add_custom_command(TARGET ${_target} POST_BUILD - COMMENT "${_target} BUILD OUTPUT" - COMMAND ${CMAKE_COMMAND} - -DIN_FILE=${STAMP_DIR}/${_target}-build-out.log - -P ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/echo_file.cmake - COMMAND ${CMAKE_COMMAND} - -DIN_FILE=${STAMP_DIR}/${_target}-build-err.log - -P ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/echo_file.cmake) -endfunction () - -#[=========================================================[ - This is a function override for one function in the - standard ExternalProject module. We want to change - the generated build script slightly to include printing - the build logs in the case of failure. Those modifications - have been made here. This function override could break - in the future if the ExternalProject module changes internal - function names or changes the way it generates the build - scripts. - See: - https://gitlab.kitware.com/cmake/cmake/blob/df1ddeec128d68cc636f2dde6c2acd87af5658b6/Modules/ExternalProject.cmake#L1855-1952 -#]=========================================================] - -function(_ep_write_log_script name step cmd_var) - ExternalProject_Get_Property(${name} stamp_dir) - set(command "${${cmd_var}}") - - set(make "") - set(code_cygpath_make "") - if(command MATCHES "^\\$\\(MAKE\\)") - # GNU make recognizes the string "$(MAKE)" as recursive make, so - # ensure that it appears directly in the makefile. - string(REGEX REPLACE "^\\$\\(MAKE\\)" "\${make}" command "${command}") - set(make "-Dmake=$(MAKE)") - - if(WIN32 AND NOT CYGWIN) - set(code_cygpath_make " -if(\${make} MATCHES \"^/\") - execute_process( - COMMAND cygpath -w \${make} - OUTPUT_VARIABLE cygpath_make - ERROR_VARIABLE cygpath_make - RESULT_VARIABLE cygpath_error - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - if(NOT cygpath_error) - set(make \${cygpath_make}) - endif() -endif() -") - endif() - endif() - - set(config "") - if("${CMAKE_CFG_INTDIR}" MATCHES "^\\$") - string(REPLACE "${CMAKE_CFG_INTDIR}" "\${config}" command "${command}") - set(config "-Dconfig=${CMAKE_CFG_INTDIR}") - endif() - - # Wrap multiple 'COMMAND' lines up into a second-level wrapper - # script so all output can be sent to one log file. - if(command MATCHES "(^|;)COMMAND;") - set(code_execute_process " -${code_cygpath_make} -execute_process(COMMAND \${command} RESULT_VARIABLE result) -if(result) - set(msg \"Command failed (\${result}):\\n\") - foreach(arg IN LISTS command) - set(msg \"\${msg} '\${arg}'\") - endforeach() - message(FATAL_ERROR \"\${msg}\") -endif() -") - set(code "") - set(cmd "") - set(sep "") - foreach(arg IN LISTS command) - if("x${arg}" STREQUAL "xCOMMAND") - if(NOT "x${cmd}" STREQUAL "x") - string(APPEND code "set(command \"${cmd}\")${code_execute_process}") - endif() - set(cmd "") - set(sep "") - else() - string(APPEND cmd "${sep}${arg}") - set(sep ";") - endif() - endforeach() - string(APPEND code "set(command \"${cmd}\")${code_execute_process}") - file(GENERATE OUTPUT "${stamp_dir}/${name}-${step}-$-impl.cmake" CONTENT "${code}") - set(command ${CMAKE_COMMAND} "-Dmake=\${make}" "-Dconfig=\${config}" -P ${stamp_dir}/${name}-${step}-$-impl.cmake) - endif() - - # Wrap the command in a script to log output to files. - set(script ${stamp_dir}/${name}-${step}-$.cmake) - set(logbase ${stamp_dir}/${name}-${step}) - set(code " -${code_cygpath_make} -function (_echo_file _fil) - file (READ \${_fil} _cont) - execute_process (COMMAND \${CMAKE_COMMAND} -E echo \"\${_cont}\") -endfunction () -set(command \"${command}\") -execute_process( - COMMAND \${command} - RESULT_VARIABLE result - OUTPUT_FILE \"${logbase}-out.log\" - ERROR_FILE \"${logbase}-err.log\" - ) -if(result) - set(msg \"Command failed: \${result}\\n\") - foreach(arg IN LISTS command) - set(msg \"\${msg} '\${arg}'\") - endforeach() - execute_process (COMMAND \${CMAKE_COMMAND} -E echo \"Build output for ${logbase} : \") - _echo_file (\"${logbase}-out.log\") - _echo_file (\"${logbase}-err.log\") - set(msg \"\${msg}\\nSee above\\n\") - message(FATAL_ERROR \"\${msg}\") -else() - set(msg \"${name} ${step} command succeeded. See also ${logbase}-*.log\") - message(STATUS \"\${msg}\") -endif() -") - file(GENERATE OUTPUT "${script}" CONTENT "${code}") - set(command ${CMAKE_COMMAND} ${make} ${config} -P ${script}) - set(${cmd_var} "${command}" PARENT_SCOPE) -endfunction() - -find_package(Git) - -# function that calls git log to get current hash -function (git_hash hash_val) - # note: optional second extra string argument not in signature - if (NOT GIT_FOUND) - return () - endif () - set (_hash "") - set (_format "%H") - if (ARGC GREATER_EQUAL 2) - string (TOLOWER ${ARGV1} _short) - if (_short STREQUAL "short") - set (_format "%h") - endif () - endif () - execute_process (COMMAND ${GIT_EXECUTABLE} "log" "--pretty=${_format}" "-n1" - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE _git_exit_code - OUTPUT_VARIABLE _temp_hash - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET) - if (_git_exit_code EQUAL 0) - set (_hash ${_temp_hash}) - endif () - set (${hash_val} "${_hash}" PARENT_SCOPE) -endfunction () - -function (git_branch branch_val) - if (NOT GIT_FOUND) - return () - endif () - set (_branch "") - execute_process (COMMAND ${GIT_EXECUTABLE} "rev-parse" "--abbrev-ref" "HEAD" - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE _git_exit_code - OUTPUT_VARIABLE _temp_branch - OUTPUT_STRIP_TRAILING_WHITESPACE - ERROR_QUIET) - if (_git_exit_code EQUAL 0) - set (_branch ${_temp_branch}) - endif () - set (${branch_val} "${_branch}" PARENT_SCOPE) -endfunction () - diff --git a/Release.Builds/Builds/CMake/CMake_sqlite3.txt b/Release.Builds/Builds/CMake/CMake_sqlite3.txt deleted file mode 100644 index d80557a9f..000000000 --- a/Release.Builds/Builds/CMake/CMake_sqlite3.txt +++ /dev/null @@ -1,60 +0,0 @@ - -#[=========================================================[ - SQLITE doesn't provide build files in the - standard source-only distribution. So we wrote - a simple cmake file and we copy it to the - external project folder so that we can use - this file to build the lib with ExternalProject -#]=========================================================] - -add_library (sqlite3 STATIC sqlite3.c) -#[=========================================================[ - When compiled with SQLITE_THREADSAFE=1, SQLite operates - in serialized mode. In this mode, SQLite can be safely - used by multiple threads with no restriction. - - NOTE: This implies a global mutex! - - When compiled with SQLITE_THREADSAFE=2, SQLite can be - used in a multithreaded program so long as no two - threads attempt to use the same database connection at - the same time. - - NOTE: This is the preferred threading model, but not - currently enabled because we need to investigate our - use-model and concurrency requirements. - - TODO: consider whether any other options should be - used: https://www.sqlite.org/compile.html -#]=========================================================] - -target_compile_definitions (sqlite3 - PRIVATE - SQLITE_THREADSAFE=1 - HAVE_USLEEP=1) -target_compile_options (sqlite3 - PRIVATE - $<$: - -wd4100 - -wd4127 - -wd4232 - -wd4244 - -wd4701 - -wd4706 - -wd4996 - > - $<$>:-Wno-array-bounds>) -install ( - TARGETS - sqlite3 - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include) -install ( - FILES - sqlite3.h - sqlite3ext.h - DESTINATION include) - - diff --git a/Release.Builds/Builds/CMake/FindRocksDB.cmake b/Release.Builds/Builds/CMake/FindRocksDB.cmake deleted file mode 100644 index e0d35706b..000000000 --- a/Release.Builds/Builds/CMake/FindRocksDB.cmake +++ /dev/null @@ -1,62 +0,0 @@ -set (RocksDB_DIR "" CACHE PATH "Root directory of RocksDB distribution") - -find_path (RocksDB_INCLUDE_DIR - rocksdb/db.h - PATHS ${RocksDB_DIR}) - -set (RocksDB_VERSION "") -find_file (RocksDB_VERSION_FILE - rocksdb/version.h - PATHS ${RocksDB_DIR}) -if (RocksDB_VERSION_FILE) - file (READ ${RocksDB_VERSION_FILE} _verfile) - if ("${_verfile}" MATCHES "#define[ \\t]+ROCKSDB_MAJOR[ \\t]+([0-9]+)") - string (APPEND RocksDB_VERSION "${CMAKE_MATCH_1}") - else () - string (APPEND RocksDB_VERSION "0") - endif() - if ("${_verfile}" MATCHES "#define[ \\t]+ROCKSDB_MINOR[ \\t]+([0-9]+)") - string (APPEND RocksDB_VERSION ".${CMAKE_MATCH_1}") - else () - string (APPEND RocksDB_VERSION ".0") - endif() - if ("${_verfile}" MATCHES "#define[ \\t]+ROCKSDB_PATCH[ \\t]+([0-9]+)") - string (APPEND RocksDB_VERSION ".${CMAKE_MATCH_1}") - else () - string (APPEND RocksDB_VERSION ".0") - endif() -endif () - -if (RocksDB_USE_STATIC) - list (APPEND RocksDB_NAMES - "${CMAKE_STATIC_LIBRARY_PREFIX}rocksdb${CMAKE_STATIC_LIBRARY_SUFFIX}" - "${CMAKE_STATIC_LIBRARY_PREFIX}rocksdblib${CMAKE_STATIC_LIBRARY_SUFFIX}") -endif () - -list (APPEND RocksDB_NAMES rocksdb) - -find_library (RocksDB_LIBRARY NAMES ${RocksDB_NAMES} - PATHS - ${RocksDB_DIR} - ${RocksDB_DIR}/bin/Release - ${RocksDB_DIR}/bin64_vs2013/Release - PATH_SUFFIXES lib lib64) - -foreach (_n RocksDB_NAMES) - list (APPEND RocksDB_NAMES_DBG "${_n}_d" "${_n}d") -endforeach () -find_library (RocksDB_LIBRARY_DEBUG NAMES ${RocksDB_NAMES_DBG} - PATHS - ${RocksDB_DIR} - ${RocksDB_DIR}/bin/Debug - ${RocksDB_DIR}/bin64_vs2013/Debug - PATH_SUFFIXES lib lib64) - -include (FindPackageHandleStandardArgs) -find_package_handle_standard_args (RocksDB - REQUIRED_VARS RocksDB_LIBRARY RocksDB_INCLUDE_DIR - VERSION_VAR RocksDB_VERSION) - -mark_as_advanced (RocksDB_INCLUDE_DIR RocksDB_LIBRARY) -set (RocksDB_INCLUDE_DIRS ${RocksDB_INCLUDE_DIR}) -set (RocksDB_LIBRARIES ${RocksDB_LIBRARY}) diff --git a/Release.Builds/Builds/CMake/README.md b/Release.Builds/Builds/CMake/README.md deleted file mode 100644 index 77d6813b6..000000000 --- a/Release.Builds/Builds/CMake/README.md +++ /dev/null @@ -1,18 +0,0 @@ - -These are modules and sources that support our CMake build. - -== FindBoost.cmake == - -In order to facilitate updating to latest releases of boost, we've made a local -copy of the FindBoost cmake module in our repo. The latest official version can -generally be obtained -[here](https://github.com/Kitware/CMake/blob/master/Modules/FindBoost.cmake). - -The latest version provided by Kitware can be tailored for use with the -version of CMake that it ships with (typically the next upcoming CMake -release). As such, the latest version from the repository might not work -perfectly with older versions of CMake - for instance, the latest version -might use features or properties only available in the version of CMake that -it ships with. Given this, it's best to test any updates to this module with a few -different versions of cmake. - diff --git a/Release.Builds/Builds/CMake/RippleConfig.cmake b/Release.Builds/Builds/CMake/RippleConfig.cmake deleted file mode 100644 index 445010e91..000000000 --- a/Release.Builds/Builds/CMake/RippleConfig.cmake +++ /dev/null @@ -1,56 +0,0 @@ -include (CMakeFindDependencyMacro) -# need to represent system dependencies of the lib here -#[=========================================================[ - Boost -#]=========================================================] -if (static OR APPLE OR MSVC) - set (Boost_USE_STATIC_LIBS ON) -endif () -set (Boost_USE_MULTITHREADED ON) -if (static OR MSVC) - set (Boost_USE_STATIC_RUNTIME ON) -else () - set (Boost_USE_STATIC_RUNTIME OFF) -endif () -find_dependency (Boost 1.70 - COMPONENTS - chrono - container - context - coroutine - date_time - filesystem - program_options - regex - system - thread) -#[=========================================================[ - OpenSSL -#]=========================================================] -if (NOT DEFINED OPENSSL_ROOT_DIR) - if (DEFINED ENV{OPENSSL_ROOT}) - set (OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT}) - elseif (APPLE) - find_program (homebrew brew) - if (homebrew) - execute_process (COMMAND ${homebrew} --prefix openssl - OUTPUT_VARIABLE OPENSSL_ROOT_DIR - OUTPUT_STRIP_TRAILING_WHITESPACE) - endif () - endif () - file (TO_CMAKE_PATH "${OPENSSL_ROOT_DIR}" OPENSSL_ROOT_DIR) -endif () - -if (static OR APPLE OR MSVC) - set (OPENSSL_USE_STATIC_LIBS ON) -endif () -set (OPENSSL_MSVC_STATIC_RT ON) -find_dependency (OpenSSL 1.1.1 REQUIRED) -find_dependency (ZLIB) -find_dependency (date) -if (TARGET ZLIB::ZLIB) - set_target_properties(OpenSSL::Crypto PROPERTIES - INTERFACE_LINK_LIBRARIES ZLIB::ZLIB) -endif () - -include ("${CMAKE_CURRENT_LIST_DIR}/RippleTargets.cmake") diff --git a/Release.Builds/Builds/CMake/RippledCompiler.cmake b/Release.Builds/Builds/CMake/RippledCompiler.cmake deleted file mode 100644 index 163c82823..000000000 --- a/Release.Builds/Builds/CMake/RippledCompiler.cmake +++ /dev/null @@ -1,182 +0,0 @@ -#[===================================================================[ - setup project-wide compiler settings -#]===================================================================] - -#[=========================================================[ - TODO some/most of these common settings belong in a - toolchain file, especially the ABI-impacting ones -#]=========================================================] -add_library (common INTERFACE) -add_library (Ripple::common ALIAS common) -# add a single global dependency on this interface lib -link_libraries (Ripple::common) -set_target_properties (common - PROPERTIES INTERFACE_POSITION_INDEPENDENT_CODE ON) -set(CMAKE_CXX_EXTENSIONS OFF) -target_compile_features (common INTERFACE cxx_std_20) -target_compile_definitions (common - INTERFACE - $<$:DEBUG _DEBUG> - $<$,$>>:NDEBUG>) - # ^^^^ NOTE: CMAKE release builds already have NDEBUG - # defined, so no need to add it explicitly except for - # this special case of (profile ON) and (assert OFF) - # -- presumably this is because we don't want profile - # builds asserting unless asserts were specifically - # requested - -if (MSVC) - # remove existing exception flag since we set it to -EHa - string (REGEX REPLACE "[-/]EH[a-z]+" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") - - foreach (var_ - CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE - CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE) - - # also remove dynamic runtime - string (REGEX REPLACE "[-/]MD[d]*" " " ${var_} "${${var_}}") - - # /ZI (Edit & Continue debugging information) is incompatible with Gy- - string (REPLACE "/ZI" "/Zi" ${var_} "${${var_}}") - - # omit debug info completely under CI (not needed) - if (is_ci) - string (REPLACE "/Zi" " " ${var_} "${${var_}}") - endif () - endforeach () - - target_compile_options (common - INTERFACE - -bigobj # Increase object file max size - -fp:precise # Floating point behavior - -Gd # __cdecl calling convention - -Gm- # Minimal rebuild: disabled - -Gy- # Function level linking: disabled - -MP # Multiprocessor compilation - -openmp- # pragma omp: disabled - -errorReport:none # No error reporting to Internet - -nologo # Suppress login banner - -wd4018 # Disable signed/unsigned comparison warnings - -wd4244 # Disable float to int possible loss of data warnings - -wd4267 # Disable size_t to T possible loss of data warnings - -wd4800 # Disable C4800(int to bool performance) - -wd4503 # Decorated name length exceeded, name was truncated - $<$: - -EHa - -GR - > - $<$:-Ox> - $<$,$>: - -GS - -Zc:forScope - > - # static runtime - $<$:-MTd> - $<$>:-MT> - $<$:-WX> - ) - target_compile_definitions (common - INTERFACE - _WIN32_WINNT=0x6000 - _SCL_SECURE_NO_WARNINGS - _CRT_SECURE_NO_WARNINGS - WIN32_CONSOLE - WIN32_LEAN_AND_MEAN - NOMINMAX - # TODO: Resolve these warnings, don't just silence them - _SILENCE_ALL_CXX17_DEPRECATION_WARNINGS - $<$,$>:_CRTDBG_MAP_ALLOC>) - target_link_libraries (common - INTERFACE - -errorreport:none - -machine:X64) -else () - # HACK : because these need to come first, before any warning demotion - string (APPEND CMAKE_CXX_FLAGS " -Wall -Wdeprecated") - if (wextra) - string (APPEND CMAKE_CXX_FLAGS " -Wextra -Wno-unused-parameter") - endif () - # not MSVC - target_compile_options (common - INTERFACE - $<$:-Werror> - $<$: - -frtti - -Wnon-virtual-dtor - > - -Wno-sign-compare - -Wno-char-subscripts - -Wno-format - -Wno-unused-local-typedefs - $<$: - -Wno-unused-but-set-variable - -Wno-deprecated - > - $<$>:-fno-strict-aliasing> - # tweak gcc optimization for debug - $<$,$>:-O0> - # Add debug symbols to release config - $<$:-g>) - target_link_libraries (common - INTERFACE - -rdynamic - # link to static libc/c++ iff: - # * static option set and - # * NOT APPLE (AppleClang does not support static libc/c++) and - # * NOT san (sanitizers typically don't work with static libc/c++) - $<$,$>,$>>: - -static-libstdc++ - -static-libgcc - >) -endif () - -if (use_gold AND is_gcc) - # use gold linker if available - execute_process ( - COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=gold -Wl,--version - ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) - #[=========================================================[ - NOTE: THE gold linker inserts -rpath as DT_RUNPATH by - default intead of DT_RPATH, so you might have slightly - unexpected runtime ld behavior if you were expecting - DT_RPATH. Specify --disable-new-dtags to gold if you do - not want the default DT_RUNPATH behavior. This rpath - treatment as well as static/dynamic selection means that - gold does not currently have ideal default behavior when - we are using jemalloc. Thus for simplicity we don't use - it when jemalloc is requested. An alternative to - disabling would be to figure out all the settings - required to make gold play nicely with jemalloc. - #]=========================================================] - if (("${LD_VERSION}" MATCHES "GNU gold") AND (NOT jemalloc)) - target_link_libraries (common - INTERFACE - -fuse-ld=gold - -Wl,--no-as-needed - #[=========================================================[ - see https://bugs.launchpad.net/ubuntu/+source/eglibc/+bug/1253638/comments/5 - DT_RUNPATH does not work great for transitive - dependencies (of which boost has a few) - so just - switch to DT_RPATH if doing dynamic linking with gold - #]=========================================================] - $<$>:-Wl,--disable-new-dtags>) - endif () - unset (LD_VERSION) -endif () - -if (use_lld) - # use lld linker if available - execute_process ( - COMMAND ${CMAKE_CXX_COMPILER} -fuse-ld=lld -Wl,--version - ERROR_QUIET OUTPUT_VARIABLE LD_VERSION) - if ("${LD_VERSION}" MATCHES "LLD") - target_link_libraries (common INTERFACE -fuse-ld=lld) - endif () - unset (LD_VERSION) -endif() - -if (assert) - foreach (var_ CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE) - STRING (REGEX REPLACE "[-/]DNDEBUG" "" ${var_} "${${var_}}") - endforeach () -endif () diff --git a/Release.Builds/Builds/CMake/RippledCore.cmake b/Release.Builds/Builds/CMake/RippledCore.cmake deleted file mode 100644 index 78843991f..000000000 --- a/Release.Builds/Builds/CMake/RippledCore.cmake +++ /dev/null @@ -1,1081 +0,0 @@ -#[===================================================================[ - xrpl_core - core functionality, useable by some client software perhaps -#]===================================================================] - -file (GLOB_RECURSE rb_headers - src/ripple/beast/*.h - src/ripple/beast/*.hpp) - -add_library (xrpl_core - ${rb_headers}) ## headers added here for benefit of IDEs -if (unity) - set_target_properties(xrpl_core PROPERTIES UNITY_BUILD ON) -endif () - -# Try to find the ACL library -find_library(ACL_LIBRARY NAMES acl) - -# Check if ACL was found -if(ACL_LIBRARY) - message(STATUS "Found ACL: ${ACL_LIBRARY}") -else() - message(STATUS "ACL not found, continuing without ACL support") -endif() - -#[===============================[ - beast/legacy FILES: - TODO: review these sources for removal or replacement -#]===============================] -target_sources (xrpl_core PRIVATE - src/ripple/beast/clock/basic_seconds_clock.cpp - src/ripple/beast/core/CurrentThreadName.cpp - src/ripple/beast/core/SemanticVersion.cpp - src/ripple/beast/hash/impl/xxhash.cpp - src/ripple/beast/insight/impl/Collector.cpp - src/ripple/beast/insight/impl/Groups.cpp - src/ripple/beast/insight/impl/Hook.cpp - src/ripple/beast/insight/impl/Metric.cpp - src/ripple/beast/insight/impl/NullCollector.cpp - src/ripple/beast/insight/impl/StatsDCollector.cpp - src/ripple/beast/net/impl/IPAddressConversion.cpp - src/ripple/beast/net/impl/IPAddressV4.cpp - src/ripple/beast/net/impl/IPAddressV6.cpp - src/ripple/beast/net/impl/IPEndpoint.cpp - src/ripple/beast/utility/src/beast_Journal.cpp - src/ripple/beast/utility/src/beast_PropertyStream.cpp) - -#[===============================[ - core sources -#]===============================] -target_sources (xrpl_core PRIVATE - #[===============================[ - main sources: - subdir: basics (partial) - #]===============================] - src/ripple/basics/impl/base64.cpp - src/ripple/basics/impl/contract.cpp - src/ripple/basics/impl/CountedObject.cpp - src/ripple/basics/impl/FileUtilities.cpp - src/ripple/basics/impl/IOUAmount.cpp - src/ripple/basics/impl/Log.cpp - src/ripple/basics/impl/Number.cpp - src/ripple/basics/impl/StringUtilities.cpp - #[===============================[ - main sources: - subdir: json - #]===============================] - src/ripple/json/impl/JsonPropertyStream.cpp - src/ripple/json/impl/Object.cpp - src/ripple/json/impl/Output.cpp - src/ripple/json/impl/Writer.cpp - src/ripple/json/impl/json_reader.cpp - src/ripple/json/impl/json_value.cpp - src/ripple/json/impl/json_valueiterator.cpp - src/ripple/json/impl/json_writer.cpp - src/ripple/json/impl/to_string.cpp - #[===============================[ - main sources: - subdir: protocol - #]===============================] - src/ripple/protocol/impl/AccountID.cpp - src/ripple/protocol/impl/Book.cpp - src/ripple/protocol/impl/BuildInfo.cpp - src/ripple/protocol/impl/ErrorCodes.cpp - src/ripple/protocol/impl/Feature.cpp - src/ripple/protocol/impl/Indexes.cpp - src/ripple/protocol/impl/InnerObjectFormats.cpp - src/ripple/protocol/impl/Issue.cpp - src/ripple/protocol/impl/Keylet.cpp - src/ripple/protocol/impl/LedgerFormats.cpp - src/ripple/protocol/impl/PublicKey.cpp - src/ripple/protocol/impl/Quality.cpp - src/ripple/protocol/impl/Rate2.cpp - src/ripple/protocol/impl/Rules.cpp - src/ripple/protocol/impl/SField.cpp - src/ripple/protocol/impl/SOTemplate.cpp - src/ripple/protocol/impl/STAccount.cpp - src/ripple/protocol/impl/STAmount.cpp - src/ripple/protocol/impl/STArray.cpp - src/ripple/protocol/impl/STBase.cpp - src/ripple/protocol/impl/STBlob.cpp - src/ripple/protocol/impl/STInteger.cpp - src/ripple/protocol/impl/STLedgerEntry.cpp - src/ripple/protocol/impl/STObject.cpp - src/ripple/protocol/impl/STParsedJSON.cpp - src/ripple/protocol/impl/STPathSet.cpp - src/ripple/protocol/impl/STTx.cpp - src/ripple/protocol/impl/STValidation.cpp - src/ripple/protocol/impl/STVar.cpp - src/ripple/protocol/impl/STVector256.cpp - src/ripple/protocol/impl/SecretKey.cpp - src/ripple/protocol/impl/Seed.cpp - src/ripple/protocol/impl/Serializer.cpp - src/ripple/protocol/impl/Sign.cpp - src/ripple/protocol/impl/TER.cpp - src/ripple/protocol/impl/TxFormats.cpp - src/ripple/protocol/impl/TxMeta.cpp - src/ripple/protocol/impl/UintTypes.cpp - src/ripple/protocol/impl/digest.cpp - src/ripple/protocol/impl/tokens.cpp - #[===============================[ - main sources: - subdir: crypto - #]===============================] - src/ripple/crypto/impl/RFC1751.cpp - src/ripple/crypto/impl/csprng.cpp - src/ripple/crypto/impl/secure_erase.cpp) - -add_library (Ripple::xrpl_core ALIAS xrpl_core) -target_include_directories (xrpl_core - PUBLIC - $ - $) - -target_compile_definitions(xrpl_core - PUBLIC - BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT - BOOST_CONTAINER_FWD_BAD_DEQUE - HAS_UNCAUGHT_EXCEPTIONS=1) -target_compile_options (xrpl_core - PUBLIC - $<$:-Wno-maybe-uninitialized>) -target_link_libraries (xrpl_core - PUBLIC - OpenSSL::Crypto - Ripple::boost - NIH::WasmEdge - Ripple::syslibs - NIH::secp256k1 - NIH::ed25519-donna - date::date - Ripple::opts) -#[=================================[ - main/core headers installation -#]=================================] -install ( - FILES - src/ripple/basics/base64.h - src/ripple/basics/Blob.h - src/ripple/basics/Buffer.h - src/ripple/basics/CountedObject.h - src/ripple/basics/FileUtilities.h - src/ripple/basics/IOUAmount.h - src/ripple/basics/LocalValue.h - src/ripple/basics/Log.h - src/ripple/basics/MathUtilities.h - src/ripple/basics/Number.h - src/ripple/basics/safe_cast.h - src/ripple/basics/Slice.h - src/ripple/basics/spinlock.h - src/ripple/basics/StringUtilities.h - src/ripple/basics/ThreadSafetyAnalysis.h - src/ripple/basics/ToString.h - src/ripple/basics/UnorderedContainers.h - src/ripple/basics/XRPAmount.h - src/ripple/basics/algorithm.h - src/ripple/basics/base_uint.h - src/ripple/basics/chrono.h - src/ripple/basics/contract.h - src/ripple/basics/FeeUnits.h - src/ripple/basics/hardened_hash.h - src/ripple/basics/strHex.h - DESTINATION include/ripple/basics) -install ( - FILES - src/ripple/crypto/RFC1751.h - src/ripple/crypto/csprng.h - src/ripple/crypto/secure_erase.h - DESTINATION include/ripple/crypto) -install ( - FILES - src/ripple/json/JsonPropertyStream.h - src/ripple/json/Object.h - src/ripple/json/Output.h - src/ripple/json/Writer.h - src/ripple/json/json_forwards.h - src/ripple/json/json_reader.h - src/ripple/json/json_value.h - src/ripple/json/json_writer.h - src/ripple/json/to_string.h - DESTINATION include/ripple/json) -install ( - FILES - src/ripple/json/impl/json_assert.h - DESTINATION include/ripple/json/impl) -install ( - FILES - src/ripple/protocol/AccountID.h - src/ripple/protocol/AmountConversions.h - src/ripple/protocol/Book.h - src/ripple/protocol/BuildInfo.h - src/ripple/protocol/ErrorCodes.h - src/ripple/protocol/Feature.h - src/ripple/protocol/HashPrefix.h - src/ripple/protocol/Indexes.h - src/ripple/protocol/InnerObjectFormats.h - src/ripple/protocol/Issue.h - src/ripple/protocol/KeyType.h - src/ripple/protocol/Keylet.h - src/ripple/protocol/KnownFormats.h - src/ripple/protocol/LedgerFormats.h - src/ripple/protocol/Protocol.h - src/ripple/protocol/PublicKey.h - src/ripple/protocol/Quality.h - src/ripple/protocol/Rate.h - src/ripple/protocol/Rules.h - src/ripple/protocol/SField.h - src/ripple/protocol/SOTemplate.h - src/ripple/protocol/STAccount.h - src/ripple/protocol/STAmount.h - src/ripple/protocol/STArray.h - src/ripple/protocol/STBase.h - src/ripple/protocol/STBitString.h - src/ripple/protocol/STBlob.h - src/ripple/protocol/STExchange.h - src/ripple/protocol/STInteger.h - src/ripple/protocol/STLedgerEntry.h - src/ripple/protocol/STObject.h - src/ripple/protocol/STParsedJSON.h - src/ripple/protocol/STPathSet.h - src/ripple/protocol/STTx.h - src/ripple/protocol/STValidation.h - src/ripple/protocol/STVector256.h - src/ripple/protocol/SecretKey.h - src/ripple/protocol/Seed.h - src/ripple/protocol/SeqProxy.h - src/ripple/protocol/Serializer.h - src/ripple/protocol/Sign.h - src/ripple/protocol/SystemParameters.h - src/ripple/protocol/TER.h - src/ripple/protocol/TxFlags.h - src/ripple/protocol/TxFormats.h - src/ripple/protocol/TxMeta.h - src/ripple/protocol/UintTypes.h - src/ripple/protocol/digest.h - src/ripple/protocol/jss.h - src/ripple/protocol/tokens.h - DESTINATION include/ripple/protocol) -install ( - FILES - src/ripple/protocol/impl/STVar.h - src/ripple/protocol/impl/secp256k1.h - DESTINATION include/ripple/protocol/impl) - -#[===================================[ - beast/legacy headers installation -#]===================================] -install ( - FILES - src/ripple/beast/clock/abstract_clock.h - src/ripple/beast/clock/basic_seconds_clock.h - src/ripple/beast/clock/manual_clock.h - DESTINATION include/ripple/beast/clock) -install ( - FILES - src/ripple/beast/core/LexicalCast.h - src/ripple/beast/core/List.h - src/ripple/beast/core/SemanticVersion.h - DESTINATION include/ripple/beast/core) -install ( - FILES - src/ripple/beast/hash/hash_append.h - src/ripple/beast/hash/uhash.h - src/ripple/beast/hash/xxhasher.h - DESTINATION include/ripple/beast/hash) -install ( - FILES src/ripple/beast/hash/impl/xxhash.h - DESTINATION include/ripple/beast/hash/impl) -install ( - FILES - src/ripple/beast/rfc2616.h - src/ripple/beast/type_name.h - src/ripple/beast/unit_test.h - src/ripple/beast/xor_shift_engine.h - DESTINATION include/ripple/beast) -install ( - FILES - src/ripple/beast/utility/Journal.h - src/ripple/beast/utility/PropertyStream.h - src/ripple/beast/utility/Zero.h - src/ripple/beast/utility/rngfill.h - DESTINATION include/ripple/beast/utility) -# WARNING!! -- horrible levelization ahead -# (these files should be isolated or moved...but -# unfortunately unit_test.h above creates this dependency) -if (tests) - install ( - FILES - src/ripple/beast/unit_test/amount.hpp - src/ripple/beast/unit_test/dstream.hpp - src/ripple/beast/unit_test/global_suites.hpp - src/ripple/beast/unit_test/match.hpp - src/ripple/beast/unit_test/recorder.hpp - src/ripple/beast/unit_test/reporter.hpp - src/ripple/beast/unit_test/results.hpp - src/ripple/beast/unit_test/runner.hpp - src/ripple/beast/unit_test/suite.hpp - src/ripple/beast/unit_test/suite_info.hpp - src/ripple/beast/unit_test/suite_list.hpp - src/ripple/beast/unit_test/thread.hpp - DESTINATION include/ripple/beast/extras/unit_test) - install ( - FILES - src/ripple/beast/unit_test/detail/const_container.hpp - DESTINATION include/ripple/beast/unit_test/detail) -endif () #tests -#[===================================================================[ - rippled executable -#]===================================================================] - -#[=========================================================[ - this one header is added as source just to keep older - versions of cmake happy. cmake 3.10+ allows - add_executable with no sources -#]=========================================================] -add_executable (rippled src/ripple/app/main/Application.h) -if (unity) - set_target_properties(rippled PROPERTIES UNITY_BUILD ON) -endif () -if (tests) - target_compile_definitions(rippled PUBLIC ENABLE_TESTS) -endif() -target_sources (rippled PRIVATE - #[===============================[ - main sources: - subdir: app - #]===============================] - src/ripple/app/consensus/RCLConsensus.cpp - src/ripple/app/consensus/RCLCxPeerPos.cpp - src/ripple/app/consensus/RCLValidations.cpp - src/ripple/app/ledger/AcceptedLedger.cpp - src/ripple/app/ledger/AcceptedLedgerTx.cpp - src/ripple/app/ledger/AccountStateSF.cpp - src/ripple/app/ledger/BookListeners.cpp - src/ripple/app/ledger/ConsensusTransSetSF.cpp - src/ripple/app/ledger/Ledger.cpp - src/ripple/app/ledger/LedgerHistory.cpp - src/ripple/app/ledger/OrderBookDB.cpp - src/ripple/app/ledger/TransactionStateSF.cpp - src/ripple/app/ledger/impl/BuildLedger.cpp - src/ripple/app/ledger/impl/InboundLedger.cpp - src/ripple/app/ledger/impl/InboundLedgers.cpp - src/ripple/app/ledger/impl/InboundTransactions.cpp - src/ripple/app/ledger/impl/LedgerCleaner.cpp - src/ripple/app/ledger/impl/LedgerDeltaAcquire.cpp - src/ripple/app/ledger/impl/LedgerMaster.cpp - src/ripple/app/ledger/impl/LedgerReplay.cpp - src/ripple/app/ledger/impl/LedgerReplayer.cpp - src/ripple/app/ledger/impl/LedgerReplayMsgHandler.cpp - src/ripple/app/ledger/impl/LedgerReplayTask.cpp - src/ripple/app/ledger/impl/LedgerToJson.cpp - src/ripple/app/ledger/impl/LocalTxs.cpp - src/ripple/app/ledger/impl/OpenLedger.cpp - src/ripple/app/ledger/impl/SkipListAcquire.cpp - src/ripple/app/ledger/impl/TimeoutCounter.cpp - src/ripple/app/ledger/impl/TransactionAcquire.cpp - src/ripple/app/ledger/impl/TransactionMaster.cpp - src/ripple/app/main/Application.cpp - src/ripple/app/main/BasicApp.cpp - src/ripple/app/main/CollectorManager.cpp - src/ripple/app/main/GRPCServer.cpp - src/ripple/app/main/LoadManager.cpp - src/ripple/app/main/Main.cpp - src/ripple/app/main/NodeIdentity.cpp - src/ripple/app/main/NodeStoreScheduler.cpp - src/ripple/app/reporting/ReportingETL.cpp - src/ripple/app/reporting/ETLSource.cpp - src/ripple/app/reporting/P2pProxy.cpp - src/ripple/app/misc/CanonicalTXSet.cpp - src/ripple/app/misc/FeeVoteImpl.cpp - src/ripple/app/misc/HashRouter.cpp - src/ripple/app/misc/NegativeUNLVote.cpp - src/ripple/app/misc/NetworkOPs.cpp - src/ripple/app/misc/SHAMapStoreImp.cpp - src/ripple/app/misc/StateAccounting.cpp - src/ripple/app/misc/detail/impl/WorkSSL.cpp - src/ripple/app/misc/impl/AccountTxPaging.cpp - src/ripple/app/misc/impl/AmendmentTable.cpp - src/ripple/app/misc/impl/LoadFeeTrack.cpp - src/ripple/app/misc/impl/Manifest.cpp - src/ripple/app/misc/impl/Transaction.cpp - src/ripple/app/misc/impl/TxQ.cpp - src/ripple/app/misc/impl/ValidatorKeys.cpp - src/ripple/app/misc/impl/ValidatorList.cpp - src/ripple/app/misc/impl/ValidatorSite.cpp - src/ripple/app/paths/AccountCurrencies.cpp - src/ripple/app/paths/Credit.cpp - src/ripple/app/paths/Flow.cpp - src/ripple/app/paths/PathRequest.cpp - src/ripple/app/paths/PathRequests.cpp - src/ripple/app/paths/Pathfinder.cpp - src/ripple/app/paths/RippleCalc.cpp - src/ripple/app/paths/RippleLineCache.cpp - src/ripple/app/paths/TrustLine.cpp - src/ripple/app/paths/impl/BookStep.cpp - src/ripple/app/paths/impl/DirectStep.cpp - src/ripple/app/paths/impl/PaySteps.cpp - src/ripple/app/paths/impl/XRPEndpointStep.cpp - src/ripple/app/rdb/backend/detail/impl/Node.cpp - src/ripple/app/rdb/backend/detail/impl/Shard.cpp - src/ripple/app/rdb/backend/impl/PostgresDatabase.cpp - src/ripple/app/rdb/backend/impl/SQLiteDatabase.cpp - src/ripple/app/rdb/impl/Download.cpp - src/ripple/app/rdb/impl/PeerFinder.cpp - src/ripple/app/rdb/impl/RelationalDatabase.cpp - src/ripple/app/rdb/impl/ShardArchive.cpp - src/ripple/app/rdb/impl/State.cpp - src/ripple/app/rdb/impl/UnitaryShard.cpp - src/ripple/app/rdb/impl/Vacuum.cpp - src/ripple/app/rdb/impl/Wallet.cpp - src/ripple/app/tx/impl/ApplyContext.cpp - src/ripple/app/tx/impl/BookTip.cpp - src/ripple/app/tx/impl/CancelCheck.cpp - src/ripple/app/tx/impl/CancelOffer.cpp - src/ripple/app/tx/impl/CashCheck.cpp - src/ripple/app/tx/impl/Change.cpp - src/ripple/app/tx/impl/ClaimReward.cpp - src/ripple/app/tx/impl/CreateCheck.cpp - src/ripple/app/tx/impl/CreateOffer.cpp - src/ripple/app/tx/impl/CreateTicket.cpp - src/ripple/app/tx/impl/DeleteAccount.cpp - src/ripple/app/tx/impl/DepositPreauth.cpp - src/ripple/app/tx/impl/Escrow.cpp - src/ripple/app/tx/impl/GenesisMint.cpp - src/ripple/app/tx/impl/Import.cpp - src/ripple/app/tx/impl/InvariantCheck.cpp - src/ripple/app/tx/impl/Invoke.cpp - src/ripple/app/tx/impl/NFTokenAcceptOffer.cpp - src/ripple/app/tx/impl/NFTokenBurn.cpp - src/ripple/app/tx/impl/NFTokenCancelOffer.cpp - src/ripple/app/tx/impl/NFTokenCreateOffer.cpp - src/ripple/app/tx/impl/NFTokenMint.cpp - src/ripple/app/tx/impl/OfferStream.cpp - src/ripple/app/tx/impl/PayChan.cpp - src/ripple/app/tx/impl/Payment.cpp - src/ripple/app/tx/impl/Remit.cpp - src/ripple/app/tx/impl/SetAccount.cpp - src/ripple/app/tx/impl/SetHook.cpp - src/ripple/app/tx/impl/SetRegularKey.cpp - src/ripple/app/tx/impl/SetSignerList.cpp - src/ripple/app/tx/impl/SetTrust.cpp - src/ripple/app/tx/impl/SignerEntries.cpp - src/ripple/app/tx/impl/Taker.cpp - src/ripple/app/tx/impl/Transactor.cpp - src/ripple/app/tx/impl/URIToken.cpp - src/ripple/app/tx/impl/apply.cpp - src/ripple/app/tx/impl/applySteps.cpp - src/ripple/app/hook/impl/applyHook.cpp - src/ripple/app/tx/impl/details/NFTokenUtils.cpp - #[===============================[ - main sources: - subdir: basics (partial) - #]===============================] - src/ripple/basics/impl/Archive.cpp - src/ripple/basics/impl/BasicConfig.cpp - src/ripple/basics/impl/ResolverAsio.cpp - src/ripple/basics/impl/UptimeClock.cpp - src/ripple/basics/impl/make_SSLContext.cpp - src/ripple/basics/impl/mulDiv.cpp - src/ripple/basics/impl/partitioned_unordered_map.cpp - #[===============================[ - main sources: - subdir: conditions - #]===============================] - src/ripple/conditions/impl/Condition.cpp - src/ripple/conditions/impl/Fulfillment.cpp - src/ripple/conditions/impl/error.cpp - #[===============================[ - main sources: - subdir: core - #]===============================] - src/ripple/core/impl/Config.cpp - src/ripple/core/impl/DatabaseCon.cpp - src/ripple/core/impl/Job.cpp - src/ripple/core/impl/JobQueue.cpp - src/ripple/core/impl/LoadEvent.cpp - src/ripple/core/impl/LoadMonitor.cpp - src/ripple/core/impl/SNTPClock.cpp - src/ripple/core/impl/SociDB.cpp - src/ripple/core/impl/TimeKeeper.cpp - src/ripple/core/impl/Workers.cpp - src/ripple/core/Pg.cpp - #[===============================[ - main sources: - subdir: consensus - #]===============================] - src/ripple/consensus/Consensus.cpp - #[===============================[ - main sources: - subdir: ledger - #]===============================] - src/ripple/ledger/impl/ApplyStateTable.cpp - src/ripple/ledger/impl/ApplyView.cpp - src/ripple/ledger/impl/ApplyViewBase.cpp - src/ripple/ledger/impl/ApplyViewImpl.cpp - src/ripple/ledger/impl/BookDirs.cpp - src/ripple/ledger/impl/CachedView.cpp - src/ripple/ledger/impl/Directory.cpp - src/ripple/ledger/impl/OpenView.cpp - src/ripple/ledger/impl/PaymentSandbox.cpp - src/ripple/ledger/impl/RawStateTable.cpp - src/ripple/ledger/impl/ReadView.cpp - src/ripple/ledger/impl/View.cpp - #[===============================[ - main sources: - subdir: net - #]===============================] - src/ripple/net/impl/DatabaseDownloader.cpp - src/ripple/net/impl/HTTPClient.cpp - src/ripple/net/impl/HTTPDownloader.cpp - src/ripple/net/impl/HTTPStream.cpp - src/ripple/net/impl/InfoSub.cpp - src/ripple/net/impl/RPCCall.cpp - src/ripple/net/impl/RPCErr.cpp - src/ripple/net/impl/RPCSub.cpp - src/ripple/net/impl/RegisterSSLCerts.cpp - #[===============================[ - main sources: - subdir: nodestore - #]===============================] - src/ripple/nodestore/backend/CassandraFactory.cpp - src/ripple/nodestore/backend/RWDBFactory.cpp - src/ripple/nodestore/backend/MemoryFactory.cpp - src/ripple/nodestore/backend/FlatmapFactory.cpp - src/ripple/nodestore/backend/NuDBFactory.cpp - src/ripple/nodestore/backend/NullFactory.cpp - src/ripple/nodestore/backend/RocksDBFactory.cpp - src/ripple/nodestore/impl/BatchWriter.cpp - src/ripple/nodestore/impl/Database.cpp - src/ripple/nodestore/impl/DatabaseNodeImp.cpp - src/ripple/nodestore/impl/DatabaseRotatingImp.cpp - src/ripple/nodestore/impl/DatabaseShardImp.cpp - src/ripple/nodestore/impl/DeterministicShard.cpp - src/ripple/nodestore/impl/DecodedBlob.cpp - src/ripple/nodestore/impl/DummyScheduler.cpp - src/ripple/nodestore/impl/ManagerImp.cpp - src/ripple/nodestore/impl/NodeObject.cpp - src/ripple/nodestore/impl/Shard.cpp - src/ripple/nodestore/impl/ShardInfo.cpp - src/ripple/nodestore/impl/TaskQueue.cpp - #[===============================[ - main sources: - subdir: overlay - #]===============================] - src/ripple/overlay/impl/Cluster.cpp - src/ripple/overlay/impl/ConnectAttempt.cpp - src/ripple/overlay/impl/Handshake.cpp - src/ripple/overlay/impl/Message.cpp - src/ripple/overlay/impl/OverlayImpl.cpp - src/ripple/overlay/impl/PeerImp.cpp - src/ripple/overlay/impl/PeerReservationTable.cpp - src/ripple/overlay/impl/PeerSet.cpp - src/ripple/overlay/impl/ProtocolVersion.cpp - src/ripple/overlay/impl/TrafficCount.cpp - src/ripple/overlay/impl/TxMetrics.cpp - #[===============================[ - main sources: - subdir: peerfinder - #]===============================] - src/ripple/peerfinder/impl/Bootcache.cpp - src/ripple/peerfinder/impl/Endpoint.cpp - src/ripple/peerfinder/impl/PeerfinderConfig.cpp - src/ripple/peerfinder/impl/PeerfinderManager.cpp - src/ripple/peerfinder/impl/SlotImp.cpp - src/ripple/peerfinder/impl/SourceStrings.cpp - #[===============================[ - main sources: - subdir: resource - #]===============================] - src/ripple/resource/impl/Charge.cpp - src/ripple/resource/impl/Consumer.cpp - src/ripple/resource/impl/Fees.cpp - src/ripple/resource/impl/ResourceManager.cpp - #[===============================[ - main sources: - subdir: rpc - #]===============================] - src/ripple/rpc/handlers/AccountChannels.cpp - src/ripple/rpc/handlers/AccountCurrenciesHandler.cpp - src/ripple/rpc/handlers/AccountInfo.cpp - src/ripple/rpc/handlers/AccountLines.cpp - src/ripple/rpc/handlers/AccountObjects.cpp - src/ripple/rpc/handlers/AccountOffers.cpp - src/ripple/rpc/handlers/AccountNamespace.cpp - src/ripple/rpc/handlers/AccountTx.cpp - src/ripple/rpc/handlers/BlackList.cpp - src/ripple/rpc/handlers/BookOffers.cpp - src/ripple/rpc/handlers/CanDelete.cpp - src/ripple/rpc/handlers/Connect.cpp - src/ripple/rpc/handlers/ConsensusInfo.cpp - src/ripple/rpc/handlers/CrawlShards.cpp - src/ripple/rpc/handlers/DepositAuthorized.cpp - src/ripple/rpc/handlers/DownloadShard.cpp - src/ripple/rpc/handlers/Feature1.cpp - src/ripple/rpc/handlers/Fee1.cpp - src/ripple/rpc/handlers/FetchInfo.cpp - src/ripple/rpc/handlers/GatewayBalances.cpp - src/ripple/rpc/handlers/GetCounts.cpp - src/ripple/rpc/handlers/LedgerAccept.cpp - src/ripple/rpc/handlers/LedgerCleanerHandler.cpp - src/ripple/rpc/handlers/LedgerClosed.cpp - src/ripple/rpc/handlers/LedgerCurrent.cpp - src/ripple/rpc/handlers/LedgerData.cpp - src/ripple/rpc/handlers/LedgerDiff.cpp - src/ripple/rpc/handlers/LedgerEntry.cpp - src/ripple/rpc/handlers/LedgerHandler.cpp - src/ripple/rpc/handlers/LedgerHeader.cpp - src/ripple/rpc/handlers/LedgerRequest.cpp - src/ripple/rpc/handlers/LogLevel.cpp - src/ripple/rpc/handlers/LogRotate.cpp - src/ripple/rpc/handlers/Manifest.cpp - src/ripple/rpc/handlers/NFTOffers.cpp - src/ripple/rpc/handlers/NodeToShard.cpp - src/ripple/rpc/handlers/NoRippleCheck.cpp - src/ripple/rpc/handlers/OwnerInfo.cpp - src/ripple/rpc/handlers/PathFind.cpp - src/ripple/rpc/handlers/PayChanClaim.cpp - src/ripple/rpc/handlers/Peers.cpp - src/ripple/rpc/handlers/Ping.cpp - src/ripple/rpc/handlers/Print.cpp - src/ripple/rpc/handlers/Random.cpp - src/ripple/rpc/handlers/Reservations.cpp - src/ripple/rpc/handlers/RipplePathFind.cpp - src/ripple/rpc/handlers/ServerDefinitions.cpp - src/ripple/rpc/handlers/ServerInfo.cpp - src/ripple/rpc/handlers/ServerState.cpp - src/ripple/rpc/handlers/SignFor.cpp - src/ripple/rpc/handlers/SignHandler.cpp - src/ripple/rpc/handlers/Stop.cpp - src/ripple/rpc/handlers/Submit.cpp - src/ripple/rpc/handlers/SubmitMultiSigned.cpp - src/ripple/rpc/handlers/Subscribe.cpp - src/ripple/rpc/handlers/TransactionEntry.cpp - src/ripple/rpc/handlers/Tx.cpp - src/ripple/rpc/handlers/TxHistory.cpp - src/ripple/rpc/handlers/TxReduceRelay.cpp - src/ripple/rpc/handlers/UnlList.cpp - src/ripple/rpc/handlers/Unsubscribe.cpp - src/ripple/rpc/handlers/ValidationCreate.cpp - src/ripple/rpc/handlers/ValidatorInfo.cpp - src/ripple/rpc/handlers/ValidatorListSites.cpp - src/ripple/rpc/handlers/Validators.cpp - src/ripple/rpc/handlers/WalletPropose.cpp - src/ripple/rpc/impl/DeliveredAmount.cpp - src/ripple/rpc/impl/Handler.cpp - src/ripple/rpc/impl/LegacyPathFind.cpp - src/ripple/rpc/impl/RPCHandler.cpp - src/ripple/rpc/impl/RPCHelpers.cpp - src/ripple/rpc/impl/Role.cpp - src/ripple/rpc/impl/ServerHandlerImp.cpp - src/ripple/rpc/impl/ShardArchiveHandler.cpp - src/ripple/rpc/impl/ShardVerificationScheduler.cpp - src/ripple/rpc/impl/Status.cpp - src/ripple/rpc/impl/TransactionSign.cpp - src/ripple/rpc/impl/NFTokenID.cpp - src/ripple/rpc/impl/NFTokenOfferID.cpp - src/ripple/rpc/impl/NFTSyntheticSerializer.cpp - #[===============================[ - main sources: - subdir: perflog - #]===============================] - src/ripple/perflog/impl/PerfLogImp.cpp - - #[===============================[ - main sources: - subdir: server - #]===============================] - src/ripple/server/impl/JSONRPCUtil.cpp - src/ripple/server/impl/Port.cpp - #[===============================[ - main sources: - subdir: shamap - #]===============================] - src/ripple/shamap/impl/NodeFamily.cpp - src/ripple/shamap/impl/SHAMap.cpp - src/ripple/shamap/impl/SHAMapDelta.cpp - src/ripple/shamap/impl/SHAMapInnerNode.cpp - src/ripple/shamap/impl/SHAMapLeafNode.cpp - src/ripple/shamap/impl/SHAMapNodeID.cpp - src/ripple/shamap/impl/SHAMapSync.cpp - src/ripple/shamap/impl/SHAMapTreeNode.cpp - src/ripple/shamap/impl/ShardFamily.cpp) - - #[===============================[ - test sources: - subdir: app - #]===============================] -if (tests) - target_sources (rippled PRIVATE - src/test/app/AccountDelete_test.cpp - src/test/app/AccountTxPaging_test.cpp - src/test/app/AmendmentTable_test.cpp - src/test/app/BaseFee_test.cpp - src/test/app/Check_test.cpp - src/test/app/ClaimReward_test.cpp - src/test/app/CrossingLimits_test.cpp - src/test/app/DeliverMin_test.cpp - src/test/app/DepositAuth_test.cpp - src/test/app/Discrepancy_test.cpp - src/test/app/DNS_test.cpp - src/test/app/Escrow_test.cpp - src/test/app/FeeVote_test.cpp - src/test/app/Flow_test.cpp - src/test/app/Freeze_test.cpp - src/test/app/GenesisMint_test.cpp - src/test/app/HashRouter_test.cpp - src/test/app/Import_test.cpp - src/test/app/Invoke_test.cpp - src/test/app/LedgerHistory_test.cpp - src/test/app/LedgerLoad_test.cpp - src/test/app/LedgerMaster_test.cpp - src/test/app/LedgerReplay_test.cpp - src/test/app/LoadFeeTrack_test.cpp - src/test/app/Manifest_test.cpp - src/test/app/MultiSign_test.cpp - src/test/app/NetworkID_test.cpp - src/test/app/NFToken_test.cpp - src/test/app/NFTokenBurn_test.cpp - src/test/app/NFTokenDir_test.cpp - src/test/app/OfferStream_test.cpp - src/test/app/Offer_test.cpp - src/test/app/OversizeMeta_test.cpp - src/test/app/Path_test.cpp - src/test/app/PayChan_test.cpp - src/test/app/PayStrand_test.cpp - src/test/app/PseudoTx_test.cpp - src/test/app/RCLCensorshipDetector_test.cpp - src/test/app/RCLValidations_test.cpp - src/test/app/Regression_test.cpp - src/test/app/Remit_test.cpp - src/test/app/SHAMapStore_test.cpp - src/test/app/SetAuth_test.cpp - src/test/app/SetRegularKey_test.cpp - src/test/app/SetTrust_test.cpp - src/test/app/Taker_test.cpp - src/test/app/TheoreticalQuality_test.cpp - src/test/app/Ticket_test.cpp - src/test/app/Transaction_ordering_test.cpp - src/test/app/TrustAndBalance_test.cpp - src/test/app/TxQ_test.cpp - src/test/app/URIToken_test.cpp - src/test/app/ValidatorKeys_test.cpp - src/test/app/ValidatorList_test.cpp - src/test/app/ValidatorSite_test.cpp - src/test/app/SetHook_test.cpp - src/test/app/SetHookTSH_test.cpp - src/test/app/Wildcard_test.cpp - src/test/app/XahauGenesis_test.cpp - src/test/app/tx/apply_test.cpp - #[===============================[ - test sources: - subdir: basics - #]===============================] - src/test/basics/Buffer_test.cpp - src/test/basics/DetectCrash_test.cpp - src/test/basics/Expected_test.cpp - src/test/basics/FileUtilities_test.cpp - src/test/basics/IOUAmount_test.cpp - src/test/basics/KeyCache_test.cpp - src/test/basics/Number_test.cpp - src/test/basics/PerfLog_test.cpp - src/test/basics/RangeSet_test.cpp - src/test/basics/scope_test.cpp - src/test/basics/Slice_test.cpp - src/test/basics/StringUtilities_test.cpp - src/test/basics/TaggedCache_test.cpp - src/test/basics/XRPAmount_test.cpp - src/test/basics/base64_test.cpp - src/test/basics/base_uint_test.cpp - src/test/basics/contract_test.cpp - src/test/basics/FeeUnits_test.cpp - src/test/basics/hardened_hash_test.cpp - src/test/basics/join_test.cpp - src/test/basics/mulDiv_test.cpp - src/test/basics/tagged_integer_test.cpp - #[===============================[ - test sources: - subdir: beast - #]===============================] - src/test/beast/IPEndpoint_test.cpp - src/test/beast/LexicalCast_test.cpp - src/test/beast/SemanticVersion_test.cpp - src/test/beast/aged_associative_container_test.cpp - src/test/beast/beast_CurrentThreadName_test.cpp - src/test/beast/beast_Journal_test.cpp - src/test/beast/beast_PropertyStream_test.cpp - src/test/beast/beast_Zero_test.cpp - src/test/beast/beast_abstract_clock_test.cpp - src/test/beast/beast_basic_seconds_clock_test.cpp - src/test/beast/beast_io_latency_probe_test.cpp - src/test/beast/define_print.cpp - #[===============================[ - test sources: - subdir: conditions - #]===============================] - src/test/conditions/PreimageSha256_test.cpp - #[===============================[ - test sources: - subdir: consensus - #]===============================] - src/test/consensus/ByzantineFailureSim_test.cpp - src/test/consensus/Consensus_test.cpp - src/test/consensus/DistributedValidatorsSim_test.cpp - src/test/consensus/LedgerTiming_test.cpp - src/test/consensus/LedgerTrie_test.cpp - src/test/consensus/NegativeUNL_test.cpp - src/test/consensus/ScaleFreeSim_test.cpp - src/test/consensus/UNLReport_test.cpp - src/test/consensus/Validations_test.cpp - #[===============================[ - test sources: - subdir: core - #]===============================] - src/test/core/ClosureCounter_test.cpp - src/test/core/Config_test.cpp - src/test/core/Coroutine_test.cpp - src/test/core/CryptoPRNG_test.cpp - src/test/core/JobQueue_test.cpp - src/test/core/SociDB_test.cpp - src/test/core/Workers_test.cpp - #[===============================[ - test sources: - subdir: csf - #]===============================] - src/test/csf/BasicNetwork_test.cpp - src/test/csf/Digraph_test.cpp - src/test/csf/Histogram_test.cpp - src/test/csf/Scheduler_test.cpp - src/test/csf/impl/Sim.cpp - src/test/csf/impl/ledgers.cpp - #[===============================[ - test sources: - subdir: json - #]===============================] - src/test/json/Object_test.cpp - src/test/json/Output_test.cpp - src/test/json/Writer_test.cpp - src/test/json/json_value_test.cpp - #[===============================[ - test sources: - subdir: jtx - #]===============================] - src/test/jtx/Env_test.cpp - src/test/jtx/WSClient_test.cpp - src/test/jtx/impl/Account.cpp - src/test/jtx/impl/Env.cpp - src/test/jtx/impl/JSONRPCClient.cpp - src/test/jtx/impl/ManualTimeKeeper.cpp - src/test/jtx/impl/WSClient.cpp - src/test/jtx/impl/hook.cpp - src/test/jtx/impl/acctdelete.cpp - src/test/jtx/impl/account_txn_id.cpp - src/test/jtx/impl/amount.cpp - src/test/jtx/impl/balance.cpp - src/test/jtx/impl/check.cpp - src/test/jtx/impl/delivermin.cpp - src/test/jtx/impl/deposit.cpp - src/test/jtx/impl/envconfig.cpp - src/test/jtx/impl/escrow.cpp - src/test/jtx/impl/fee.cpp - src/test/jtx/impl/flags.cpp - src/test/jtx/impl/genesis.cpp - src/test/jtx/impl/import.cpp - src/test/jtx/impl/invoice_id.cpp - src/test/jtx/impl/invoke.cpp - src/test/jtx/impl/jtx_json.cpp - src/test/jtx/impl/last_ledger_sequence.cpp - src/test/jtx/impl/memo.cpp - src/test/jtx/impl/multisign.cpp - src/test/jtx/impl/network.cpp - src/test/jtx/impl/offer.cpp - src/test/jtx/impl/owners.cpp - src/test/jtx/impl/paths.cpp - src/test/jtx/impl/pay.cpp - src/test/jtx/impl/paychan.cpp - src/test/jtx/impl/quality2.cpp - src/test/jtx/impl/rate.cpp - src/test/jtx/impl/regkey.cpp - src/test/jtx/impl/reward.cpp - src/test/jtx/impl/remit.cpp - src/test/jtx/impl/sendmax.cpp - src/test/jtx/impl/seq.cpp - src/test/jtx/impl/sig.cpp - src/test/jtx/impl/tag.cpp - src/test/jtx/impl/ticket.cpp - src/test/jtx/impl/token.cpp - src/test/jtx/impl/trust.cpp - src/test/jtx/impl/txflags.cpp - src/test/jtx/impl/unl.cpp - src/test/jtx/impl/uritoken.cpp - src/test/jtx/impl/utility.cpp - - #[===============================[ - test sources: - subdir: ledger - #]===============================] - src/test/ledger/BookDirs_test.cpp - src/test/ledger/Directory_test.cpp - src/test/ledger/Invariants_test.cpp - src/test/ledger/PaymentSandbox_test.cpp - src/test/ledger/PendingSaves_test.cpp - src/test/ledger/SkipList_test.cpp - src/test/ledger/View_test.cpp - #[===============================[ - test sources: - subdir: net - #]===============================] - src/test/net/DatabaseDownloader_test.cpp - #[===============================[ - test sources: - subdir: nodestore - #]===============================] - src/test/nodestore/Backend_test.cpp - src/test/nodestore/Basics_test.cpp - src/test/nodestore/DatabaseShard_test.cpp - src/test/nodestore/Database_test.cpp - src/test/nodestore/Timing_test.cpp - src/test/nodestore/import_test.cpp - src/test/nodestore/varint_test.cpp - #[===============================[ - test sources: - subdir: overlay - #]===============================] - src/test/overlay/ProtocolVersion_test.cpp - src/test/overlay/cluster_test.cpp - src/test/overlay/short_read_test.cpp - src/test/overlay/compression_test.cpp - src/test/overlay/reduce_relay_test.cpp - src/test/overlay/handshake_test.cpp - src/test/overlay/tx_reduce_relay_test.cpp - #[===============================[ - test sources: - subdir: peerfinder - #]===============================] - src/test/peerfinder/Livecache_test.cpp - src/test/peerfinder/PeerFinder_test.cpp - #[===============================[ - test sources: - subdir: protocol - #]===============================] - src/test/protocol/BuildInfo_test.cpp - src/test/protocol/InnerObjectFormats_test.cpp - src/test/protocol/Issue_test.cpp - src/test/protocol/Hooks_test.cpp - src/test/protocol/Memo_test.cpp - src/test/protocol/PublicKey_test.cpp - src/test/protocol/Quality_test.cpp - src/test/protocol/STAccount_test.cpp - src/test/protocol/STAmount_test.cpp - src/test/protocol/STObject_test.cpp - src/test/protocol/STTx_test.cpp - src/test/protocol/STValidation_test.cpp - src/test/protocol/SecretKey_test.cpp - src/test/protocol/Seed_test.cpp - src/test/protocol/SeqProxy_test.cpp - src/test/protocol/TER_test.cpp - src/test/protocol/types_test.cpp - #[===============================[ - test sources: - subdir: resource - #]===============================] - src/test/resource/Logic_test.cpp - #[===============================[ - test sources: - subdir: rpc - #]===============================] - src/test/rpc/AccountCurrencies_test.cpp - src/test/rpc/AccountInfo_test.cpp - src/test/rpc/AccountLinesRPC_test.cpp - src/test/rpc/AccountObjects_test.cpp - src/test/rpc/AccountOffers_test.cpp - src/test/rpc/AccountNamespace_test.cpp - src/test/rpc/AccountSet_test.cpp - src/test/rpc/AccountTx_test.cpp - src/test/rpc/AmendmentBlocked_test.cpp - src/test/rpc/Book_test.cpp - src/test/rpc/DepositAuthorized_test.cpp - src/test/rpc/DeliveredAmount_test.cpp - src/test/rpc/Feature_test.cpp - src/test/rpc/GatewayBalances_test.cpp - src/test/rpc/GetCounts_test.cpp - src/test/rpc/JSONRPC_test.cpp - src/test/rpc/KeyGeneration_test.cpp - src/test/rpc/LedgerClosed_test.cpp - src/test/rpc/LedgerData_test.cpp - src/test/rpc/LedgerRPC_test.cpp - src/test/rpc/LedgerRequestRPC_test.cpp - src/test/rpc/ManifestRPC_test.cpp - src/test/rpc/NodeToShardRPC_test.cpp - src/test/rpc/NoRippleCheck_test.cpp - src/test/rpc/NoRipple_test.cpp - src/test/rpc/OwnerInfo_test.cpp - src/test/rpc/Peers_test.cpp - src/test/rpc/ReportingETL_test.cpp - src/test/rpc/Roles_test.cpp - src/test/rpc/RPCCall_test.cpp - src/test/rpc/RPCOverload_test.cpp - src/test/rpc/RobustTransaction_test.cpp - src/test/rpc/ServerDefinitions_test.cpp - src/test/rpc/ServerInfo_test.cpp - src/test/rpc/ShardArchiveHandler_test.cpp - src/test/rpc/Status_test.cpp - src/test/rpc/Subscribe_test.cpp - src/test/rpc/Transaction_test.cpp - src/test/rpc/TransactionEntry_test.cpp - src/test/rpc/TransactionHistory_test.cpp - src/test/rpc/ValidatorInfo_test.cpp - src/test/rpc/ValidatorRPC_test.cpp - src/test/rpc/Version_test.cpp - #[===============================[ - test sources: - subdir: server - #]===============================] - src/test/server/ServerStatus_test.cpp - src/test/server/Server_test.cpp - #[===============================[ - test sources: - subdir: shamap - #]===============================] - src/test/shamap/FetchPack_test.cpp - src/test/shamap/SHAMapSync_test.cpp - src/test/shamap/SHAMap_test.cpp - #[===============================[ - test sources: - subdir: unit_test - #]===============================] - src/test/unit_test/multi_runner.cpp) -endif () #tests - -target_link_libraries (rippled - Ripple::boost - Ripple::opts - Ripple::libs - Ripple::xrpl_core - ) -exclude_if_included (rippled) -# define a macro for tests that might need to -# be exluded or run differently in CI environment -if (is_ci) - target_compile_definitions(rippled PRIVATE RIPPLED_RUNNING_IN_CI) -endif () - -if(reporting) -set_target_properties(rippled PROPERTIES OUTPUT_NAME rippled-reporting) -get_target_property(BIN_NAME rippled OUTPUT_NAME) -message(STATUS "Reporting mode build: rippled renamed ${BIN_NAME}") - target_compile_definitions(rippled PRIVATE RIPPLED_REPORTING) -endif() - -# any files that don't play well with unity should be added here -if (tests) - set_source_files_properties( - # these two seem to produce conflicts in beast teardown template methods - src/test/rpc/ValidatorRPC_test.cpp - src/test/rpc/ShardArchiveHandler_test.cpp - PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE) -endif () #tests - -if(ACL_LIBRARY) - target_link_libraries(rippled ${ACL_LIBRARY}) -endif() diff --git a/Release.Builds/Builds/CMake/RippledCov.cmake b/Release.Builds/Builds/CMake/RippledCov.cmake deleted file mode 100644 index e177aa52a..000000000 --- a/Release.Builds/Builds/CMake/RippledCov.cmake +++ /dev/null @@ -1,98 +0,0 @@ -#[===================================================================[ - coverage report target -#]===================================================================] - -if (coverage) - if (is_clang) - if (APPLE) - execute_process (COMMAND xcrun -f llvm-profdata - OUTPUT_VARIABLE LLVM_PROFDATA - OUTPUT_STRIP_TRAILING_WHITESPACE) - else () - find_program (LLVM_PROFDATA llvm-profdata) - endif () - if (NOT LLVM_PROFDATA) - message (WARNING "unable to find llvm-profdata - skipping coverage_report target") - endif () - - if (APPLE) - execute_process (COMMAND xcrun -f llvm-cov - OUTPUT_VARIABLE LLVM_COV - OUTPUT_STRIP_TRAILING_WHITESPACE) - else () - find_program (LLVM_COV llvm-cov) - endif () - if (NOT LLVM_COV) - message (WARNING "unable to find llvm-cov - skipping coverage_report target") - endif () - - set (extract_pattern "") - if (coverage_core_only) - set (extract_pattern "${CMAKE_CURRENT_SOURCE_DIR}/src/ripple/") - endif () - - if (LLVM_COV AND LLVM_PROFDATA) - add_custom_target (coverage_report - USES_TERMINAL - COMMAND ${CMAKE_COMMAND} -E echo "Generating coverage - results will be in ${CMAKE_BINARY_DIR}/coverage/index.html." - COMMAND ${CMAKE_COMMAND} -E echo "Running rippled tests." - COMMAND rippled --unittest$<$:=${coverage_test}> --quiet --unittest-log - COMMAND ${LLVM_PROFDATA} - merge -sparse default.profraw -o rip.profdata - COMMAND ${CMAKE_COMMAND} -E echo "Summary of coverage:" - COMMAND ${LLVM_COV} - report -instr-profile=rip.profdata - $ ${extract_pattern} - # generate html report - COMMAND ${LLVM_COV} - show -format=html -output-dir=${CMAKE_BINARY_DIR}/coverage - -instr-profile=rip.profdata - $ ${extract_pattern} - BYPRODUCTS coverage/index.html) - endif () - elseif (is_gcc) - find_program (LCOV lcov) - if (NOT LCOV) - message (WARNING "unable to find lcov - skipping coverage_report target") - endif () - - find_program (GENHTML genhtml) - if (NOT GENHTML) - message (WARNING "unable to find genhtml - skipping coverage_report target") - endif () - - set (extract_pattern "*") - if (coverage_core_only) - set (extract_pattern "*/src/ripple/*") - endif () - - if (LCOV AND GENHTML) - add_custom_target (coverage_report - USES_TERMINAL - COMMAND ${CMAKE_COMMAND} -E echo "Generating coverage- results will be in ${CMAKE_BINARY_DIR}/coverage/index.html." - # create baseline info file - COMMAND ${LCOV} - --no-external -d "${CMAKE_CURRENT_SOURCE_DIR}" -c -d . -i -o baseline.info - | grep -v "ignoring data for external file" - # run tests - COMMAND ${CMAKE_COMMAND} -E echo "Running rippled tests for coverage report." - COMMAND rippled --unittest$<$:=${coverage_test}> --quiet --unittest-log - # Create test coverage data file - COMMAND ${LCOV} - --no-external -d "${CMAKE_CURRENT_SOURCE_DIR}" -c -d . -o tests.info - | grep -v "ignoring data for external file" - # Combine baseline and test coverage data - COMMAND ${LCOV} - -a baseline.info -a tests.info -o lcov-all.info - # extract our files - COMMAND ${LCOV} - -e lcov-all.info "${extract_pattern}" -o lcov.info - COMMAND ${CMAKE_COMMAND} -E echo "Summary of coverage:" - COMMAND ${LCOV} --summary lcov.info - # generate HTML report - COMMAND ${GENHTML} - -o ${CMAKE_BINARY_DIR}/coverage lcov.info - BYPRODUCTS coverage/index.html) - endif () - endif () -endif () diff --git a/Release.Builds/Builds/CMake/RippledDocs.cmake b/Release.Builds/Builds/CMake/RippledDocs.cmake deleted file mode 100644 index 6cb8f730d..000000000 --- a/Release.Builds/Builds/CMake/RippledDocs.cmake +++ /dev/null @@ -1,79 +0,0 @@ -#[===================================================================[ - docs target (optional) -#]===================================================================] -if (tests) - find_package (Doxygen) - if (NOT TARGET Doxygen::doxygen) - message (STATUS "doxygen executable not found -- skipping docs target") - return () - endif () - - set (doxygen_output_directory "${CMAKE_BINARY_DIR}/docs") - set (doxygen_include_path "${CMAKE_CURRENT_SOURCE_DIR}/src") - set (doxygen_index_file "${doxygen_output_directory}/html/index.html") - set (doxyfile "${CMAKE_CURRENT_SOURCE_DIR}/docs/Doxyfile") - - file (GLOB_RECURSE doxygen_input - docs/*.md - src/ripple/*.h - src/ripple/*.cpp - src/ripple/*.md - src/test/*.h - src/test/*.md - Builds/*/README.md) - list (APPEND doxygen_input - README.md - RELEASENOTES.md - src/README.md) - set (dependencies "${doxygen_input}" "${doxyfile}") - - function (verbose_find_path variable name) - # find_path sets a CACHE variable, so don't try using a "local" variable. - find_path (${variable} "${name}" ${ARGN}) - if (NOT ${variable}) - message (NOTICE "could not find ${name}") - else () - message (STATUS "found ${name}: ${${variable}}/${name}") - endif () - endfunction () - - verbose_find_path (doxygen_plantuml_jar_path plantuml.jar PATH_SUFFIXES share/plantuml) - verbose_find_path (doxygen_dot_path dot) - - # https://en.cppreference.com/w/Cppreference:Archives - # https://stackoverflow.com/questions/60822559/how-to-move-a-file-download-from-configure-step-to-build-step - set (download_script "${CMAKE_BINARY_DIR}/docs/download-cppreference.cmake") - file (WRITE - "${download_script}" - "file (DOWNLOAD \ - http://upload.cppreference.com/mwiki/images/b/b2/html_book_20190607.zip \ - ${CMAKE_BINARY_DIR}/docs/cppreference.zip \ - EXPECTED_HASH MD5=82b3a612d7d35a83e3cb1195a63689ab \ - )\n \ - execute_process ( \ - COMMAND \"${CMAKE_COMMAND}\" -E tar -xf cppreference.zip \ - )\n" - ) - set (tagfile "${CMAKE_BINARY_DIR}/docs/cppreference-doxygen-web.tag.xml") - add_custom_command ( - OUTPUT "${tagfile}" - COMMAND "${CMAKE_COMMAND}" -P "${download_script}" - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/docs" - ) - set (doxygen_tagfiles "${tagfile}=http://en.cppreference.com/w/") - - add_custom_command ( - OUTPUT "${doxygen_index_file}" - COMMAND "${CMAKE_COMMAND}" -E env - "DOXYGEN_OUTPUT_DIRECTORY=${doxygen_output_directory}" - "DOXYGEN_INCLUDE_PATH=${doxygen_include_path}" - "DOXYGEN_TAGFILES=${doxygen_tagfiles}" - "DOXYGEN_PLANTUML_JAR_PATH=${doxygen_plantuml_jar_path}" - "DOXYGEN_DOT_PATH=${doxygen_dot_path}" - "${DOXYGEN_EXECUTABLE}" "${doxyfile}" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - DEPENDS "${dependencies}" "${tagfile}") - add_custom_target (docs - DEPENDS "${doxygen_index_file}" - SOURCES "${dependencies}") -endif () diff --git a/Release.Builds/Builds/CMake/RippledInstall.cmake b/Release.Builds/Builds/CMake/RippledInstall.cmake deleted file mode 100644 index 3cdeca9e6..000000000 --- a/Release.Builds/Builds/CMake/RippledInstall.cmake +++ /dev/null @@ -1,62 +0,0 @@ -#[===================================================================[ - install stuff -#]===================================================================] - -install ( - TARGETS - ed25519-donna - common - opts - ripple_syslibs - ripple_boost - xrpl_core - EXPORT RippleExports - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include) - -if(${INSTALL_SECP256K1}) -install ( - TARGETS - secp256k1 - EXPORT RippleExports - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION bin - INCLUDES DESTINATION include) -endif() - -install (EXPORT RippleExports - FILE RippleTargets.cmake - NAMESPACE Ripple:: - DESTINATION lib/cmake/ripple) -include (CMakePackageConfigHelpers) -write_basic_package_version_file ( - RippleConfigVersion.cmake - VERSION ${rippled_version} - COMPATIBILITY SameMajorVersion) - -if (is_root_project) - install (TARGETS rippled RUNTIME DESTINATION bin) - set_target_properties(rippled PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON) - install ( - FILES - ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/RippleConfig.cmake - ${CMAKE_CURRENT_BINARY_DIR}/RippleConfigVersion.cmake - DESTINATION lib/cmake/ripple) - # sample configs should not overwrite existing files - # install if-not-exists workaround as suggested by - # https://cmake.org/Bug/view.php?id=12646 - install(CODE " - macro (copy_if_not_exists SRC DEST NEWNAME) - if (NOT EXISTS \"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${DEST}/\${NEWNAME}\") - file (INSTALL FILE_PERMISSIONS OWNER_READ OWNER_WRITE DESTINATION \"\${CMAKE_INSTALL_PREFIX}/\${DEST}\" FILES \"\${SRC}\" RENAME \"\${NEWNAME}\") - else () - message (\"-- Skipping : \$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/\${DEST}/\${NEWNAME}\") - endif () - endmacro() - copy_if_not_exists(\"${CMAKE_CURRENT_SOURCE_DIR}/cfg/rippled-example.cfg\" etc rippled.cfg) - copy_if_not_exists(\"${CMAKE_CURRENT_SOURCE_DIR}/cfg/validators-example.txt\" etc validators.txt) - ") -endif () diff --git a/Release.Builds/Builds/CMake/RippledInterface.cmake b/Release.Builds/Builds/CMake/RippledInterface.cmake deleted file mode 100644 index 28a531246..000000000 --- a/Release.Builds/Builds/CMake/RippledInterface.cmake +++ /dev/null @@ -1,103 +0,0 @@ -#[===================================================================[ - rippled compile options/settings via an interface library -#]===================================================================] - -add_library (opts INTERFACE) -add_library (Ripple::opts ALIAS opts) -target_compile_definitions (opts - INTERFACE - BOOST_ASIO_DISABLE_HANDLER_TYPE_REQUIREMENTS - $<$: - BOOST_ASIO_NO_DEPRECATED - BOOST_FILESYSTEM_NO_DEPRECATED - > - $<$>: - BOOST_COROUTINES_NO_DEPRECATION_WARNING - BOOST_BEAST_ALLOW_DEPRECATED - BOOST_FILESYSTEM_DEPRECATED - > - $<$:BEAST_NO_UNIT_TEST_INLINE=1> - $<$:BEAST_DONT_AUTOLINK_TO_WIN32_LIBRARIES=1> - $<$:RIPPLE_SINGLE_IO_SERVICE_THREAD=1>) -target_compile_options (opts - INTERFACE - $<$,$>:-Wsuggest-override> - $<$:-fno-omit-frame-pointer> - $<$,$>:-fprofile-arcs -ftest-coverage> - $<$,$>:-fprofile-instr-generate -fcoverage-mapping> - $<$:-pg> - $<$,$>:-p>) - -target_link_libraries (opts - INTERFACE - $<$,$>:-fprofile-arcs -ftest-coverage> - $<$,$>:-fprofile-instr-generate -fcoverage-mapping> - $<$:-pg> - $<$,$>:-p>) - -if (jemalloc) - if (static) - set(JEMALLOC_USE_STATIC ON CACHE BOOL "" FORCE) - endif () - find_package (jemalloc REQUIRED) - target_compile_definitions (opts INTERFACE PROFILE_JEMALLOC) - target_include_directories (opts SYSTEM INTERFACE ${JEMALLOC_INCLUDE_DIRS}) - target_link_libraries (opts INTERFACE ${JEMALLOC_LIBRARIES}) - get_filename_component (JEMALLOC_LIB_PATH ${JEMALLOC_LIBRARIES} DIRECTORY) - ## TODO see if we can use the BUILD_RPATH target property (is it transitive?) - set (CMAKE_BUILD_RPATH ${CMAKE_BUILD_RPATH} ${JEMALLOC_LIB_PATH}) -endif () - -if (san) - target_compile_options (opts - INTERFACE - # sanitizers recommend minimum of -O1 for reasonable performance - $<$:-O1> - ${SAN_FLAG} - -fno-omit-frame-pointer) - target_compile_definitions (opts - INTERFACE - $<$:SANITIZER=ASAN> - $<$:SANITIZER=TSAN> - $<$:SANITIZER=MSAN> - $<$:SANITIZER=UBSAN>) - target_link_libraries (opts INTERFACE ${SAN_FLAG} ${SAN_LIB}) -endif () - -#[===================================================================[ - rippled transitive library deps via an interface library -#]===================================================================] - -add_library (ripple_syslibs INTERFACE) -add_library (Ripple::syslibs ALIAS ripple_syslibs) -target_link_libraries (ripple_syslibs - INTERFACE - $<$: - legacy_stdio_definitions.lib - Shlwapi - kernel32 - user32 - gdi32 - winspool - comdlg32 - advapi32 - shell32 - ole32 - oleaut32 - uuid - odbc32 - odbccp32 - crypt32 - > - $<$>:dl> - $<$,$>>:rt>) - -if (NOT MSVC) - set (THREADS_PREFER_PTHREAD_FLAG ON) - find_package (Threads) - target_link_libraries (ripple_syslibs INTERFACE Threads::Threads) -endif () - -add_library (ripple_libs INTERFACE) -add_library (Ripple::libs ALIAS ripple_libs) -target_link_libraries (ripple_libs INTERFACE Ripple::syslibs) diff --git a/Release.Builds/Builds/CMake/RippledMultiConfig.cmake b/Release.Builds/Builds/CMake/RippledMultiConfig.cmake deleted file mode 100644 index 3bc500b53..000000000 --- a/Release.Builds/Builds/CMake/RippledMultiConfig.cmake +++ /dev/null @@ -1,39 +0,0 @@ -#[===================================================================[ - multiconfig misc -#]===================================================================] - -if (is_multiconfig) - # This code finds all source files in the src subdirectory for inclusion - # in the IDE file tree as non-compiled sources. Since this file list will - # have some overlap with files we have already added to our targets to - # be compiled, we explicitly remove any of these target source files from - # this list. - file (GLOB_RECURSE all_sources RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} - CONFIGURE_DEPENDS - src/*.* Builds/*.md docs/*.md src/*.md Builds/*.cmake) - file(GLOB md_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS - *.md) - LIST(APPEND all_sources ${md_files}) - foreach (_target secp256k1 ed25519-donna pbufs xrpl_core rippled) - get_target_property (_type ${_target} TYPE) - if(_type STREQUAL "INTERFACE_LIBRARY") - continue() - endif() - get_target_property (_src ${_target} SOURCES) - list (REMOVE_ITEM all_sources ${_src}) - endforeach () - target_sources (rippled PRIVATE ${all_sources}) - set_property ( - SOURCE ${all_sources} - APPEND - PROPERTY HEADER_FILE_ONLY true) - if (MSVC) - set_property( - DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - PROPERTY VS_STARTUP_PROJECT rippled) - endif () - - group_sources(src) - group_sources(docs) - group_sources(Builds) -endif () diff --git a/Release.Builds/Builds/CMake/RippledNIH.cmake b/Release.Builds/Builds/CMake/RippledNIH.cmake deleted file mode 100644 index 60ab3e4bf..000000000 --- a/Release.Builds/Builds/CMake/RippledNIH.cmake +++ /dev/null @@ -1,33 +0,0 @@ -#[===================================================================[ - NIH prefix path..this is where we will download - and build any ExternalProjects, and they will hopefully - survive across build directory deletion (manual cleans) -#]===================================================================] - -string (REGEX REPLACE "[ \\/%]+" "_" gen_for_path ${CMAKE_GENERATOR}) -string (TOLOWER ${gen_for_path} gen_for_path) -# HACK: trying to shorten paths for windows CI (which hits 260 MAXPATH easily) -# @see: https://issues.jenkins-ci.org/browse/JENKINS-38706?focusedCommentId=339847 -string (REPLACE "visual_studio" "vs" gen_for_path ${gen_for_path}) -if (NOT DEFINED NIH_CACHE_ROOT) - if (DEFINED ENV{NIH_CACHE_ROOT}) - set (NIH_CACHE_ROOT $ENV{NIH_CACHE_ROOT}) - else () - set (NIH_CACHE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/.nih_c") - endif () -endif () -set (nih_cache_path - "${NIH_CACHE_ROOT}/${gen_for_path}/${CMAKE_CXX_COMPILER_ID}_${CMAKE_CXX_COMPILER_VERSION}") -if (NOT is_multiconfig) - set (nih_cache_path "${nih_cache_path}/${CMAKE_BUILD_TYPE}") -endif () -file(TO_CMAKE_PATH "${nih_cache_path}" nih_cache_path) -message (STATUS "NIH-EP cache path: ${nih_cache_path}") -## two convenience variables: -set (ep_lib_prefix ${CMAKE_STATIC_LIBRARY_PREFIX}) -set (ep_lib_suffix ${CMAKE_STATIC_LIBRARY_SUFFIX}) - -# this is a setting for FetchContent and needs to be -# a cache variable -# https://cmake.org/cmake/help/latest/module/FetchContent.html#populating-the-content -set (FETCHCONTENT_BASE_DIR ${nih_cache_path} CACHE STRING "" FORCE) diff --git a/Release.Builds/Builds/CMake/RippledSanity.cmake b/Release.Builds/Builds/CMake/RippledSanity.cmake deleted file mode 100644 index 9e7fd113a..000000000 --- a/Release.Builds/Builds/CMake/RippledSanity.cmake +++ /dev/null @@ -1,86 +0,0 @@ -#[===================================================================[ - convenience variables and sanity checks -#]===================================================================] - -if (NOT ep_procs) - ProcessorCount(ep_procs) - if (ep_procs GREATER 1) - # never use more than half of cores for EP builds - math (EXPR ep_procs "${ep_procs} / 2") - message (STATUS "Using ${ep_procs} cores for ExternalProject builds.") - endif () -endif () -get_property (is_multiconfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -if (is_multiconfig STREQUAL "NOTFOUND") - if (${CMAKE_GENERATOR} STREQUAL "Xcode" OR ${CMAKE_GENERATOR} MATCHES "^Visual Studio") - set (is_multiconfig TRUE) - endif () -endif () - -set (CMAKE_CONFIGURATION_TYPES "Debug;Release" CACHE STRING "" FORCE) -if (NOT is_multiconfig) - if (NOT CMAKE_BUILD_TYPE) - message (STATUS "Build type not specified - defaulting to Release") - set (CMAKE_BUILD_TYPE Release CACHE STRING "build type" FORCE) - elseif (NOT (CMAKE_BUILD_TYPE STREQUAL Debug OR CMAKE_BUILD_TYPE STREQUAL Release)) - # for simplicity, these are the only two config types we care about. Limiting - # the build types simplifies dealing with external project builds especially - message (FATAL_ERROR " *** Only Debug or Release build types are currently supported ***") - endif () -endif () - -get_directory_property(has_parent PARENT_DIRECTORY) -if (has_parent) - set (is_root_project OFF) -else () - set (is_root_project ON) -endif () - -if ("${CMAKE_CXX_COMPILER_ID}" MATCHES ".*Clang") # both Clang and AppleClang - set (is_clang TRUE) - if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND - CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) - message (FATAL_ERROR "This project requires clang 8 or later") - endif () - # TODO min AppleClang version check ? -elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") - set (is_gcc TRUE) - if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0) - message (FATAL_ERROR "This project requires GCC 8 or later") - endif () -endif () -if (CMAKE_GENERATOR STREQUAL "Xcode") - set (is_xcode TRUE) -endif () - -if (CMAKE_SYSTEM_NAME STREQUAL "Linux") - set (is_linux TRUE) -else () - set (is_linux FALSE) -endif () - -if ("$ENV{CI}" STREQUAL "true" OR "$ENV{CONTINUOUS_INTEGRATION}" STREQUAL "true") - set (is_ci TRUE) -else () - set (is_ci FALSE) -endif () - -# check for in-source build and fail -if ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}") - message (FATAL_ERROR "Builds (in-source) are not allowed in " - "${CMAKE_CURRENT_SOURCE_DIR}. Please remove CMakeCache.txt and the CMakeFiles " - "directory from ${CMAKE_CURRENT_SOURCE_DIR} and try building in a separate directory.") -endif () - -if (MSVC AND CMAKE_GENERATOR_PLATFORM STREQUAL "Win32") - message (FATAL_ERROR "Visual Studio 32-bit build is not supported.") -endif () - -if (NOT CMAKE_SIZEOF_VOID_P EQUAL 8) - message (FATAL_ERROR "Rippled requires a 64 bit target architecture.\n" - "The most likely cause of this warning is trying to build rippled with a 32-bit OS.") -endif () - -if (APPLE AND NOT HOMEBREW) - find_program (HOMEBREW brew) -endif () diff --git a/Release.Builds/Builds/CMake/RippledSettings.cmake b/Release.Builds/Builds/CMake/RippledSettings.cmake deleted file mode 100644 index 0cdfb8e84..000000000 --- a/Release.Builds/Builds/CMake/RippledSettings.cmake +++ /dev/null @@ -1,122 +0,0 @@ -#[===================================================================[ - declare user options/settings -#]===================================================================] - -option (assert "Enables asserts, even in release builds" OFF) - -option (reporting "Build rippled with reporting mode enabled" OFF) - -option (tests "Build tests" ON) - -option (unity "Creates a build using UNITY support in cmake. This is the default" ON) -if (unity) - if (NOT is_ci) - set (CMAKE_UNITY_BUILD_BATCH_SIZE 15 CACHE STRING "") - endif () -endif () -if (is_gcc OR is_clang) - option (coverage "Generates coverage info." OFF) - option (profile "Add profiling flags" OFF) - set (coverage_test "" CACHE STRING - "On gcc & clang, the specific unit test(s) to run for coverage. Default is all tests.") - if (coverage_test AND NOT coverage) - set (coverage ON CACHE BOOL "gcc/clang only" FORCE) - endif () - option (coverage_core_only - "Include only src/ripple files when generating coverage report. \ - Set to OFF to include all sources in coverage report." - ON) - option (wextra "compile with extra gcc/clang warnings enabled" ON) -else () - set (profile OFF CACHE BOOL "gcc/clang only" FORCE) - set (coverage OFF CACHE BOOL "gcc/clang only" FORCE) - set (wextra OFF CACHE BOOL "gcc/clang only" FORCE) -endif () -if (is_linux) - option (BUILD_SHARED_LIBS "build shared ripple libraries" OFF) - option (static "link protobuf, openssl, libc++, and boost statically" ON) - option (perf "Enables flags that assist with perf recording" OFF) - option (use_gold "enables detection of gold (binutils) linker" ON) -else () - # we are not ready to allow shared-libs on windows because it would require - # export declarations. On macos it's more feasible, but static openssl - # produces odd linker errors, thus we disable shared lib builds for now. - set (BUILD_SHARED_LIBS OFF CACHE BOOL "build shared ripple libraries - OFF for win/macos" FORCE) - set (static ON CACHE BOOL "static link, linux only. ON for WIN/macos" FORCE) - set (perf OFF CACHE BOOL "perf flags, linux only" FORCE) - set (use_gold OFF CACHE BOOL "gold linker, linux only" FORCE) -endif () -if (is_clang) - option (use_lld "enables detection of lld linker" ON) -else () - set (use_lld OFF CACHE BOOL "try lld linker, clang only" FORCE) -endif () -option (jemalloc "Enables jemalloc for heap profiling" OFF) -option (werr "treat warnings as errors" OFF) -option (local_protobuf - "Force a local build of protobuf instead of looking for an installed version." OFF) -option (local_grpc - "Force a local build of gRPC instead of looking for an installed version." OFF) - -# this one is a string and therefore can't be an option -set (san "" CACHE STRING "On gcc & clang, add sanitizer instrumentation") -set_property (CACHE san PROPERTY STRINGS ";undefined;memory;address;thread") -if (san) - string (TOLOWER ${san} san) - set (SAN_FLAG "-fsanitize=${san}") - set (SAN_LIB "") - if (is_gcc) - if (san STREQUAL "address") - set (SAN_LIB "asan") - elseif (san STREQUAL "thread") - set (SAN_LIB "tsan") - elseif (san STREQUAL "memory") - set (SAN_LIB "msan") - elseif (san STREQUAL "undefined") - set (SAN_LIB "ubsan") - endif () - endif () - set (_saved_CRL ${CMAKE_REQUIRED_LIBRARIES}) - set (CMAKE_REQUIRED_LIBRARIES "${SAN_FLAG};${SAN_LIB}") - check_cxx_compiler_flag (${SAN_FLAG} COMPILER_SUPPORTS_SAN) - set (CMAKE_REQUIRED_LIBRARIES ${_saved_CRL}) - if (NOT COMPILER_SUPPORTS_SAN) - message (FATAL_ERROR "${san} sanitizer does not seem to be supported by your compiler") - endif () -endif () -set (container_label "" CACHE STRING "tag to use for package building containers") -option (packages_only - "ONLY generate package building targets. This is special use-case and almost \ - certainly not what you want. Use with caution as you won't be able to build \ - any compiled targets locally." OFF) -option (have_package_container - "Sometimes you already have the tagged container you want to use for package \ - building and you don't want docker to rebuild it. This flag will detach the \ - dependency of the package build from the container build. It's an advanced \ - use case and most likely you should not be touching this flag." OFF) - -# the remaining options are obscure and rarely used -option (beast_no_unit_test_inline - "Prevents unit test definitions from being inserted into global table" - OFF) -option (single_io_service_thread - "Restricts the number of threads calling io_service::run to one. \ - This can be useful when debugging." - OFF) -option (boost_show_deprecated - "Allow boost to fail on deprecated usage. Only useful if you're trying\ - to find deprecated calls." - OFF) -option (beast_hashers - "Use local implementations for sha/ripemd hashes (experimental, not recommended)" - OFF) - -if (WIN32) - option (beast_disable_autolink "Disables autolinking of system libraries on WIN32" OFF) -else () - set (beast_disable_autolink OFF CACHE BOOL "WIN32 only" FORCE) -endif () -if (coverage) - message (STATUS "coverage build requested - forcing Debug build") - set (CMAKE_BUILD_TYPE Debug CACHE STRING "build type" FORCE) -endif () diff --git a/Release.Builds/Builds/CMake/RippledValidatorKeys.cmake b/Release.Builds/Builds/CMake/RippledValidatorKeys.cmake deleted file mode 100644 index dfd56f9f1..000000000 --- a/Release.Builds/Builds/CMake/RippledValidatorKeys.cmake +++ /dev/null @@ -1,22 +0,0 @@ -option (validator_keys "Enables building of validator-keys-tool as a separate target (imported via FetchContent)" OFF) - -if (validator_keys) - git_branch (current_branch) - # default to tracking VK develop branch unless we are on master/release - if (NOT (current_branch STREQUAL "master" OR current_branch STREQUAL "release")) - set (current_branch "develop") - endif () - message (STATUS "tracking ValidatorKeys branch: ${current_branch}") - - FetchContent_Declare ( - validator_keys_src - GIT_REPOSITORY https://github.com/ripple/validator-keys-tool.git - GIT_TAG "${current_branch}" - ) - FetchContent_GetProperties (validator_keys_src) - if (NOT validator_keys_src_POPULATED) - message (STATUS "Pausing to download ValidatorKeys...") - FetchContent_Populate (validator_keys_src) - endif () - add_subdirectory (${validator_keys_src_SOURCE_DIR} ${CMAKE_BINARY_DIR}/validator-keys) -endif () diff --git a/Release.Builds/Builds/CMake/RippledVersion.cmake b/Release.Builds/Builds/CMake/RippledVersion.cmake deleted file mode 100644 index 936852af5..000000000 --- a/Release.Builds/Builds/CMake/RippledVersion.cmake +++ /dev/null @@ -1,15 +0,0 @@ -#[===================================================================[ - read version from source -#]===================================================================] - -file (STRINGS src/ripple/protocol/impl/BuildInfo.cpp BUILD_INFO) -foreach (line_ ${BUILD_INFO}) - if (line_ MATCHES "versionString[ ]*=[ ]*\"(.+)\"") - set (rippled_version ${CMAKE_MATCH_1}) - endif () -endforeach () -if (rippled_version) - message (STATUS "rippled version: ${rippled_version}") -else () - message (FATAL_ERROR "unable to determine rippled version") -endif () diff --git a/Release.Builds/Builds/CMake/deps/Boost.cmake b/Release.Builds/Builds/CMake/deps/Boost.cmake deleted file mode 100644 index 5038234bc..000000000 --- a/Release.Builds/Builds/CMake/deps/Boost.cmake +++ /dev/null @@ -1,96 +0,0 @@ -#[===================================================================[ - NIH dep: boost -#]===================================================================] - -if((NOT DEFINED BOOST_ROOT) AND(DEFINED ENV{BOOST_ROOT})) - set(BOOST_ROOT $ENV{BOOST_ROOT}) -endif() -file(TO_CMAKE_PATH "${BOOST_ROOT}" BOOST_ROOT) -if(WIN32 OR CYGWIN) - # Workaround for MSVC having two boost versions - x86 and x64 on same PC in stage folders - if(DEFINED BOOST_ROOT) - if(IS_DIRECTORY ${BOOST_ROOT}/stage64/lib) - set(BOOST_LIBRARYDIR ${BOOST_ROOT}/stage64/lib) - elseif(IS_DIRECTORY ${BOOST_ROOT}/stage/lib) - set(BOOST_LIBRARYDIR ${BOOST_ROOT}/stage/lib) - elseif(IS_DIRECTORY ${BOOST_ROOT}/lib) - set(BOOST_LIBRARYDIR ${BOOST_ROOT}/lib) - else() - message(WARNING "Did not find expected boost library dir. " - "Defaulting to ${BOOST_ROOT}") - set(BOOST_LIBRARYDIR ${BOOST_ROOT}) - endif() - endif() -endif() -message(STATUS "BOOST_ROOT: ${BOOST_ROOT}") -message(STATUS "BOOST_LIBRARYDIR: ${BOOST_LIBRARYDIR}") - -# uncomment the following as needed to debug FindBoost issues: -#set(Boost_DEBUG ON) - -#[=========================================================[ - boost dynamic libraries don't trivially support @rpath - linking right now (cmake's default), so just force - static linking for macos, or if requested on linux by flag -#]=========================================================] -if(static) - set(Boost_USE_STATIC_LIBS ON) -endif() -set(Boost_USE_MULTITHREADED ON) -if(static AND NOT APPLE) - set(Boost_USE_STATIC_RUNTIME ON) -else() - set(Boost_USE_STATIC_RUNTIME OFF) -endif() -# TBD: -# Boost_USE_DEBUG_RUNTIME: When ON, uses Boost libraries linked against the -find_package(Boost 1.86 REQUIRED - COMPONENTS - chrono - container - context - coroutine - date_time - filesystem - program_options - regex - system - thread) - -add_library(ripple_boost INTERFACE) -add_library(Ripple::boost ALIAS ripple_boost) -if(is_xcode) - target_include_directories(ripple_boost BEFORE INTERFACE ${Boost_INCLUDE_DIRS}) - target_compile_options(ripple_boost INTERFACE --system-header-prefix="boost/") -else() - target_include_directories(ripple_boost SYSTEM BEFORE INTERFACE ${Boost_INCLUDE_DIRS}) -endif() - -target_link_libraries(ripple_boost - INTERFACE - Boost::boost - Boost::chrono - Boost::container - Boost::coroutine - Boost::date_time - Boost::filesystem - Boost::program_options - Boost::regex - Boost::system - Boost::thread) -if(Boost_COMPILER) - target_link_libraries(ripple_boost INTERFACE Boost::disable_autolinking) -endif() -if(san AND is_clang) - # TODO: gcc does not support -fsanitize-blacklist...can we do something else - # for gcc ? - if(NOT Boost_INCLUDE_DIRS AND TARGET Boost::headers) - get_target_property(Boost_INCLUDE_DIRS Boost::headers INTERFACE_INCLUDE_DIRECTORIES) - endif() - message(STATUS "Adding [${Boost_INCLUDE_DIRS}] to sanitizer blacklist") - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt "src:${Boost_INCLUDE_DIRS}/*") - target_compile_options(opts - INTERFACE - # ignore boost headers for sanitizing - -fsanitize-blacklist=${CMAKE_CURRENT_BINARY_DIR}/san_bl.txt) -endif() diff --git a/Release.Builds/Builds/CMake/deps/Protobuf.cmake b/Release.Builds/Builds/CMake/deps/Protobuf.cmake deleted file mode 100644 index 35d5b9f0f..000000000 --- a/Release.Builds/Builds/CMake/deps/Protobuf.cmake +++ /dev/null @@ -1,155 +0,0 @@ -#[===================================================================[ - import protobuf (lib and compiler) and create a lib - from our proto message definitions. If the system protobuf - is not found, fallback on EP to download and build a version - from official source. -#]===================================================================] - -if (static) - set (Protobuf_USE_STATIC_LIBS ON) -endif () -find_package (Protobuf 3.8) -if (is_multiconfig) - set(protobuf_protoc_lib ${Protobuf_PROTOC_LIBRARIES}) -else () - string(TOUPPER ${CMAKE_BUILD_TYPE} upper_cmake_build_type) - set(protobuf_protoc_lib ${Protobuf_PROTOC_LIBRARY_${upper_cmake_build_type}}) -endif () -if (local_protobuf OR NOT (Protobuf_FOUND AND Protobuf_PROTOC_EXECUTABLE AND protobuf_protoc_lib)) - include (GNUInstallDirs) - message (STATUS "using local protobuf build.") - set(protobuf_reqs Protobuf_PROTOC_EXECUTABLE protobuf_protoc_lib) - foreach(lib ${protobuf_reqs}) - if(NOT ${lib}) - message(STATUS "Couldn't find ${lib}") - endif() - endforeach() - if (WIN32) - # protobuf prepends lib even on windows - set (pbuf_lib_pre "lib") - else () - set (pbuf_lib_pre ${ep_lib_prefix}) - endif () - # for the external project build of protobuf, we currently ignore the - # static option and always build static libs here. This is consistent - # with our other EP builds. Dynamic libs in an EP would add complexity - # because we'd need to get them into the runtime path, and probably - # install them. - ExternalProject_Add (protobuf_src - PREFIX ${nih_cache_path} - GIT_REPOSITORY https://github.com/protocolbuffers/protobuf.git - GIT_TAG v3.8.0 - SOURCE_SUBDIR cmake - CMAKE_ARGS - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - -DCMAKE_INSTALL_PREFIX=/_installed_ - -Dprotobuf_BUILD_TESTS=OFF - -Dprotobuf_BUILD_EXAMPLES=OFF - -Dprotobuf_BUILD_PROTOC_BINARIES=ON - -Dprotobuf_MSVC_STATIC_RUNTIME=ON - -DBUILD_SHARED_LIBS=OFF - -Dprotobuf_BUILD_SHARED_LIBS=OFF - -DCMAKE_DEBUG_POSTFIX=_d - -Dprotobuf_DEBUG_POSTFIX=_d - -Dprotobuf_WITH_ZLIB=$,ON,OFF> - $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> - $<$:-DCMAKE_UNITY_BUILD=ON}> - $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> - $<$: - "-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -EHa -MP" - > - LOG_BUILD ON - LOG_CONFIGURE ON - BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --config $ - --parallel ${ep_procs} - TEST_COMMAND "" - INSTALL_COMMAND - ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $ --target install - BUILD_BYPRODUCTS - /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf${ep_lib_suffix} - /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf_d${ep_lib_suffix} - /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc${ep_lib_suffix} - /_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc_d${ep_lib_suffix} - /_installed_/bin/protoc${CMAKE_EXECUTABLE_SUFFIX} - ) - ExternalProject_Get_Property (protobuf_src BINARY_DIR) - ExternalProject_Get_Property (protobuf_src SOURCE_DIR) - if (CMAKE_VERBOSE_MAKEFILE) - print_ep_logs (protobuf_src) - endif () - exclude_if_included (protobuf_src) - - if (NOT TARGET protobuf::libprotobuf) - add_library (protobuf::libprotobuf STATIC IMPORTED GLOBAL) - endif () - file (MAKE_DIRECTORY ${BINARY_DIR}/_installed_/include) - set_target_properties (protobuf::libprotobuf PROPERTIES - IMPORTED_LOCATION_DEBUG - ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf_d${ep_lib_suffix} - IMPORTED_LOCATION_RELEASE - ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf${ep_lib_suffix} - INTERFACE_INCLUDE_DIRECTORIES - ${BINARY_DIR}/_installed_/include) - add_dependencies (protobuf::libprotobuf protobuf_src) - exclude_if_included (protobuf::libprotobuf) - - if (NOT TARGET protobuf::libprotoc) - add_library (protobuf::libprotoc STATIC IMPORTED GLOBAL) - endif () - set_target_properties (protobuf::libprotoc PROPERTIES - IMPORTED_LOCATION_DEBUG - ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc_d${ep_lib_suffix} - IMPORTED_LOCATION_RELEASE - ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc${ep_lib_suffix} - INTERFACE_INCLUDE_DIRECTORIES - ${BINARY_DIR}/_installed_/include) - add_dependencies (protobuf::libprotoc protobuf_src) - exclude_if_included (protobuf::libprotoc) - - if (NOT TARGET protobuf::protoc) - add_executable (protobuf::protoc IMPORTED) - exclude_if_included (protobuf::protoc) - endif () - set_target_properties (protobuf::protoc PROPERTIES - IMPORTED_LOCATION "${BINARY_DIR}/_installed_/bin/protoc${CMAKE_EXECUTABLE_SUFFIX}") - add_dependencies (protobuf::protoc protobuf_src) -else () - if (NOT TARGET protobuf::protoc) - if (EXISTS "${Protobuf_PROTOC_EXECUTABLE}") - add_executable (protobuf::protoc IMPORTED) - set_target_properties (protobuf::protoc PROPERTIES - IMPORTED_LOCATION "${Protobuf_PROTOC_EXECUTABLE}") - else () - message (FATAL_ERROR "Protobuf import failed") - endif () - endif () -endif () - -file (MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/proto_gen) -set (save_CBD ${CMAKE_CURRENT_BINARY_DIR}) -set (CMAKE_CURRENT_BINARY_DIR ${CMAKE_BINARY_DIR}/proto_gen) -protobuf_generate_cpp ( - PROTO_SRCS - PROTO_HDRS - src/ripple/proto/ripple.proto) -set (CMAKE_CURRENT_BINARY_DIR ${save_CBD}) - -add_library (pbufs STATIC ${PROTO_SRCS} ${PROTO_HDRS}) - -target_include_directories (pbufs PRIVATE src) -target_include_directories (pbufs - SYSTEM PUBLIC ${CMAKE_BINARY_DIR}/proto_gen) -target_link_libraries (pbufs protobuf::libprotobuf) -target_compile_options (pbufs - PUBLIC - $<$: - --system-header-prefix="google/protobuf" - -Wno-deprecated-dynamic-exception-spec - >) -add_library (Ripple::pbufs ALIAS pbufs) -target_link_libraries (ripple_libs INTERFACE Ripple::pbufs) -exclude_if_included (pbufs) diff --git a/Release.Builds/Builds/CMake/deps/WasmEdge.cmake b/Release.Builds/Builds/CMake/deps/WasmEdge.cmake deleted file mode 100644 index 56f145f1d..000000000 --- a/Release.Builds/Builds/CMake/deps/WasmEdge.cmake +++ /dev/null @@ -1,84 +0,0 @@ -#[===================================================================[ - NIH dep: wasmedge: web assembly runtime for hooks. -#]===================================================================] - -find_package(Curses) -if(CURSES_FOUND) - include_directories(${CURSES_INCLUDE_DIR}) - target_link_libraries(ripple_libs INTERFACE ${CURSES_LIBRARY}) -else() - message(WARNING "CURSES library not found... (only important for mac builds)") -endif() - - -find_package(LLVM REQUIRED CONFIG) -message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}") -message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}") -ExternalProject_Add (wasmedge_src - PREFIX ${nih_cache_path} - GIT_REPOSITORY https://github.com/WasmEdge/WasmEdge.git - GIT_TAG 0.11.2 - CMAKE_ARGS - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> - -DCMAKE_DEBUG_POSTFIX=_d - -DWASMEDGE_BUILD_SHARED_LIB=OFF - -DWASMEDGE_BUILD_STATIC_LIB=ON - -DWASMEDGE_BUILD_AOT_RUNTIME=ON - -DWASMEDGE_FORCE_DISABLE_LTO=ON - -DWASMEDGE_LINK_LLVM_STATIC=ON - -DWASMEDGE_LINK_TOOLS_STATIC=ON - -DWASMEDGE_BUILD_PLUGINS=OFF - -DCMAKE_POSITION_INDEPENDENT_CODE=ON - -DLLVM_DIR=${LLVM_DIR} - -DLLVM_LIBRARY_DIR=${LLVM_LIBRARY_DIR} - -DLLVM_ENABLE_TERMINFO=OFF - $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> - $<$: - "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP -march=native" - "-DCMAKE_C_FLAGS_DEBUG=-MTd" - "-DCMAKE_C_FLAGS_RELEASE=-MT" - > - LOG_CONFIGURE ON - LOG_BUILD ON - LOG_CONFIGURE ON - COMMAND - pwd - BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --config $ - $<$:--parallel ${ep_procs}> - TEST_COMMAND "" - INSTALL_COMMAND "" - BUILD_BYPRODUCTS - /lib/api/libwasmedge.a -) -add_library (wasmedge STATIC IMPORTED GLOBAL) -ExternalProject_Get_Property (wasmedge_src BINARY_DIR) -ExternalProject_Get_Property (wasmedge_src SOURCE_DIR) -set (wasmedge_src_BINARY_DIR "${BINARY_DIR}") -add_dependencies (wasmedge wasmedge_src) -execute_process( - COMMAND - mkdir -p "${wasmedge_src_BINARY_DIR}/include/api" -) -set_target_properties (wasmedge PROPERTIES - IMPORTED_LOCATION_DEBUG - "${wasmedge_src_BINARY_DIR}/lib/api/libwasmedge.a" - IMPORTED_LOCATION_RELEASE - "${wasmedge_src_BINARY_DIR}/lib/api/libwasmedge.a" - INTERFACE_INCLUDE_DIRECTORIES - "${wasmedge_src_BINARY_DIR}/include/api/" -) -target_link_libraries (ripple_libs INTERFACE wasmedge) -#RH NOTE: some compilers / versions of some libraries need these, most don't - -find_library(XAR_LIBRARY NAMES xar) -if(XAR_LIBRARY) - target_link_libraries(ripple_libs INTERFACE ${XAR_LIBRARY}) -else() - message(WARNING "xar library not found... (only important for mac builds)") -endif() -add_library (NIH::WasmEdge ALIAS wasmedge) diff --git a/Release.Builds/Builds/CMake/deps/gRPC.cmake b/Release.Builds/Builds/CMake/deps/gRPC.cmake deleted file mode 100644 index 8dd094175..000000000 --- a/Release.Builds/Builds/CMake/deps/gRPC.cmake +++ /dev/null @@ -1,364 +0,0 @@ - -# currently linking to unsecure versions...if we switch, we'll -# need to add ssl as a link dependency to the grpc targets -option (use_secure_grpc "use TLS version of grpc libs." OFF) -if (use_secure_grpc) - set (grpc_suffix "") -else () - set (grpc_suffix "_unsecure") -endif () - -find_package (gRPC 1.23 CONFIG QUIET) -if (TARGET gRPC::gpr AND NOT local_grpc) - get_target_property (_grpc_l gRPC::gpr IMPORTED_LOCATION_DEBUG) - if (NOT _grpc_l) - get_target_property (_grpc_l gRPC::gpr IMPORTED_LOCATION_RELEASE) - endif () - if (NOT _grpc_l) - get_target_property (_grpc_l gRPC::gpr IMPORTED_LOCATION) - endif () - message (STATUS "Found cmake config for gRPC. Using ${_grpc_l}.") -else () - find_package (PkgConfig QUIET) - if (PKG_CONFIG_FOUND) - pkg_check_modules (grpc QUIET "grpc${grpc_suffix}>=1.25" "grpc++${grpc_suffix}" gpr) - endif () - - if (grpc_FOUND) - message (STATUS "Found gRPC using pkg-config. Using ${grpc_gpr_PREFIX}.") - endif () - - add_executable (gRPC::grpc_cpp_plugin IMPORTED) - exclude_if_included (gRPC::grpc_cpp_plugin) - - if (grpc_FOUND AND NOT local_grpc) - # use installed grpc (via pkg-config) - macro (add_imported_grpc libname_) - if (static) - set (_search "${CMAKE_STATIC_LIBRARY_PREFIX}${libname_}${CMAKE_STATIC_LIBRARY_SUFFIX}") - else () - set (_search "${CMAKE_SHARED_LIBRARY_PREFIX}${libname_}${CMAKE_SHARED_LIBRARY_SUFFIX}") - endif() - find_library(_found_${libname_} - NAMES ${_search} - HINTS ${grpc_LIBRARY_DIRS}) - if (_found_${libname_}) - message (STATUS "importing ${libname_} as ${_found_${libname_}}") - else () - message (FATAL_ERROR "using pkg-config for grpc, can't find ${_search}") - endif () - add_library ("gRPC::${libname_}" STATIC IMPORTED GLOBAL) - set_target_properties ("gRPC::${libname_}" PROPERTIES IMPORTED_LOCATION ${_found_${libname_}}) - if (grpc_INCLUDE_DIRS) - set_target_properties ("gRPC::${libname_}" PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${grpc_INCLUDE_DIRS}) - endif () - target_link_libraries (ripple_libs INTERFACE "gRPC::${libname_}") - exclude_if_included ("gRPC::${libname_}") - endmacro () - - set_target_properties (gRPC::grpc_cpp_plugin PROPERTIES - IMPORTED_LOCATION "${grpc_gpr_PREFIX}/bin/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX}") - - pkg_check_modules (cares QUIET libcares) - if (cares_FOUND) - if (static) - set (_search "${CMAKE_STATIC_LIBRARY_PREFIX}cares${CMAKE_STATIC_LIBRARY_SUFFIX}") - set (_prefix cares_STATIC) - set (_static STATIC) - else () - set (_search "${CMAKE_SHARED_LIBRARY_PREFIX}cares${CMAKE_SHARED_LIBRARY_SUFFIX}") - set (_prefix cares) - set (_static) - endif() - find_library(_location NAMES ${_search} HINTS ${cares_LIBRARY_DIRS}) - if (NOT _location) - message (FATAL_ERROR "using pkg-config for grpc, can't find c-ares") - endif () - add_library (c-ares::cares ${_static} IMPORTED GLOBAL) - set_target_properties (c-ares::cares PROPERTIES - IMPORTED_LOCATION ${_location} - INTERFACE_INCLUDE_DIRECTORIES "${${_prefix}_INCLUDE_DIRS}" - INTERFACE_LINK_OPTIONS "${${_prefix}_LDFLAGS}" - ) - exclude_if_included (c-ares::cares) - else () - message (FATAL_ERROR "using pkg-config for grpc, can't find c-ares") - endif () - else () - #[===========================[ - c-ares (grpc requires) - #]===========================] - ExternalProject_Add (c-ares_src - PREFIX ${nih_cache_path} - GIT_REPOSITORY https://github.com/c-ares/c-ares.git - GIT_TAG cares-1_15_0 - CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> - -DCMAKE_DEBUG_POSTFIX=_d - $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> - -DCMAKE_INSTALL_PREFIX=/_installed_ - -DCARES_SHARED=OFF - -DCARES_STATIC=ON - -DCARES_STATIC_PIC=ON - -DCARES_INSTALL=ON - -DCARES_MSVC_STATIC_RUNTIME=ON - $<$: - "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP" - > - LOG_BUILD ON - LOG_CONFIGURE ON - BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --config $ - --parallel ${ep_procs} - TEST_COMMAND "" - INSTALL_COMMAND - ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $ --target install - BUILD_BYPRODUCTS - /_installed_/lib/${ep_lib_prefix}cares${ep_lib_suffix} - /_installed_/lib/${ep_lib_prefix}cares_d${ep_lib_suffix} - ) - exclude_if_included (c-ares_src) - ExternalProject_Get_Property (c-ares_src BINARY_DIR) - set (cares_binary_dir "${BINARY_DIR}") - - add_library (c-ares::cares STATIC IMPORTED GLOBAL) - file (MAKE_DIRECTORY ${BINARY_DIR}/_installed_/include) - set_target_properties (c-ares::cares PROPERTIES - IMPORTED_LOCATION_DEBUG - ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}cares_d${ep_lib_suffix} - IMPORTED_LOCATION_RELEASE - ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}cares${ep_lib_suffix} - INTERFACE_INCLUDE_DIRECTORIES - ${BINARY_DIR}/_installed_/include) - add_dependencies (c-ares::cares c-ares_src) - exclude_if_included (c-ares::cares) - - if (NOT has_zlib) - #[===========================[ - zlib (grpc requires) - #]===========================] - if (MSVC) - set (zlib_debug_postfix "d") # zlib cmake sets this internally for MSVC, so we really don't have a choice - set (zlib_base "zlibstatic") - else () - set (zlib_debug_postfix "_d") - set (zlib_base "z") - endif () - ExternalProject_Add (zlib_src - PREFIX ${nih_cache_path} - GIT_REPOSITORY https://github.com/madler/zlib.git - GIT_TAG v1.2.11 - CMAKE_ARGS - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> - -DCMAKE_DEBUG_POSTFIX=${zlib_debug_postfix} - $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> - -DCMAKE_INSTALL_PREFIX=/_installed_ - -DBUILD_SHARED_LIBS=OFF - $<$: - "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP" - "-DCMAKE_C_FLAGS_DEBUG=-MTd" - "-DCMAKE_C_FLAGS_RELEASE=-MT" - > - LOG_BUILD ON - LOG_CONFIGURE ON - BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --config $ - --parallel ${ep_procs} - TEST_COMMAND "" - INSTALL_COMMAND - ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $ --target install - BUILD_BYPRODUCTS - /_installed_/lib/${ep_lib_prefix}${zlib_base}${ep_lib_suffix} - /_installed_/lib/${ep_lib_prefix}${zlib_base}${zlib_debug_postfix}${ep_lib_suffix} - ) - exclude_if_included (zlib_src) - ExternalProject_Get_Property (zlib_src BINARY_DIR) - set (zlib_binary_dir "${BINARY_DIR}") - - add_library (ZLIB::ZLIB STATIC IMPORTED GLOBAL) - file (MAKE_DIRECTORY ${BINARY_DIR}/_installed_/include) - set_target_properties (ZLIB::ZLIB PROPERTIES - IMPORTED_LOCATION_DEBUG - ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}${zlib_base}${zlib_debug_postfix}${ep_lib_suffix} - IMPORTED_LOCATION_RELEASE - ${BINARY_DIR}/_installed_/lib/${ep_lib_prefix}${zlib_base}${ep_lib_suffix} - INTERFACE_INCLUDE_DIRECTORIES - ${BINARY_DIR}/_installed_/include) - add_dependencies (ZLIB::ZLIB zlib_src) - exclude_if_included (ZLIB::ZLIB) - endif () - - #[===========================[ - grpc - #]===========================] - ExternalProject_Add (grpc_src - PREFIX ${nih_cache_path} - GIT_REPOSITORY https://github.com/grpc/grpc.git - GIT_TAG v1.25.0 - CMAKE_ARGS - -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} - -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} - $<$:-DCMAKE_VERBOSE_MAKEFILE=ON> - $<$:-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}> - $<$:-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}> - $<$:-DCMAKE_UNITY_BUILD=ON}> - -DCMAKE_DEBUG_POSTFIX=_d - $<$>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}> - -DgRPC_BUILD_TESTS=OFF - -DgRPC_BENCHMARK_PROVIDER="" - -DgRPC_BUILD_CSHARP_EXT=OFF - -DgRPC_MSVC_STATIC_RUNTIME=ON - -DgRPC_INSTALL=OFF - -DgRPC_CARES_PROVIDER=package - -Dc-ares_DIR=${cares_binary_dir}/_installed_/lib/cmake/c-ares - -DgRPC_SSL_PROVIDER=package - -DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} - -DgRPC_PROTOBUF_PROVIDER=package - -DProtobuf_USE_STATIC_LIBS=$,$>>,OFF,ON> - -DProtobuf_INCLUDE_DIR=$,:_:> - -DProtobuf_LIBRARY=$,$,$> - -DProtobuf_PROTOC_LIBRARY=$,$,$> - -DProtobuf_PROTOC_EXECUTABLE=$ - -DgRPC_ZLIB_PROVIDER=package - $<$>:-DZLIB_ROOT=${zlib_binary_dir}/_installed_> - $<$: - "-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -EHa -MP" - "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP" - > - LOG_BUILD ON - LOG_CONFIGURE ON - BUILD_COMMAND - ${CMAKE_COMMAND} - --build . - --config $ - --parallel ${ep_procs} - $<$: - COMMAND - ${CMAKE_COMMAND} -E copy - /$/${ep_lib_prefix}grpc${grpc_suffix}$<$:_d>${ep_lib_suffix} - /$/${ep_lib_prefix}grpc++${grpc_suffix}$<$:_d>${ep_lib_suffix} - /$/${ep_lib_prefix}address_sorting$<$:_d>${ep_lib_suffix} - /$/${ep_lib_prefix}gpr$<$:_d>${ep_lib_suffix} - /$/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX} - - > - LIST_SEPARATOR :_: - TEST_COMMAND "" - INSTALL_COMMAND "" - DEPENDS c-ares_src - BUILD_BYPRODUCTS - /${ep_lib_prefix}grpc${grpc_suffix}${ep_lib_suffix} - /${ep_lib_prefix}grpc${grpc_suffix}_d${ep_lib_suffix} - /${ep_lib_prefix}grpc++${grpc_suffix}${ep_lib_suffix} - /${ep_lib_prefix}grpc++${grpc_suffix}_d${ep_lib_suffix} - /${ep_lib_prefix}address_sorting${ep_lib_suffix} - /${ep_lib_prefix}address_sorting_d${ep_lib_suffix} - /${ep_lib_prefix}gpr${ep_lib_suffix} - /${ep_lib_prefix}gpr_d${ep_lib_suffix} - /grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX} - ) - if (TARGET protobuf_src) - ExternalProject_Add_StepDependencies(grpc_src build protobuf_src) - endif () - exclude_if_included (grpc_src) - ExternalProject_Get_Property (grpc_src BINARY_DIR) - ExternalProject_Get_Property (grpc_src SOURCE_DIR) - set (grpc_binary_dir "${BINARY_DIR}") - set (grpc_source_dir "${SOURCE_DIR}") - if (CMAKE_VERBOSE_MAKEFILE) - print_ep_logs (grpc_src) - endif () - file (MAKE_DIRECTORY ${SOURCE_DIR}/include) - - macro (add_imported_grpc libname_) - add_library ("gRPC::${libname_}" STATIC IMPORTED GLOBAL) - set_target_properties ("gRPC::${libname_}" PROPERTIES - IMPORTED_LOCATION_DEBUG - ${grpc_binary_dir}/${ep_lib_prefix}${libname_}_d${ep_lib_suffix} - IMPORTED_LOCATION_RELEASE - ${grpc_binary_dir}/${ep_lib_prefix}${libname_}${ep_lib_suffix} - INTERFACE_INCLUDE_DIRECTORIES - ${grpc_source_dir}/include) - add_dependencies ("gRPC::${libname_}" grpc_src) - target_link_libraries (ripple_libs INTERFACE "gRPC::${libname_}") - exclude_if_included ("gRPC::${libname_}") - endmacro () - - set_target_properties (gRPC::grpc_cpp_plugin PROPERTIES - IMPORTED_LOCATION "${grpc_binary_dir}/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX}") - add_dependencies (gRPC::grpc_cpp_plugin grpc_src) - endif () - - add_imported_grpc (gpr) - add_imported_grpc ("grpc${grpc_suffix}") - add_imported_grpc ("grpc++${grpc_suffix}") - add_imported_grpc (address_sorting) - - target_link_libraries ("gRPC::grpc${grpc_suffix}" INTERFACE c-ares::cares gRPC::gpr gRPC::address_sorting ZLIB::ZLIB) - target_link_libraries ("gRPC::grpc++${grpc_suffix}" INTERFACE "gRPC::grpc${grpc_suffix}" gRPC::gpr) -endif () - -#[=================================[ - generate protobuf sources for - grpc defs and bundle into a - static lib -#]=================================] -set (GRPC_GEN_DIR "${CMAKE_BINARY_DIR}/proto_gen_grpc") -file (MAKE_DIRECTORY ${GRPC_GEN_DIR}) -set (GRPC_PROTO_SRCS) -set (GRPC_PROTO_HDRS) -set (GRPC_PROTO_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/src/ripple/proto/org") -file(GLOB_RECURSE GRPC_DEFINITION_FILES LIST_DIRECTORIES false "${GRPC_PROTO_ROOT}/*.proto") -foreach(file ${GRPC_DEFINITION_FILES}) - get_filename_component(_abs_file ${file} ABSOLUTE) - get_filename_component(_abs_dir ${_abs_file} DIRECTORY) - get_filename_component(_basename ${file} NAME_WE) - get_filename_component(_proto_inc ${GRPC_PROTO_ROOT} DIRECTORY) # updir one level - file(RELATIVE_PATH _rel_root_file ${_proto_inc} ${_abs_file}) - get_filename_component(_rel_root_dir ${_rel_root_file} DIRECTORY) - file(RELATIVE_PATH _rel_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_abs_dir}) - - set (src_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.cc") - set (src_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.cc") - set (hdr_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.h") - set (hdr_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.h") - add_custom_command( - OUTPUT ${src_1} ${src_2} ${hdr_1} ${hdr_2} - COMMAND protobuf::protoc - ARGS --grpc_out=${GRPC_GEN_DIR} - --cpp_out=${GRPC_GEN_DIR} - --plugin=protoc-gen-grpc=$ - -I ${_proto_inc} -I ${_rel_dir} - ${_abs_file} - DEPENDS ${_abs_file} protobuf::protoc gRPC::grpc_cpp_plugin - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - COMMENT "Running gRPC C++ protocol buffer compiler on ${file}" - VERBATIM) - set_source_files_properties(${src_1} ${src_2} ${hdr_1} ${hdr_2} PROPERTIES GENERATED TRUE) - list(APPEND GRPC_PROTO_SRCS ${src_1} ${src_2}) - list(APPEND GRPC_PROTO_HDRS ${hdr_1} ${hdr_2}) -endforeach() - -add_library (grpc_pbufs STATIC ${GRPC_PROTO_SRCS} ${GRPC_PROTO_HDRS}) -#target_include_directories (grpc_pbufs PRIVATE src) -target_include_directories (grpc_pbufs SYSTEM PUBLIC ${GRPC_GEN_DIR}) -target_link_libraries (grpc_pbufs protobuf::libprotobuf "gRPC::grpc++${grpc_suffix}") -target_compile_options (grpc_pbufs - PRIVATE - $<$:-wd4065> - $<$>:-Wno-deprecated-declarations> - PUBLIC - $<$:-wd4996> - $<$: - --system-header-prefix="google/protobuf" - -Wno-deprecated-dynamic-exception-spec - >) -add_library (Ripple::grpc_pbufs ALIAS grpc_pbufs) -target_link_libraries (ripple_libs INTERFACE Ripple::grpc_pbufs) -exclude_if_included (grpc_pbufs) diff --git a/Release.Builds/Builds/CMake/echo_file.cmake b/Release.Builds/Builds/CMake/echo_file.cmake deleted file mode 100644 index 8a593a789..000000000 --- a/Release.Builds/Builds/CMake/echo_file.cmake +++ /dev/null @@ -1,17 +0,0 @@ -#[=========================================================[ - This is a CMake script file that is used to write - the contents of a file to stdout (using the cmake - echo command). The input file is passed via the - IN_FILE variable. -#]=========================================================] - -if (EXISTS ${IN_FILE}) - file (READ ${IN_FILE} contents) - ## only print files that actually have some text in them - if (contents MATCHES "[a-z0-9A-Z]+") - execute_process( - COMMAND - ${CMAKE_COMMAND} -E echo "${contents}") - endif () -endif () - diff --git a/Release.Builds/Builds/README.md b/Release.Builds/Builds/README.md deleted file mode 100644 index e99ba8c9a..000000000 --- a/Release.Builds/Builds/README.md +++ /dev/null @@ -1 +0,0 @@ -[Please see the BUILD instructions here](../BUILD.md) diff --git a/Release.Builds/Builds/levelization/README.md b/Release.Builds/Builds/levelization/README.md deleted file mode 100644 index 4ff3a5423..000000000 --- a/Release.Builds/Builds/levelization/README.md +++ /dev/null @@ -1,114 +0,0 @@ -# Levelization - -Levelization is the term used to describe efforts to prevent rippled from -having or creating cyclic dependencies. - -rippled code is organized into directories under `src/rippled` (and -`src/test`) representing modules. The modules are intended to be -organized into "tiers" or "levels" such that a module from one level can -only include code from lower levels. Additionally, a module -in one level should never include code in an `impl` folder of any level -other than it's own. - -Unfortunately, over time, enforcement of levelization has been -inconsistent, so the current state of the code doesn't necessarily -reflect these rules. Whenever possible, developers should refactor any -levelization violations they find (by moving files or individual -classes). At the very least, don't make things worse. - -The table below summarizes the _desired_ division of modules, based on the -state of the rippled code when it was created. The levels are numbered from -the bottom up with the lower level, lower numbered, more independent -modules listed first, and the higher level, higher numbered modules with -more dependencies listed later. - -**tl;dr:** The modules listed first are more independent than the modules -listed later. - -| Level / Tier | Module(s) | -|--------------|-----------------------------------------------| -| 01 | ripple/beast ripple/unity -| 02 | ripple/basics -| 03 | ripple/json ripple/crypto -| 04 | ripple/protocol -| 05 | ripple/core ripple/conditions ripple/consensus ripple/resource ripple/server -| 06 | ripple/peerfinder ripple/ledger ripple/nodestore ripple/net -| 07 | ripple/shamap ripple/overlay -| 08 | ripple/app -| 09 | ripple/rpc -| 10 | ripple/perflog -| 11 | test/jtx test/beast test/csf -| 12 | test/unit_test -| 13 | test/crypto test/conditions test/json test/resource test/shamap test/peerfinder test/basics test/overlay -| 14 | test -| 15 | test/net test/protocol test/ledger test/consensus test/core test/server test/nodestore -| 16 | test/rpc test/app - -(Note that `test` levelization is *much* less important and *much* less -strictly enforced than `ripple` levelization, other than the requirement -that `test` code should *never* be included in `ripple` code.) - -## Validation - -The [levelization.sh](levelization.sh) script takes no parameters, -reads no environment variables, and can be run from any directory, -as long as it is in the expected location in the rippled repo. -It can be run at any time from within a checked out repo, and will -do an analysis of all the `#include`s in -the rippled source. The only caveat is that it runs much slower -under Windows than in Linux. It hasn't yet been tested under MacOS. -It generates many files of [results](results): - -* `rawincludes.txt`: The raw dump of the `#includes` -* `paths.txt`: A second dump grouping the source module - to the destination module, deduped, and with frequency counts. -* `includes/`: A directory where each file represents a module and - contains a list of modules and counts that the module _includes_. -* `includedby/`: Similar to `includes/`, but the other way around. Each - file represents a module and contains a list of modules and counts - that _include_ the module. -* [`loops.txt`](results/loops.txt): A list of direct loops detected - between modules as they actually exist, as opposed to how they are - desired as described above. In a perfect repo, this file will be - empty. - This file is committed to the repo, and is used by the [levelization - Github workflow](../../.github/workflows/levelization.yml) to validate - that nothing changed. -* [`ordering.txt`](results/ordering.txt): A list showing relationships - between modules where there are no loops as they actually exist, as - opposed to how they are desired as described above. - This file is committed to the repo, and is used by the [levelization - Github workflow](../../.github/workflows/levelization.yml) to validate - that nothing changed. -* [`levelization.yml`](../../.github/workflows/levelization.yml) - Github Actions workflow to test that levelization loops haven't - changed. Unfortunately, if changes are detected, it can't tell if - they are improvements or not, so if you have resolved any issues or - done anything else to improve levelization, run `levelization.sh`, - and commit the updated results. - -The `loops.txt` and `ordering.txt` files relate the modules -using comparison signs, which indicate the number of times each -module is included in the other. - -* `A > B` means that A should probably be at a higher level than B, - because B is included in A significantly more than A is included in B. - These results can be included in both `loops.txt` and `ordering.txt`. - Because `ordering.txt`only includes relationships where B is not - included in A at all, it will only include these types of results. -* `A ~= B` means that A and B are included in each other a different - number of times, but the values are so close that the script can't - definitively say that one should be above the other. These results - will only be included in `loops.txt`. -* `A == B` means that A and B include each other the same number of - times, so the script has no clue which should be higher. These results - will only be included in `loops.txt`. - -The committed files hide the detailed values intentionally, to -prevent false alarms and merging issues, and because it's easy to -get those details locally. - -1. Run `levelization.sh` -2. Grep the modules in `paths.txt`. - * For example, if a cycle is found `A ~= B`, simply `grep -w - A Builds/levelization/results/paths.txt | grep -w B` diff --git a/Release.Builds/Builds/levelization/levelization.sh b/Release.Builds/Builds/levelization/levelization.sh deleted file mode 100755 index 34487f746..000000000 --- a/Release.Builds/Builds/levelization/levelization.sh +++ /dev/null @@ -1,127 +0,0 @@ -#!/bin/bash - -# Usage: levelization.sh -# This script takes no parameters, reads no environment variables, -# and can be run from any directory, as long as it is in the expected -# location in the repo. - -pushd $( dirname $0 ) - -if [ -v PS1 ] -then - # if the shell is interactive, clean up any flotsam before analyzing - git clean -ix -fi - -rm -rfv results -mkdir results -includes="$( pwd )/results/rawincludes.txt" -pushd ../.. -echo Raw includes: -grep -r '#include.*/.*\.h' src/ripple/ src/test/ | \ - grep -v boost | tee ${includes} -popd -pushd results - -oldifs=${IFS} -IFS=: -mkdir includes -mkdir includedby -echo Build levelization paths -exec 3< ${includes} # open rawincludes.txt for input -while read -r -u 3 file include -do - level=$( echo ${file} | cut -d/ -f 2,3 ) - # If the "level" indicates a file, cut off the filename - if [[ "${level##*.}" != "${level}" ]] - then - # Use the "toplevel" label as a workaround for `sort` - # inconsistencies between different utility versions - level="$( dirname ${level} )/toplevel" - fi - level=$( echo ${level} | tr '/' '.' ) - - includelevel=$( echo ${include} | sed 's/.*["<]//; s/[">].*//' | \ - cut -d/ -f 1,2 ) - if [[ "${includelevel##*.}" != "${includelevel}" ]] - then - # Use the "toplevel" label as a workaround for `sort` - # inconsistencies between different utility versions - includelevel="$( dirname ${includelevel} )/toplevel" - fi - includelevel=$( echo ${includelevel} | tr '/' '.' ) - - if [[ "$level" != "$includelevel" ]] - then - echo $level $includelevel | tee -a paths.txt - fi -done -echo Sort and dedup paths -sort -ds paths.txt | uniq -c | tee sortedpaths.txt -mv sortedpaths.txt paths.txt -exec 3>&- #close fd 3 -IFS=${oldifs} -unset oldifs - -echo Split into flat-file database -exec 4&- #close fd 4 - -loops="$( pwd )/loops.txt" -ordering="$( pwd )/ordering.txt" -pushd includes -echo Search for loops -# Redirect stdout to a file -exec 4>&1 -exec 1>"${loops}" -for source in * -do - if [[ -f "$source" ]] - then - exec 5<"${source}" # open for input - while read -r -u 5 include includefreq - do - if [[ -f $include ]] - then - if grep -q -w $source $include - then - if grep -q -w "Loop: $include $source" "${loops}" - then - continue - fi - sourcefreq=$( grep -w $source $include | cut -d\ -f2 ) - echo "Loop: $source $include" - # If the counts are close, indicate that the two modules are - # on the same level, though they shouldn't be - if [[ $(( $includefreq - $sourcefreq )) -gt 3 ]] - then - echo -e " $source > $include\n" - elif [[ $(( $sourcefreq - $includefreq )) -gt 3 ]] - then - echo -e " $include > $source\n" - elif [[ $sourcefreq -eq $includefreq ]] - then - echo -e " $include == $source\n" - else - echo -e " $include ~= $source\n" - fi - else - echo "$source > $include" >> "${ordering}" - fi - fi - done - exec 5>&- #close fd 5 - fi -done -exec 1>&4 #close fd 1 -exec 4>&- #close fd 4 -cat "${ordering}" -cat "${loops}" -popd -popd -popd diff --git a/Release.Builds/Builds/levelization/results/loops.txt b/Release.Builds/Builds/levelization/results/loops.txt deleted file mode 100644 index a41254a70..000000000 --- a/Release.Builds/Builds/levelization/results/loops.txt +++ /dev/null @@ -1,63 +0,0 @@ -Loop: ripple.app ripple.core - ripple.app > ripple.core - -Loop: ripple.app ripple.ledger - ripple.app > ripple.ledger - -Loop: ripple.app ripple.net - ripple.app > ripple.net - -Loop: ripple.app ripple.nodestore - ripple.app > ripple.nodestore - -Loop: ripple.app ripple.overlay - ripple.overlay ~= ripple.app - -Loop: ripple.app ripple.peerfinder - ripple.app > ripple.peerfinder - -Loop: ripple.app ripple.protocol - ripple.app > ripple.protocol - -Loop: ripple.app ripple.rpc - ripple.rpc > ripple.app - -Loop: ripple.app ripple.shamap - ripple.app > ripple.shamap - -Loop: ripple.basics ripple.core - ripple.core > ripple.basics - -Loop: ripple.basics ripple.json - ripple.json ~= ripple.basics - -Loop: ripple.basics ripple.protocol - ripple.protocol > ripple.basics - -Loop: ripple.core ripple.net - ripple.net > ripple.core - -Loop: ripple.ledger ripple.protocol - ripple.ledger > ripple.protocol - -Loop: ripple.net ripple.rpc - ripple.rpc > ripple.net - -Loop: ripple.nodestore ripple.overlay - ripple.overlay ~= ripple.nodestore - -Loop: ripple.overlay ripple.rpc - ripple.rpc ~= ripple.overlay - -Loop: test.app test.jtx - test.app > test.jtx - -Loop: test.app test.rpc - test.rpc ~= test.app - -Loop: test.jtx test.toplevel - test.toplevel > test.jtx - -Loop: test.jtx test.unit_test - test.unit_test == test.jtx - diff --git a/Release.Builds/Builds/levelization/results/ordering.txt b/Release.Builds/Builds/levelization/results/ordering.txt deleted file mode 100644 index 12df1a86e..000000000 --- a/Release.Builds/Builds/levelization/results/ordering.txt +++ /dev/null @@ -1,226 +0,0 @@ -ripple.app > ripple.basics -ripple.app > ripple.beast -ripple.app > ripple.conditions -ripple.app > ripple.consensus -ripple.app > ripple.crypto -ripple.app > ripple.json -ripple.app > ripple.resource -ripple.app > test.unit_test -ripple.basics > ripple.beast -ripple.conditions > ripple.basics -ripple.conditions > ripple.protocol -ripple.consensus > ripple.basics -ripple.consensus > ripple.beast -ripple.consensus > ripple.json -ripple.consensus > ripple.protocol -ripple.core > ripple.beast -ripple.core > ripple.json -ripple.core > ripple.protocol -ripple.crypto > ripple.basics -ripple.json > ripple.beast -ripple.ledger > ripple.basics -ripple.ledger > ripple.beast -ripple.ledger > ripple.core -ripple.ledger > ripple.json -ripple.net > ripple.basics -ripple.net > ripple.beast -ripple.net > ripple.json -ripple.net > ripple.protocol -ripple.net > ripple.resource -ripple.nodestore > ripple.basics -ripple.nodestore > ripple.beast -ripple.nodestore > ripple.core -ripple.nodestore > ripple.json -ripple.nodestore > ripple.protocol -ripple.nodestore > ripple.unity -ripple.overlay > ripple.basics -ripple.overlay > ripple.beast -ripple.overlay > ripple.core -ripple.overlay > ripple.json -ripple.overlay > ripple.peerfinder -ripple.overlay > ripple.protocol -ripple.overlay > ripple.resource -ripple.overlay > ripple.server -ripple.peerfinder > ripple.basics -ripple.peerfinder > ripple.beast -ripple.peerfinder > ripple.core -ripple.peerfinder > ripple.protocol -ripple.perflog > ripple.basics -ripple.perflog > ripple.beast -ripple.perflog > ripple.core -ripple.perflog > ripple.json -ripple.perflog > ripple.nodestore -ripple.perflog > ripple.protocol -ripple.perflog > ripple.rpc -ripple.protocol > ripple.beast -ripple.protocol > ripple.crypto -ripple.protocol > ripple.json -ripple.resource > ripple.basics -ripple.resource > ripple.beast -ripple.resource > ripple.json -ripple.resource > ripple.protocol -ripple.rpc > ripple.basics -ripple.rpc > ripple.beast -ripple.rpc > ripple.core -ripple.rpc > ripple.crypto -ripple.rpc > ripple.json -ripple.rpc > ripple.ledger -ripple.rpc > ripple.nodestore -ripple.rpc > ripple.protocol -ripple.rpc > ripple.resource -ripple.rpc > ripple.server -ripple.rpc > ripple.shamap -ripple.server > ripple.basics -ripple.server > ripple.beast -ripple.server > ripple.crypto -ripple.server > ripple.json -ripple.server > ripple.protocol -ripple.shamap > ripple.basics -ripple.shamap > ripple.beast -ripple.shamap > ripple.crypto -ripple.shamap > ripple.nodestore -ripple.shamap > ripple.protocol -test.app > ripple.app -test.app > ripple.basics -test.app > ripple.beast -test.app > ripple.core -test.app > ripple.json -test.app > ripple.ledger -test.app > ripple.overlay -test.app > ripple.protocol -test.app > ripple.resource -test.app > ripple.rpc -test.app > test.toplevel -test.app > test.unit_test -test.basics > ripple.basics -test.basics > ripple.beast -test.basics > ripple.json -test.basics > ripple.protocol -test.basics > ripple.rpc -test.basics > test.jtx -test.basics > test.unit_test -test.beast > ripple.basics -test.beast > ripple.beast -test.conditions > ripple.basics -test.conditions > ripple.beast -test.conditions > ripple.conditions -test.consensus > ripple.app -test.consensus > ripple.basics -test.consensus > ripple.beast -test.consensus > ripple.consensus -test.consensus > ripple.core -test.consensus > ripple.ledger -test.consensus > ripple.protocol -test.consensus > test.csf -test.consensus > test.toplevel -test.consensus > test.unit_test -test.core > ripple.basics -test.core > ripple.beast -test.core > ripple.core -test.core > ripple.crypto -test.core > ripple.json -test.core > ripple.server -test.core > test.jtx -test.core > test.toplevel -test.core > test.unit_test -test.csf > ripple.basics -test.csf > ripple.beast -test.csf > ripple.consensus -test.csf > ripple.json -test.csf > ripple.protocol -test.json > ripple.beast -test.json > ripple.json -test.json > test.jtx -test.jtx > ripple.app -test.jtx > ripple.basics -test.jtx > ripple.beast -test.jtx > ripple.consensus -test.jtx > ripple.core -test.jtx > ripple.json -test.jtx > ripple.ledger -test.jtx > ripple.net -test.jtx > ripple.protocol -test.jtx > ripple.server -test.ledger > ripple.app -test.ledger > ripple.basics -test.ledger > ripple.beast -test.ledger > ripple.core -test.ledger > ripple.ledger -test.ledger > ripple.protocol -test.ledger > test.jtx -test.ledger > test.toplevel -test.net > ripple.net -test.net > test.jtx -test.net > test.toplevel -test.net > test.unit_test -test.nodestore > ripple.app -test.nodestore > ripple.basics -test.nodestore > ripple.beast -test.nodestore > ripple.core -test.nodestore > ripple.nodestore -test.nodestore > ripple.protocol -test.nodestore > ripple.unity -test.nodestore > test.jtx -test.nodestore > test.toplevel -test.nodestore > test.unit_test -test.overlay > ripple.app -test.overlay > ripple.basics -test.overlay > ripple.beast -test.overlay > ripple.core -test.overlay > ripple.overlay -test.overlay > ripple.peerfinder -test.overlay > ripple.protocol -test.overlay > ripple.shamap -test.overlay > test.jtx -test.overlay > test.unit_test -test.peerfinder > ripple.basics -test.peerfinder > ripple.beast -test.peerfinder > ripple.core -test.peerfinder > ripple.peerfinder -test.peerfinder > ripple.protocol -test.peerfinder > test.beast -test.peerfinder > test.unit_test -test.protocol > ripple.basics -test.protocol > ripple.beast -test.protocol > ripple.crypto -test.protocol > ripple.json -test.protocol > ripple.protocol -test.protocol > test.toplevel -test.resource > ripple.basics -test.resource > ripple.beast -test.resource > ripple.resource -test.resource > test.unit_test -test.rpc > ripple.app -test.rpc > ripple.basics -test.rpc > ripple.beast -test.rpc > ripple.core -test.rpc > ripple.json -test.rpc > ripple.net -test.rpc > ripple.nodestore -test.rpc > ripple.overlay -test.rpc > ripple.protocol -test.rpc > ripple.resource -test.rpc > ripple.rpc -test.rpc > test.jtx -test.rpc > test.nodestore -test.rpc > test.toplevel -test.server > ripple.app -test.server > ripple.basics -test.server > ripple.beast -test.server > ripple.core -test.server > ripple.json -test.server > ripple.rpc -test.server > ripple.server -test.server > test.jtx -test.server > test.toplevel -test.server > test.unit_test -test.shamap > ripple.basics -test.shamap > ripple.beast -test.shamap > ripple.nodestore -test.shamap > ripple.protocol -test.shamap > ripple.shamap -test.shamap > test.unit_test -test.toplevel > ripple.json -test.toplevel > test.csf -test.unit_test > ripple.basics -test.unit_test > ripple.beast diff --git a/Release.Builds/CMakeLists.txt b/Release.Builds/CMakeLists.txt deleted file mode 100644 index 043443ae9..000000000 --- a/Release.Builds/CMakeLists.txt +++ /dev/null @@ -1,86 +0,0 @@ -cmake_minimum_required (VERSION 3.16) - -if (POLICY CMP0074) - cmake_policy(SET CMP0074 NEW) -endif () - -project (rippled) -set(CMAKE_CXX_EXTENSIONS OFF) -set(CMAKE_CXX_STANDARD 20) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -set(Boost_NO_BOOST_CMAKE ON) - -# make GIT_COMMIT_HASH define available to all sources -find_package(Git) -if(Git_FOUND) - execute_process(COMMAND ${GIT_EXECUTABLE} describe --always --abbrev=40 - OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE gch) - if(gch) - set(GIT_COMMIT_HASH "${gch}") - message(STATUS gch: ${GIT_COMMIT_HASH}) - add_definitions(-DGIT_COMMIT_HASH="${GIT_COMMIT_HASH}") - endif() -endif() #git - -if (thread_safety_analysis) - add_compile_options(-Wthread-safety -D_LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS -DRIPPLE_ENABLE_THREAD_SAFETY_ANNOTATIONS) - add_compile_options("-stdlib=libc++") - add_link_options("-stdlib=libc++") -endif() - -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake") -list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/deps") - -include (CheckCXXCompilerFlag) -include (FetchContent) -include (ExternalProject) -include (CMakeFuncs) # must come *after* ExternalProject b/c it overrides one function in EP -include (ProcessorCount) -if (target) - message (FATAL_ERROR "The target option has been removed - use native cmake options to control build") -endif () - -include(RippledSanity) -include(RippledVersion) -include(RippledSettings) -include(RippledNIH) -# this check has to remain in the top-level cmake -# because of the early return statement -if (packages_only) - if (NOT TARGET rpm) - message (FATAL_ERROR "packages_only requested, but targets were not created - is docker installed?") - endif() - return () -endif () -include(RippledCompiler) -include(RippledInterface) - -### - -include(deps/Boost) -include(deps/OpenSSL) -include(deps/Secp256k1) -include(deps/Ed25519-donna) -include(deps/Lz4) -include(deps/Libarchive) -include(deps/Sqlite) -include(deps/Soci) -include(deps/Snappy) -include(deps/Rocksdb) -include(deps/Nudb) -include(deps/date) -include(deps/Protobuf) -include(deps/gRPC) -include(deps/cassandra) -include(deps/Postgres) -include(deps/WasmEdge) - -### - -include(RippledCore) -include(RippledInstall) -include(RippledCov) -include(RippledMultiConfig) -include(RippledDocs) -include(RippledValidatorKeys) \ No newline at end of file diff --git a/build-core.sh b/build-core.sh index 2d9ca34af..072468916 100755 --- a/build-core.sh +++ b/build-core.sh @@ -28,9 +28,6 @@ if [[ "$?" -ne "0" ]]; then fi #!/bin/bash -rm -r Builds CMakeLists.txt && -cp Release.Builds/CMakeLists.txt CMakeLists.txt && -cp Release.Builds/Builds Builds -r && sed -i 's/ed25519.h/ed25519-donna\/ed25519.h/g' src/ripple/protocol/impl/PublicKey.cpp && sed -i 's/ed25519.h/ed25519-donna\/ed25519.h/g' src/ripple/protocol/impl/SecretKey.cpp && sed -i 's/ed25519.h/ed25519-donna\/ed25519.h/g' src/ripple/rpc/handlers/WalletPropose.cpp &&