mirror of
				https://github.com/Xahau/xahaud.git
				synced 2025-11-04 02:35:48 +00:00 
			
		
		
		
	Make release build use conan deps where possible and hbb 4.0.1 (#516)
Co-authored-by: Denis Angell <dangell@transia.co> Co-authored-by: Niq Dudfield <ndudfield@gmail.com>
This commit is contained in:
		
							
								
								
									
										12
									
								
								.github/workflows/build-in-docker.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								.github/workflows/build-in-docker.yml
									
									
									
									
										vendored
									
									
								
							@@ -32,19 +32,9 @@ jobs:
 | 
				
			|||||||
          clean: true
 | 
					          clean: true
 | 
				
			||||||
          fetch-depth: 2 # Only get the last 2 commits, to avoid fetching all history
 | 
					          fetch-depth: 2 # Only get the last 2 commits, to avoid fetching all history
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  checkpatterns:
 | 
					 | 
				
			||||||
    runs-on: [self-hosted, vanity]
 | 
					 | 
				
			||||||
    needs: checkout
 | 
					 | 
				
			||||||
    defaults:
 | 
					 | 
				
			||||||
      run:
 | 
					 | 
				
			||||||
        working-directory: ${{ needs.checkout.outputs.checkout_path }}
 | 
					 | 
				
			||||||
    steps:
 | 
					 | 
				
			||||||
      - name: Check for suspicious patterns
 | 
					 | 
				
			||||||
        run: /bin/bash suspicious_patterns.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  build:
 | 
					  build:
 | 
				
			||||||
    runs-on: [self-hosted, vanity]
 | 
					    runs-on: [self-hosted, vanity]
 | 
				
			||||||
    needs: [checkpatterns, checkout]
 | 
					    needs: [checkout]
 | 
				
			||||||
    defaults:
 | 
					    defaults:
 | 
				
			||||||
      run:
 | 
					      run:
 | 
				
			||||||
        working-directory: ${{ needs.checkout.outputs.checkout_path }}
 | 
					        working-directory: ${{ needs.checkout.outputs.checkout_path }}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -24,6 +24,11 @@ bin/project-cache.jam
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
build/docker
 | 
					build/docker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Ignore release builder files
 | 
				
			||||||
 | 
					.env
 | 
				
			||||||
 | 
					release-build
 | 
				
			||||||
 | 
					cmake-*.tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Ignore object files.
 | 
					# Ignore object files.
 | 
				
			||||||
*.o
 | 
					*.o
 | 
				
			||||||
build
 | 
					build
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1068,6 +1068,11 @@ target_link_libraries (rippled
 | 
				
			|||||||
  Ripple::opts
 | 
					  Ripple::opts
 | 
				
			||||||
  Ripple::libs
 | 
					  Ripple::libs
 | 
				
			||||||
  Ripple::xrpl_core
 | 
					  Ripple::xrpl_core
 | 
				
			||||||
 | 
					  # Workaround for a Conan 1.x bug that prevents static linking of libstdc++
 | 
				
			||||||
 | 
					  # when a dependency (snappy) modifies system_libs. See the comment in
 | 
				
			||||||
 | 
					  # external/snappy/conanfile.py for a full explanation.
 | 
				
			||||||
 | 
					  # This is likely not strictly necessary, but listed explicitly as a good practice.
 | 
				
			||||||
 | 
					  m
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
exclude_if_included (rippled)
 | 
					exclude_if_included (rippled)
 | 
				
			||||||
# define a macro for tests that might need to
 | 
					# define a macro for tests that might need to
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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)
 | 
					 | 
				
			||||||
@@ -1,52 +0,0 @@
 | 
				
			|||||||
find_package(Boost 1.83 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(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::iostreams
 | 
					 | 
				
			||||||
    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()
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
find_package(Protobuf 3.8)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
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
 | 
					 | 
				
			||||||
  PUBLIC
 | 
					 | 
				
			||||||
    $<$<BOOL:${XCODE}>:
 | 
					 | 
				
			||||||
      --system-header-prefix="google/protobuf"
 | 
					 | 
				
			||||||
      -Wno-deprecated-dynamic-exception-spec
 | 
					 | 
				
			||||||
    >
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
add_library(Ripple::pbufs ALIAS pbufs)
 | 
					 | 
				
			||||||
@@ -1,62 +0,0 @@
 | 
				
			|||||||
find_package(gRPC 1.23)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#[=================================[
 | 
					 | 
				
			||||||
   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=$<TARGET_FILE:gRPC::grpc_cpp_plugin>
 | 
					 | 
				
			||||||
         -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
 | 
					 | 
				
			||||||
  "gRPC::grpc++"
 | 
					 | 
				
			||||||
  # libgrpc is missing references.
 | 
					 | 
				
			||||||
  absl::random_random
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
target_compile_options(grpc_pbufs
 | 
					 | 
				
			||||||
  PRIVATE
 | 
					 | 
				
			||||||
    $<$<BOOL:${MSVC}>:-wd4065>
 | 
					 | 
				
			||||||
    $<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-declarations>
 | 
					 | 
				
			||||||
  PUBLIC
 | 
					 | 
				
			||||||
    $<$<BOOL:${MSVC}>:-wd4996>
 | 
					 | 
				
			||||||
    $<$<BOOL:${XCODE}>:
 | 
					 | 
				
			||||||
      --system-header-prefix="google/protobuf"
 | 
					 | 
				
			||||||
      -Wno-deprecated-dynamic-exception-spec
 | 
					 | 
				
			||||||
    >)
 | 
					 | 
				
			||||||
add_library(Ripple::grpc_pbufs ALIAS grpc_pbufs)
 | 
					 | 
				
			||||||
@@ -1,51 +1,3 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: boost
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
if((NOT DEFINED BOOST_ROOT) AND(DEFINED ENV{BOOST_ROOT}))
 | 
					 | 
				
			||||||
  set(BOOST_ROOT $ENV{BOOST_ROOT})
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
if((NOT DEFINED BOOST_LIBRARYDIR) AND(DEFINED ENV{BOOST_LIBRARYDIR}))
 | 
					 | 
				
			||||||
  set(BOOST_LIBRARYDIR $ENV{BOOST_LIBRARYDIR})
 | 
					 | 
				
			||||||
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((NOT DEFINED BOOST_LIBRARYDIR) AND (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
 | 
					find_package(Boost 1.86 REQUIRED
 | 
				
			||||||
  COMPONENTS
 | 
					  COMPONENTS
 | 
				
			||||||
    chrono
 | 
					    chrono
 | 
				
			||||||
@@ -57,12 +9,12 @@ find_package(Boost 1.86 REQUIRED
 | 
				
			|||||||
    program_options
 | 
					    program_options
 | 
				
			||||||
    regex
 | 
					    regex
 | 
				
			||||||
    system
 | 
					    system
 | 
				
			||||||
    iostreams
 | 
					    thread
 | 
				
			||||||
    thread)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library(ripple_boost INTERFACE)
 | 
					add_library(ripple_boost INTERFACE)
 | 
				
			||||||
add_library(Ripple::boost ALIAS ripple_boost)
 | 
					add_library(Ripple::boost ALIAS ripple_boost)
 | 
				
			||||||
if(is_xcode)
 | 
					if(XCODE)
 | 
				
			||||||
  target_include_directories(ripple_boost BEFORE INTERFACE ${Boost_INCLUDE_DIRS})
 | 
					  target_include_directories(ripple_boost BEFORE INTERFACE ${Boost_INCLUDE_DIRS})
 | 
				
			||||||
  target_compile_options(ripple_boost INTERFACE --system-header-prefix="boost/")
 | 
					  target_compile_options(ripple_boost INTERFACE --system-header-prefix="boost/")
 | 
				
			||||||
else()
 | 
					else()
 | 
				
			||||||
@@ -77,10 +29,10 @@ target_link_libraries(ripple_boost
 | 
				
			|||||||
    Boost::coroutine
 | 
					    Boost::coroutine
 | 
				
			||||||
    Boost::date_time
 | 
					    Boost::date_time
 | 
				
			||||||
    Boost::filesystem
 | 
					    Boost::filesystem
 | 
				
			||||||
    Boost::iostreams
 | 
					 | 
				
			||||||
    Boost::program_options
 | 
					    Boost::program_options
 | 
				
			||||||
    Boost::regex
 | 
					    Boost::regex
 | 
				
			||||||
    Boost::system
 | 
					    Boost::system
 | 
				
			||||||
 | 
					    Boost::iostreams
 | 
				
			||||||
    Boost::thread)
 | 
					    Boost::thread)
 | 
				
			||||||
if(Boost_COMPILER)
 | 
					if(Boost_COMPILER)
 | 
				
			||||||
  target_link_libraries(ripple_boost INTERFACE Boost::disable_autolinking)
 | 
					  target_link_libraries(ripple_boost INTERFACE Boost::disable_autolinking)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,28 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: ed25519-donna
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_library (ed25519-donna STATIC
 | 
					 | 
				
			||||||
  src/ed25519-donna/ed25519.c)
 | 
					 | 
				
			||||||
target_include_directories (ed25519-donna
 | 
					 | 
				
			||||||
  PUBLIC
 | 
					 | 
				
			||||||
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
 | 
					 | 
				
			||||||
    $<INSTALL_INTERFACE:include>
 | 
					 | 
				
			||||||
  PRIVATE
 | 
					 | 
				
			||||||
    ${CMAKE_CURRENT_SOURCE_DIR}/src/ed25519-donna)
 | 
					 | 
				
			||||||
#[=========================================================[
 | 
					 | 
				
			||||||
   NOTE for macos:
 | 
					 | 
				
			||||||
   https://github.com/floodyberry/ed25519-donna/issues/29
 | 
					 | 
				
			||||||
   our source for ed25519-donna-portable.h has been
 | 
					 | 
				
			||||||
   patched to workaround this.
 | 
					 | 
				
			||||||
#]=========================================================]
 | 
					 | 
				
			||||||
target_link_libraries (ed25519-donna PUBLIC OpenSSL::SSL)
 | 
					 | 
				
			||||||
add_library (NIH::ed25519-donna ALIAS ed25519-donna)
 | 
					 | 
				
			||||||
target_link_libraries (ripple_libs INTERFACE NIH::ed25519-donna)
 | 
					 | 
				
			||||||
#[===========================[
 | 
					 | 
				
			||||||
   headers installation
 | 
					 | 
				
			||||||
#]===========================]
 | 
					 | 
				
			||||||
install (
 | 
					 | 
				
			||||||
  FILES
 | 
					 | 
				
			||||||
    src/ed25519-donna/ed25519.h
 | 
					 | 
				
			||||||
  DESTINATION include/ed25519-donna)
 | 
					 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,47 +0,0 @@
 | 
				
			|||||||
# - Try to find jemalloc
 | 
					 | 
				
			||||||
# Once done this will define
 | 
					 | 
				
			||||||
#  JEMALLOC_FOUND - System has jemalloc
 | 
					 | 
				
			||||||
#  JEMALLOC_INCLUDE_DIRS - The jemalloc include directories
 | 
					 | 
				
			||||||
#  JEMALLOC_LIBRARIES - The libraries needed to use jemalloc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(NOT USE_BUNDLED_JEMALLOC)
 | 
					 | 
				
			||||||
  find_package(PkgConfig)
 | 
					 | 
				
			||||||
  if (PKG_CONFIG_FOUND)
 | 
					 | 
				
			||||||
    pkg_check_modules(PC_JEMALLOC QUIET jemalloc)
 | 
					 | 
				
			||||||
  endif()
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(PC_JEMALLOC_INCLUDEDIR)
 | 
					 | 
				
			||||||
  set(PC_JEMALLOC_INCLUDE_DIRS)
 | 
					 | 
				
			||||||
  set(PC_JEMALLOC_LIBDIR)
 | 
					 | 
				
			||||||
  set(PC_JEMALLOC_LIBRARY_DIRS)
 | 
					 | 
				
			||||||
  set(LIMIT_SEARCH NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set(JEMALLOC_DEFINITIONS ${PC_JEMALLOC_CFLAGS_OTHER})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_path(JEMALLOC_INCLUDE_DIR jemalloc/jemalloc.h
 | 
					 | 
				
			||||||
          PATHS ${PC_JEMALLOC_INCLUDEDIR} ${PC_JEMALLOC_INCLUDE_DIRS}
 | 
					 | 
				
			||||||
          ${LIMIT_SEARCH})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# If we're asked to use static linkage, add libjemalloc.a as a preferred library name.
 | 
					 | 
				
			||||||
if(JEMALLOC_USE_STATIC)
 | 
					 | 
				
			||||||
  list(APPEND JEMALLOC_NAMES
 | 
					 | 
				
			||||||
    "${CMAKE_STATIC_LIBRARY_PREFIX}jemalloc${CMAKE_STATIC_LIBRARY_SUFFIX}")
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
list(APPEND JEMALLOC_NAMES jemalloc)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_library(JEMALLOC_LIBRARY NAMES ${JEMALLOC_NAMES}
 | 
					 | 
				
			||||||
  HINTS ${PC_JEMALLOC_LIBDIR} ${PC_JEMALLOC_LIBRARY_DIRS}
 | 
					 | 
				
			||||||
  ${LIMIT_SEARCH})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set(JEMALLOC_LIBRARIES ${JEMALLOC_LIBRARY})
 | 
					 | 
				
			||||||
set(JEMALLOC_INCLUDE_DIRS ${JEMALLOC_INCLUDE_DIR})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include(FindPackageHandleStandardArgs)
 | 
					 | 
				
			||||||
# handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE
 | 
					 | 
				
			||||||
# if all listed variables are TRUE
 | 
					 | 
				
			||||||
find_package_handle_standard_args(JeMalloc DEFAULT_MSG
 | 
					 | 
				
			||||||
  JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
mark_as_advanced(JEMALLOC_INCLUDE_DIR JEMALLOC_LIBRARY)
 | 
					 | 
				
			||||||
@@ -1,22 +0,0 @@
 | 
				
			|||||||
find_package (PkgConfig REQUIRED)
 | 
					 | 
				
			||||||
pkg_search_module (libarchive_PC QUIET libarchive>=3.4.3)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(static)
 | 
					 | 
				
			||||||
  set(LIBARCHIVE_LIB libarchive.a)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(LIBARCHIVE_LIB archive)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_library (archive
 | 
					 | 
				
			||||||
  NAMES ${LIBARCHIVE_LIB}
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${libarchive_PC_LIBDIR}
 | 
					 | 
				
			||||||
    ${libarchive_PC_LIBRARY_DIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_path (LIBARCHIVE_INCLUDE_DIR
 | 
					 | 
				
			||||||
  NAMES archive.h
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${libarchive_PC_INCLUDEDIR}
 | 
					 | 
				
			||||||
    ${libarchive_PC_INCLUDEDIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
find_package (PkgConfig)
 | 
					 | 
				
			||||||
if (PKG_CONFIG_FOUND)
 | 
					 | 
				
			||||||
  pkg_search_module (lz4_PC QUIET liblz4>=1.9)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(static)
 | 
					 | 
				
			||||||
  set(LZ4_LIB liblz4.a)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(LZ4_LIB lz4.so)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_library (lz4
 | 
					 | 
				
			||||||
  NAMES ${LZ4_LIB}
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${lz4_PC_LIBDIR}
 | 
					 | 
				
			||||||
    ${lz4_PC_LIBRARY_DIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_path (LZ4_INCLUDE_DIR
 | 
					 | 
				
			||||||
  NAMES lz4.h
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${lz4_PC_INCLUDEDIR}
 | 
					 | 
				
			||||||
    ${lz4_PC_INCLUDEDIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
find_package (PkgConfig)
 | 
					 | 
				
			||||||
if (PKG_CONFIG_FOUND)
 | 
					 | 
				
			||||||
  pkg_search_module (secp256k1_PC QUIET libsecp256k1)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(static)
 | 
					 | 
				
			||||||
  set(SECP256K1_LIB libsecp256k1.a)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(SECP256K1_LIB secp256k1)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_library(secp256k1
 | 
					 | 
				
			||||||
  NAMES ${SECP256K1_LIB}
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${secp256k1_PC_LIBDIR}
 | 
					 | 
				
			||||||
    ${secp256k1_PC_LIBRARY_PATHS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_path (SECP256K1_INCLUDE_DIR
 | 
					 | 
				
			||||||
  NAMES secp256k1.h
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${secp256k1_PC_INCLUDEDIR}
 | 
					 | 
				
			||||||
    ${secp256k1_PC_INCLUDEDIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
find_package (PkgConfig)
 | 
					 | 
				
			||||||
if (PKG_CONFIG_FOUND)
 | 
					 | 
				
			||||||
  pkg_search_module (snappy_PC QUIET snappy>=1.1.7)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(static)
 | 
					 | 
				
			||||||
  set(SNAPPY_LIB libsnappy.a)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(SNAPPY_LIB libsnappy.so)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_library (snappy
 | 
					 | 
				
			||||||
  NAMES ${SNAPPY_LIB}
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${snappy_PC_LIBDIR}
 | 
					 | 
				
			||||||
    ${snappy_PC_LIBRARY_DIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_path (SNAPPY_INCLUDE_DIR
 | 
					 | 
				
			||||||
  NAMES snappy.h
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${snappy_PC_INCLUDEDIR}
 | 
					 | 
				
			||||||
    ${snappy_PC_INCLUDEDIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
@@ -1,19 +0,0 @@
 | 
				
			|||||||
find_package (PkgConfig)
 | 
					 | 
				
			||||||
if (PKG_CONFIG_FOUND)
 | 
					 | 
				
			||||||
  # TBD - currently no soci pkgconfig
 | 
					 | 
				
			||||||
  #pkg_search_module (soci_PC QUIET libsoci_core>=3.2)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(static)
 | 
					 | 
				
			||||||
  set(SOCI_LIB libsoci.a)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(SOCI_LIB libsoci_core.so)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_library (soci
 | 
					 | 
				
			||||||
  NAMES ${SOCI_LIB})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_path (SOCI_INCLUDE_DIR
 | 
					 | 
				
			||||||
  NAMES soci/soci.h)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
message("SOCI FOUND AT: ${SOCI_LIB}")
 | 
					 | 
				
			||||||
@@ -1,24 +0,0 @@
 | 
				
			|||||||
find_package (PkgConfig)
 | 
					 | 
				
			||||||
if (PKG_CONFIG_FOUND)
 | 
					 | 
				
			||||||
  pkg_search_module (sqlite_PC QUIET sqlite3>=3.26.0)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(static)
 | 
					 | 
				
			||||||
  set(SQLITE_LIB libsqlite3.a)
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(SQLITE_LIB sqlite3.so)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_library (sqlite3
 | 
					 | 
				
			||||||
  NAMES ${SQLITE_LIB}
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${sqlite_PC_LIBDIR}
 | 
					 | 
				
			||||||
    ${sqlite_PC_LIBRARY_DIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_path (SQLITE_INCLUDE_DIR
 | 
					 | 
				
			||||||
  NAMES sqlite3.h
 | 
					 | 
				
			||||||
  HINTS
 | 
					 | 
				
			||||||
    ${sqlite_PC_INCLUDEDIR}
 | 
					 | 
				
			||||||
    ${sqlite_PC_INCLUDEDIRS}
 | 
					 | 
				
			||||||
  NO_DEFAULT_PATH)
 | 
					 | 
				
			||||||
@@ -1,163 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: libarchive
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
option (local_libarchive "use local build of libarchive." OFF)
 | 
					 | 
				
			||||||
add_library (archive_lib UNKNOWN IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (NOT local_libarchive)
 | 
					 | 
				
			||||||
  if (NOT WIN32)
 | 
					 | 
				
			||||||
    find_package(libarchive_pc REQUIRED)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  if (archive)
 | 
					 | 
				
			||||||
    message (STATUS "Found libarchive using pkg-config. Using ${archive}.")
 | 
					 | 
				
			||||||
    set_target_properties (archive_lib PROPERTIES
 | 
					 | 
				
			||||||
      IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
        ${archive}
 | 
					 | 
				
			||||||
      IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
        ${archive}
 | 
					 | 
				
			||||||
      INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
        ${LIBARCHIVE_INCLUDE_DIR})
 | 
					 | 
				
			||||||
      # pkg-config can return extra info for static lib linking
 | 
					 | 
				
			||||||
      # this is probably needed/useful generally, but apply
 | 
					 | 
				
			||||||
      # to APPLE for now (mostly for homebrew)
 | 
					 | 
				
			||||||
      if (APPLE AND static AND libarchive_PC_STATIC_LIBRARIES)
 | 
					 | 
				
			||||||
        message(STATUS "NOTE: libarchive static libs: ${libarchive_PC_STATIC_LIBRARIES}")
 | 
					 | 
				
			||||||
        # also, APPLE seems to need iconv...maybe linux does too (TBD)
 | 
					 | 
				
			||||||
        target_link_libraries (archive_lib
 | 
					 | 
				
			||||||
          INTERFACE iconv ${libarchive_PC_STATIC_LIBRARIES})
 | 
					 | 
				
			||||||
      endif ()
 | 
					 | 
				
			||||||
  else ()
 | 
					 | 
				
			||||||
    ## now try searching using the minimal find module that cmake provides
 | 
					 | 
				
			||||||
    find_package(LibArchive 3.4.3 QUIET)
 | 
					 | 
				
			||||||
    if (LibArchive_FOUND)
 | 
					 | 
				
			||||||
      if (static)
 | 
					 | 
				
			||||||
        # find module doesn't find static libs currently, so we re-search
 | 
					 | 
				
			||||||
        get_filename_component(_loc ${LibArchive_LIBRARY} DIRECTORY)
 | 
					 | 
				
			||||||
        find_library(_la_static
 | 
					 | 
				
			||||||
          NAMES libarchive.a archive_static.lib archive.lib
 | 
					 | 
				
			||||||
          PATHS ${_loc})
 | 
					 | 
				
			||||||
        if (_la_static)
 | 
					 | 
				
			||||||
          set (_la_lib ${_la_static})
 | 
					 | 
				
			||||||
        else ()
 | 
					 | 
				
			||||||
          message (WARNING "unable to find libarchive static lib - switching to local build")
 | 
					 | 
				
			||||||
          set (local_libarchive ON CACHE BOOL "" FORCE)
 | 
					 | 
				
			||||||
        endif ()
 | 
					 | 
				
			||||||
      else ()
 | 
					 | 
				
			||||||
        set (_la_lib ${LibArchive_LIBRARY})
 | 
					 | 
				
			||||||
      endif ()
 | 
					 | 
				
			||||||
      if (NOT local_libarchive)
 | 
					 | 
				
			||||||
        message (STATUS "Found libarchive using module/config. Using ${_la_lib}.")
 | 
					 | 
				
			||||||
        set_target_properties (archive_lib PROPERTIES
 | 
					 | 
				
			||||||
          IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
            ${_la_lib}
 | 
					 | 
				
			||||||
          IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
            ${_la_lib}
 | 
					 | 
				
			||||||
          INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
            ${LibArchive_INCLUDE_DIRS})
 | 
					 | 
				
			||||||
      endif ()
 | 
					 | 
				
			||||||
    else ()
 | 
					 | 
				
			||||||
      set (local_libarchive ON CACHE BOOL "" FORCE)
 | 
					 | 
				
			||||||
    endif ()
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (local_libarchive)
 | 
					 | 
				
			||||||
  set (lib_post "")
 | 
					 | 
				
			||||||
  if (MSVC)
 | 
					 | 
				
			||||||
    set (lib_post "_static")
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  ExternalProject_Add (libarchive
 | 
					 | 
				
			||||||
    PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
    GIT_REPOSITORY https://github.com/libarchive/libarchive.git
 | 
					 | 
				
			||||||
    GIT_TAG v3.4.3
 | 
					 | 
				
			||||||
    CMAKE_ARGS
 | 
					 | 
				
			||||||
      # passing the compiler seems to be needed for windows CI, sadly
 | 
					 | 
				
			||||||
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
 | 
					 | 
				
			||||||
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
      -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
      -DENABLE_LZ4=ON
 | 
					 | 
				
			||||||
      -ULZ4_*
 | 
					 | 
				
			||||||
      -DLZ4_INCLUDE_DIR=$<JOIN:$<TARGET_PROPERTY:lz4_lib,INTERFACE_INCLUDE_DIRECTORIES>,::>
 | 
					 | 
				
			||||||
      # because we are building a static lib, this lz4 library doesn't
 | 
					 | 
				
			||||||
      # actually matter since you can't generally link static libs to other static
 | 
					 | 
				
			||||||
      # libs. The include files are needed, but the library itself is not (until
 | 
					 | 
				
			||||||
      # we link our application, at which point we use the lz4 we built above).
 | 
					 | 
				
			||||||
      # nonetheless, we need to provide a library to libarchive else it will
 | 
					 | 
				
			||||||
      # NOT include lz4 support when configuring
 | 
					 | 
				
			||||||
      -DLZ4_LIBRARY=$<IF:$<CONFIG:Debug>,$<TARGET_PROPERTY:lz4_lib,IMPORTED_LOCATION_DEBUG>,$<TARGET_PROPERTY:lz4_lib,IMPORTED_LOCATION_RELEASE>>
 | 
					 | 
				
			||||||
      -DENABLE_WERROR=OFF
 | 
					 | 
				
			||||||
      -DENABLE_TAR=OFF
 | 
					 | 
				
			||||||
      -DENABLE_TAR_SHARED=OFF
 | 
					 | 
				
			||||||
      -DENABLE_INSTALL=ON
 | 
					 | 
				
			||||||
      -DENABLE_NETTLE=OFF
 | 
					 | 
				
			||||||
      -DENABLE_OPENSSL=OFF
 | 
					 | 
				
			||||||
      -DENABLE_LZO=OFF
 | 
					 | 
				
			||||||
      -DENABLE_LZMA=OFF
 | 
					 | 
				
			||||||
      -DENABLE_ZLIB=OFF
 | 
					 | 
				
			||||||
      -DENABLE_BZip2=OFF
 | 
					 | 
				
			||||||
      -DENABLE_LIBXML2=OFF
 | 
					 | 
				
			||||||
      -DENABLE_EXPAT=OFF
 | 
					 | 
				
			||||||
      -DENABLE_PCREPOSIX=OFF
 | 
					 | 
				
			||||||
      -DENABLE_LibGCC=OFF
 | 
					 | 
				
			||||||
      -DENABLE_CNG=OFF
 | 
					 | 
				
			||||||
      -DENABLE_CPIO=OFF
 | 
					 | 
				
			||||||
      -DENABLE_CPIO_SHARED=OFF
 | 
					 | 
				
			||||||
      -DENABLE_CAT=OFF
 | 
					 | 
				
			||||||
      -DENABLE_CAT_SHARED=OFF
 | 
					 | 
				
			||||||
      -DENABLE_XATTR=OFF
 | 
					 | 
				
			||||||
      -DENABLE_ACL=OFF
 | 
					 | 
				
			||||||
      -DENABLE_ICONV=OFF
 | 
					 | 
				
			||||||
      -DENABLE_TEST=OFF
 | 
					 | 
				
			||||||
      -DENABLE_COVERAGE=OFF
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
        "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP"
 | 
					 | 
				
			||||||
        "-DCMAKE_C_FLAGS_DEBUG=-MTd"
 | 
					 | 
				
			||||||
        "-DCMAKE_C_FLAGS_RELEASE=-MT"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
    LIST_SEPARATOR ::
 | 
					 | 
				
			||||||
    LOG_BUILD ON
 | 
					 | 
				
			||||||
    LOG_CONFIGURE ON
 | 
					 | 
				
			||||||
    BUILD_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND}
 | 
					 | 
				
			||||||
      --build .
 | 
					 | 
				
			||||||
      --config $<CONFIG>
 | 
					 | 
				
			||||||
      --target archive_static
 | 
					 | 
				
			||||||
      --parallel ${ep_procs}
 | 
					 | 
				
			||||||
      $<$<BOOL:${is_multiconfig}>:
 | 
					 | 
				
			||||||
        COMMAND
 | 
					 | 
				
			||||||
          ${CMAKE_COMMAND} -E copy
 | 
					 | 
				
			||||||
            <BINARY_DIR>/libarchive/$<CONFIG>/${ep_lib_prefix}archive${lib_post}$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
            <BINARY_DIR>/libarchive
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
    TEST_COMMAND ""
 | 
					 | 
				
			||||||
    INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
    DEPENDS lz4_lib
 | 
					 | 
				
			||||||
    BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/libarchive/${ep_lib_prefix}archive${lib_post}${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/libarchive/${ep_lib_prefix}archive${lib_post}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (libarchive BINARY_DIR)
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (libarchive SOURCE_DIR)
 | 
					 | 
				
			||||||
  if (CMAKE_VERBOSE_MAKEFILE)
 | 
					 | 
				
			||||||
    print_ep_logs (libarchive)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  file (MAKE_DIRECTORY ${SOURCE_DIR}/libarchive)
 | 
					 | 
				
			||||||
  set_target_properties (archive_lib PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/libarchive/${ep_lib_prefix}archive${lib_post}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/libarchive/${ep_lib_prefix}archive${lib_post}${ep_lib_suffix}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
      ${SOURCE_DIR}/libarchive
 | 
					 | 
				
			||||||
    INTERFACE_COMPILE_DEFINITIONS
 | 
					 | 
				
			||||||
      LIBARCHIVE_STATIC)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_dependencies (archive_lib libarchive)
 | 
					 | 
				
			||||||
target_link_libraries (archive_lib INTERFACE lz4_lib)
 | 
					 | 
				
			||||||
target_link_libraries (ripple_libs INTERFACE archive_lib)
 | 
					 | 
				
			||||||
exclude_if_included (libarchive)
 | 
					 | 
				
			||||||
exclude_if_included (archive_lib)
 | 
					 | 
				
			||||||
@@ -1,79 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: lz4
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_library (lz4_lib STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (NOT WIN32)
 | 
					 | 
				
			||||||
  find_package(lz4)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(lz4)
 | 
					 | 
				
			||||||
  set_target_properties (lz4_lib PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${lz4}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${lz4}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
      ${LZ4_INCLUDE_DIR})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  ExternalProject_Add (lz4
 | 
					 | 
				
			||||||
    PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
    GIT_REPOSITORY https://github.com/lz4/lz4.git
 | 
					 | 
				
			||||||
    GIT_TAG v1.9.2
 | 
					 | 
				
			||||||
    SOURCE_SUBDIR contrib/cmake_unofficial
 | 
					 | 
				
			||||||
    CMAKE_ARGS
 | 
					 | 
				
			||||||
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
 | 
					 | 
				
			||||||
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
      -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
      -DBUILD_STATIC_LIBS=ON
 | 
					 | 
				
			||||||
      -DBUILD_SHARED_LIBS=OFF
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
        "-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 $<CONFIG>
 | 
					 | 
				
			||||||
      --target lz4_static
 | 
					 | 
				
			||||||
      --parallel ${ep_procs}
 | 
					 | 
				
			||||||
      $<$<BOOL:${is_multiconfig}>:
 | 
					 | 
				
			||||||
        COMMAND
 | 
					 | 
				
			||||||
          ${CMAKE_COMMAND} -E copy
 | 
					 | 
				
			||||||
          <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}lz4$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
          <BINARY_DIR>
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
    TEST_COMMAND ""
 | 
					 | 
				
			||||||
    INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
    BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}lz4${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}lz4_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (lz4 BINARY_DIR)
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (lz4 SOURCE_DIR)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  file (MAKE_DIRECTORY ${SOURCE_DIR}/lz4)
 | 
					 | 
				
			||||||
  set_target_properties (lz4_lib PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}lz4_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}lz4${ep_lib_suffix}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
      ${SOURCE_DIR}/lib)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  if (CMAKE_VERBOSE_MAKEFILE)
 | 
					 | 
				
			||||||
    print_ep_logs (lz4)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  add_dependencies (lz4_lib lz4)
 | 
					 | 
				
			||||||
  target_link_libraries (ripple_libs INTERFACE lz4_lib)
 | 
					 | 
				
			||||||
  exclude_if_included (lz4)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exclude_if_included (lz4_lib)
 | 
					 | 
				
			||||||
@@ -1,31 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: nudb
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   NuDB is header-only, thus is an INTERFACE lib in CMake.
 | 
					 | 
				
			||||||
   TODO: move the library definition into NuDB repo and add
 | 
					 | 
				
			||||||
   proper targets and export/install
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (is_root_project) # NuDB not needed in the case of xrpl_core inclusion build
 | 
					 | 
				
			||||||
  add_library (nudb INTERFACE)
 | 
					 | 
				
			||||||
  FetchContent_Declare(
 | 
					 | 
				
			||||||
    nudb_src
 | 
					 | 
				
			||||||
    GIT_REPOSITORY https://github.com/CPPAlliance/NuDB.git
 | 
					 | 
				
			||||||
    GIT_TAG        2.0.5
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  FetchContent_GetProperties(nudb_src)
 | 
					 | 
				
			||||||
  if(NOT nudb_src_POPULATED)
 | 
					 | 
				
			||||||
    message (STATUS "Pausing to download NuDB...")
 | 
					 | 
				
			||||||
    FetchContent_Populate(nudb_src)
 | 
					 | 
				
			||||||
  endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  file(TO_CMAKE_PATH "${nudb_src_SOURCE_DIR}" nudb_src_SOURCE_DIR)
 | 
					 | 
				
			||||||
  # specify as system includes so as to avoid warnings
 | 
					 | 
				
			||||||
  target_include_directories (nudb SYSTEM INTERFACE ${nudb_src_SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
  target_link_libraries (nudb
 | 
					 | 
				
			||||||
    INTERFACE
 | 
					 | 
				
			||||||
      Boost::thread
 | 
					 | 
				
			||||||
      Boost::system)
 | 
					 | 
				
			||||||
  add_library (NIH::nudb ALIAS nudb)
 | 
					 | 
				
			||||||
  target_link_libraries (ripple_libs INTERFACE NIH::nudb)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
@@ -1,48 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: openssl
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#[===============================================[
 | 
					 | 
				
			||||||
  OPENSSL_ROOT_DIR is the only variable that
 | 
					 | 
				
			||||||
  FindOpenSSL honors for locating, so convert any
 | 
					 | 
				
			||||||
  OPENSSL_ROOT vars to this
 | 
					 | 
				
			||||||
#]===============================================]
 | 
					 | 
				
			||||||
if (NOT DEFINED OPENSSL_ROOT_DIR)
 | 
					 | 
				
			||||||
  if (DEFINED ENV{OPENSSL_ROOT})
 | 
					 | 
				
			||||||
    set (OPENSSL_ROOT_DIR $ENV{OPENSSL_ROOT})
 | 
					 | 
				
			||||||
  elseif (HOMEBREW)
 | 
					 | 
				
			||||||
    execute_process (COMMAND ${HOMEBREW} --prefix openssl
 | 
					 | 
				
			||||||
      OUTPUT_VARIABLE OPENSSL_ROOT_DIR
 | 
					 | 
				
			||||||
      OUTPUT_STRIP_TRAILING_WHITESPACE)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  file (TO_CMAKE_PATH "${OPENSSL_ROOT_DIR}" OPENSSL_ROOT_DIR)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (static)
 | 
					 | 
				
			||||||
  set (OPENSSL_USE_STATIC_LIBS ON)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
set (OPENSSL_MSVC_STATIC_RT ON)
 | 
					 | 
				
			||||||
find_package (OpenSSL 1.1.1 REQUIRED)
 | 
					 | 
				
			||||||
target_link_libraries (ripple_libs
 | 
					 | 
				
			||||||
  INTERFACE
 | 
					 | 
				
			||||||
    OpenSSL::SSL
 | 
					 | 
				
			||||||
    OpenSSL::Crypto)
 | 
					 | 
				
			||||||
# disable SSLv2...this can also be done when building/configuring OpenSSL
 | 
					 | 
				
			||||||
set_target_properties(OpenSSL::SSL PROPERTIES
 | 
					 | 
				
			||||||
    INTERFACE_COMPILE_DEFINITIONS OPENSSL_NO_SSL2)
 | 
					 | 
				
			||||||
#[=========================================================[
 | 
					 | 
				
			||||||
   https://gitlab.kitware.com/cmake/cmake/issues/16885
 | 
					 | 
				
			||||||
   depending on how openssl is built, it might depend
 | 
					 | 
				
			||||||
   on zlib. In fact, the openssl find package should
 | 
					 | 
				
			||||||
   figure this out for us, but it does not currently...
 | 
					 | 
				
			||||||
   so let's add zlib ourselves to the lib list
 | 
					 | 
				
			||||||
   TODO: investigate linking to static zlib for static
 | 
					 | 
				
			||||||
   build option
 | 
					 | 
				
			||||||
#]=========================================================]
 | 
					 | 
				
			||||||
find_package (ZLIB)
 | 
					 | 
				
			||||||
set (has_zlib FALSE)
 | 
					 | 
				
			||||||
if (TARGET ZLIB::ZLIB)
 | 
					 | 
				
			||||||
  set_target_properties(OpenSSL::Crypto PROPERTIES
 | 
					 | 
				
			||||||
    INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
 | 
					 | 
				
			||||||
  set (has_zlib TRUE)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
@@ -1,70 +0,0 @@
 | 
				
			|||||||
if(reporting)
 | 
					 | 
				
			||||||
    find_package(PostgreSQL)
 | 
					 | 
				
			||||||
    if(NOT PostgreSQL_FOUND)
 | 
					 | 
				
			||||||
        message("find_package did not find postgres")
 | 
					 | 
				
			||||||
        find_library(postgres NAMES pq libpq libpq-dev pq-dev postgresql-devel)
 | 
					 | 
				
			||||||
        find_path(libpq-fe NAMES libpq-fe.h PATH_SUFFIXES postgresql pgsql include)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if(NOT libpq-fe_FOUND OR NOT postgres_FOUND)
 | 
					 | 
				
			||||||
            message("No system installed Postgres found. Will build")
 | 
					 | 
				
			||||||
            add_library(postgres SHARED IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
            add_library(pgport SHARED IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
            add_library(pgcommon SHARED IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
            ExternalProject_Add(postgres_src
 | 
					 | 
				
			||||||
                PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
                GIT_REPOSITORY https://github.com/postgres/postgres.git
 | 
					 | 
				
			||||||
                GIT_TAG REL_14_5
 | 
					 | 
				
			||||||
                CONFIGURE_COMMAND ./configure --without-readline > /dev/null
 | 
					 | 
				
			||||||
                BUILD_COMMAND ${CMAKE_COMMAND} -E env --unset=MAKELEVEL make
 | 
					 | 
				
			||||||
                UPDATE_COMMAND ""
 | 
					 | 
				
			||||||
                BUILD_IN_SOURCE 1
 | 
					 | 
				
			||||||
                INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
                BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
                    <BINARY_DIR>/src/interfaces/libpq/${ep_lib_prefix}pq.a
 | 
					 | 
				
			||||||
                    <BINARY_DIR>/src/common/${ep_lib_prefix}pgcommon.a
 | 
					 | 
				
			||||||
                    <BINARY_DIR>/src/port/${ep_lib_prefix}pgport.a
 | 
					 | 
				
			||||||
                LOG_BUILD TRUE
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (postgres_src SOURCE_DIR)
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (postgres_src BINARY_DIR)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            set (postgres_src_SOURCE_DIR "${SOURCE_DIR}")
 | 
					 | 
				
			||||||
            file (MAKE_DIRECTORY ${postgres_src_SOURCE_DIR})
 | 
					 | 
				
			||||||
            list(APPEND INCLUDE_DIRS
 | 
					 | 
				
			||||||
                ${SOURCE_DIR}/src/include
 | 
					 | 
				
			||||||
                ${SOURCE_DIR}/src/interfaces/libpq
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
            set_target_properties(postgres PROPERTIES
 | 
					 | 
				
			||||||
                IMPORTED_LOCATION
 | 
					 | 
				
			||||||
                    ${BINARY_DIR}/src/interfaces/libpq/${ep_lib_prefix}pq.a
 | 
					 | 
				
			||||||
                INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
                    "${INCLUDE_DIRS}"
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
            set_target_properties(pgcommon PROPERTIES
 | 
					 | 
				
			||||||
                IMPORTED_LOCATION
 | 
					 | 
				
			||||||
                    ${BINARY_DIR}/src/common/${ep_lib_prefix}pgcommon.a
 | 
					 | 
				
			||||||
                INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
                    "${INCLUDE_DIRS}"
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
            set_target_properties(pgport PROPERTIES
 | 
					 | 
				
			||||||
                IMPORTED_LOCATION
 | 
					 | 
				
			||||||
                    ${BINARY_DIR}/src/port/${ep_lib_prefix}pgport.a
 | 
					 | 
				
			||||||
                INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
                    "${INCLUDE_DIRS}"
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
            add_dependencies(postgres postgres_src)
 | 
					 | 
				
			||||||
            add_dependencies(pgcommon postgres_src)
 | 
					 | 
				
			||||||
            add_dependencies(pgport postgres_src)
 | 
					 | 
				
			||||||
            file(TO_CMAKE_PATH "${postgres_src_SOURCE_DIR}" postgres_src_SOURCE_DIR)
 | 
					 | 
				
			||||||
            target_link_libraries(ripple_libs INTERFACE postgres pgcommon pgport)
 | 
					 | 
				
			||||||
        else()
 | 
					 | 
				
			||||||
            message("Found system installed Postgres via find_libary")
 | 
					 | 
				
			||||||
            target_include_directories(ripple_libs INTERFACE ${libpq-fe})
 | 
					 | 
				
			||||||
            target_link_libraries(ripple_libs INTERFACE ${postgres})
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
    else()
 | 
					 | 
				
			||||||
        message("Found system installed Postgres via find_package")
 | 
					 | 
				
			||||||
        target_include_directories(ripple_libs INTERFACE ${PostgreSQL_INCLUDE_DIRS})
 | 
					 | 
				
			||||||
        target_link_libraries(ripple_libs INTERFACE ${PostgreSQL_LIBRARIES})
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
@@ -1,155 +1,22 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					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.
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (static)
 | 
					file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/proto_gen)
 | 
				
			||||||
  set (Protobuf_USE_STATIC_LIBS ON)
 | 
					set(ccbd ${CMAKE_CURRENT_BINARY_DIR})
 | 
				
			||||||
endif ()
 | 
					set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_BINARY_DIR}/proto_gen)
 | 
				
			||||||
find_package (Protobuf 3.8)
 | 
					protobuf_generate_cpp(PROTO_SRCS PROTO_HDRS src/ripple/proto/ripple.proto)
 | 
				
			||||||
if (is_multiconfig)
 | 
					set(CMAKE_CURRENT_BINARY_DIR ${ccbd})
 | 
				
			||||||
    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=<BINARY_DIR>/_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=$<IF:$<BOOL:${has_zlib}>,ON,OFF>
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
      $<$<BOOL:${unity}>:-DCMAKE_UNITY_BUILD=ON}>
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
	"-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -EHa -MP"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
    LOG_BUILD ON
 | 
					 | 
				
			||||||
    LOG_CONFIGURE ON
 | 
					 | 
				
			||||||
    BUILD_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND}
 | 
					 | 
				
			||||||
      --build .
 | 
					 | 
				
			||||||
      --config $<CONFIG>
 | 
					 | 
				
			||||||
      --parallel ${ep_procs}
 | 
					 | 
				
			||||||
    TEST_COMMAND ""
 | 
					 | 
				
			||||||
    INSTALL_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $<CONFIG> --target install
 | 
					 | 
				
			||||||
    BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protoc_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/_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(pbufs STATIC ${PROTO_SRCS} ${PROTO_HDRS})
 | 
				
			||||||
    add_library (protobuf::libprotobuf STATIC IMPORTED GLOBAL)
 | 
					target_include_directories(pbufs SYSTEM PUBLIC
 | 
				
			||||||
  endif ()
 | 
					  ${CMAKE_BINARY_DIR}/proto_gen
 | 
				
			||||||
  file (MAKE_DIRECTORY ${BINARY_DIR}/_installed_/include)
 | 
					  ${CMAKE_BINARY_DIR}/proto_gen/src/ripple/proto
 | 
				
			||||||
  set_target_properties (protobuf::libprotobuf PROPERTIES
 | 
					)
 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					target_link_libraries(pbufs protobuf::libprotobuf)
 | 
				
			||||||
      ${BINARY_DIR}/_installed_/${CMAKE_INSTALL_LIBDIR}/${pbuf_lib_pre}protobuf_d${ep_lib_suffix}
 | 
					target_compile_options(pbufs
 | 
				
			||||||
    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
 | 
					  PUBLIC
 | 
				
			||||||
    $<$<BOOL:${is_xcode}>:
 | 
					    $<$<BOOL:${XCODE}>:
 | 
				
			||||||
      --system-header-prefix="google/protobuf"
 | 
					      --system-header-prefix="google/protobuf"
 | 
				
			||||||
      -Wno-deprecated-dynamic-exception-spec
 | 
					      -Wno-deprecated-dynamic-exception-spec
 | 
				
			||||||
    >)
 | 
					    >
 | 
				
			||||||
add_library (Ripple::pbufs ALIAS pbufs)
 | 
					)
 | 
				
			||||||
target_link_libraries (ripple_libs INTERFACE Ripple::pbufs)
 | 
					add_library(Ripple::pbufs ALIAS pbufs)
 | 
				
			||||||
exclude_if_included (pbufs)
 | 
					 | 
				
			||||||
@@ -1,177 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: rocksdb
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_library (rocksdb_lib UNKNOWN IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
set_target_properties (rocksdb_lib
 | 
					 | 
				
			||||||
  PROPERTIES INTERFACE_COMPILE_DEFINITIONS RIPPLE_ROCKSDB_AVAILABLE=1)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
option (local_rocksdb "use local build of rocksdb." OFF)
 | 
					 | 
				
			||||||
if (NOT local_rocksdb)
 | 
					 | 
				
			||||||
  find_package (RocksDB 6.27 QUIET CONFIG)
 | 
					 | 
				
			||||||
  if (TARGET RocksDB::rocksdb)
 | 
					 | 
				
			||||||
    message (STATUS "Found RocksDB using config.")
 | 
					 | 
				
			||||||
    get_target_property (_rockslib_l RocksDB::rocksdb IMPORTED_LOCATION_DEBUG)
 | 
					 | 
				
			||||||
    if (_rockslib_l)
 | 
					 | 
				
			||||||
      set_target_properties (rocksdb_lib PROPERTIES IMPORTED_LOCATION_DEBUG ${_rockslib_l})
 | 
					 | 
				
			||||||
    endif ()
 | 
					 | 
				
			||||||
    get_target_property (_rockslib_l RocksDB::rocksdb IMPORTED_LOCATION_RELEASE)
 | 
					 | 
				
			||||||
    if (_rockslib_l)
 | 
					 | 
				
			||||||
      set_target_properties (rocksdb_lib PROPERTIES IMPORTED_LOCATION_RELEASE ${_rockslib_l})
 | 
					 | 
				
			||||||
    endif ()
 | 
					 | 
				
			||||||
    get_target_property (_rockslib_l RocksDB::rocksdb IMPORTED_LOCATION)
 | 
					 | 
				
			||||||
    if (_rockslib_l)
 | 
					 | 
				
			||||||
      set_target_properties (rocksdb_lib PROPERTIES IMPORTED_LOCATION ${_rockslib_l})
 | 
					 | 
				
			||||||
    endif ()
 | 
					 | 
				
			||||||
    get_target_property (_rockslib_i RocksDB::rocksdb INTERFACE_INCLUDE_DIRECTORIES)
 | 
					 | 
				
			||||||
    if (_rockslib_i)
 | 
					 | 
				
			||||||
      set_target_properties (rocksdb_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${_rockslib_i})
 | 
					 | 
				
			||||||
    endif ()
 | 
					 | 
				
			||||||
    target_link_libraries (ripple_libs INTERFACE RocksDB::rocksdb)
 | 
					 | 
				
			||||||
  else ()
 | 
					 | 
				
			||||||
    # using a find module with rocksdb is difficult because
 | 
					 | 
				
			||||||
    # you have no idea how it was configured (transitive dependencies).
 | 
					 | 
				
			||||||
    # the code below will generally find rocksdb using the module, but
 | 
					 | 
				
			||||||
    # will then result in linker errors for static linkage since the
 | 
					 | 
				
			||||||
    # transitive dependencies are unknown. force local build here for now, but leave the code as
 | 
					 | 
				
			||||||
    # a placeholder for future investigation.
 | 
					 | 
				
			||||||
    if (static)
 | 
					 | 
				
			||||||
      set (local_rocksdb ON CACHE BOOL "" FORCE)
 | 
					 | 
				
			||||||
      # TBD if there is some way to extract transitive deps..then:
 | 
					 | 
				
			||||||
      #set (RocksDB_USE_STATIC ON)
 | 
					 | 
				
			||||||
    else ()
 | 
					 | 
				
			||||||
      find_package (RocksDB 6.27 MODULE)
 | 
					 | 
				
			||||||
      if (ROCKSDB_FOUND)
 | 
					 | 
				
			||||||
        if (RocksDB_LIBRARY_DEBUG)
 | 
					 | 
				
			||||||
          set_target_properties (rocksdb_lib PROPERTIES IMPORTED_LOCATION_DEBUG ${RocksDB_LIBRARY_DEBUG})
 | 
					 | 
				
			||||||
        endif ()
 | 
					 | 
				
			||||||
        set_target_properties (rocksdb_lib PROPERTIES IMPORTED_LOCATION_RELEASE ${RocksDB_LIBRARIES})
 | 
					 | 
				
			||||||
        set_target_properties (rocksdb_lib PROPERTIES IMPORTED_LOCATION ${RocksDB_LIBRARIES})
 | 
					 | 
				
			||||||
        set_target_properties (rocksdb_lib PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${RocksDB_INCLUDE_DIRS})
 | 
					 | 
				
			||||||
      else ()
 | 
					 | 
				
			||||||
        set (local_rocksdb ON CACHE BOOL "" FORCE)
 | 
					 | 
				
			||||||
      endif ()
 | 
					 | 
				
			||||||
    endif ()
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (local_rocksdb)
 | 
					 | 
				
			||||||
  message (STATUS "Using local build of RocksDB.")
 | 
					 | 
				
			||||||
  ExternalProject_Add (rocksdb
 | 
					 | 
				
			||||||
    PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
    GIT_REPOSITORY https://github.com/facebook/rocksdb.git
 | 
					 | 
				
			||||||
    GIT_TAG v6.27.3
 | 
					 | 
				
			||||||
    PATCH_COMMAND
 | 
					 | 
				
			||||||
      # only used by windows build
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND} -E copy_if_different
 | 
					 | 
				
			||||||
      ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/rocks_thirdparty.inc
 | 
					 | 
				
			||||||
      <SOURCE_DIR>/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
 | 
					 | 
				
			||||||
      <SOURCE_DIR>/util/build_version.cc.in
 | 
					 | 
				
			||||||
    CMAKE_ARGS
 | 
					 | 
				
			||||||
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
 | 
					 | 
				
			||||||
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
      $<$<BOOL:${unity}>:-DCMAKE_UNITY_BUILD=ON}>
 | 
					 | 
				
			||||||
      -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
      -DBUILD_SHARED_LIBS=OFF
 | 
					 | 
				
			||||||
      -DCMAKE_POSITION_INDEPENDENT_CODE=ON
 | 
					 | 
				
			||||||
      -DWITH_JEMALLOC=$<IF:$<BOOL:${jemalloc}>,ON,OFF>
 | 
					 | 
				
			||||||
      -DWITH_SNAPPY=ON
 | 
					 | 
				
			||||||
      -DWITH_LZ4=ON
 | 
					 | 
				
			||||||
      -DWITH_ZLIB=OFF
 | 
					 | 
				
			||||||
      -DUSE_RTTI=ON
 | 
					 | 
				
			||||||
      -DWITH_ZSTD=OFF
 | 
					 | 
				
			||||||
      -DWITH_GFLAGS=OFF
 | 
					 | 
				
			||||||
      -DWITH_BZ2=OFF
 | 
					 | 
				
			||||||
      -ULZ4_*
 | 
					 | 
				
			||||||
      -Ulz4_*
 | 
					 | 
				
			||||||
      -Dlz4_INCLUDE_DIRS=$<JOIN:$<TARGET_PROPERTY:lz4_lib,INTERFACE_INCLUDE_DIRECTORIES>,::>
 | 
					 | 
				
			||||||
      -Dlz4_LIBRARIES=$<IF:$<CONFIG:Debug>,$<TARGET_PROPERTY:lz4_lib,IMPORTED_LOCATION_DEBUG>,$<TARGET_PROPERTY:lz4_lib,IMPORTED_LOCATION_RELEASE>>
 | 
					 | 
				
			||||||
      -Dlz4_FOUND=ON
 | 
					 | 
				
			||||||
      -USNAPPY_*
 | 
					 | 
				
			||||||
      -Usnappy_*
 | 
					 | 
				
			||||||
      -USnappy_*
 | 
					 | 
				
			||||||
      -Dsnappy_INCLUDE_DIRS=$<JOIN:$<TARGET_PROPERTY:snappy_lib,INTERFACE_INCLUDE_DIRECTORIES>,::>
 | 
					 | 
				
			||||||
      -Dsnappy_LIBRARIES=$<IF:$<CONFIG:Debug>,$<TARGET_PROPERTY:snappy_lib,IMPORTED_LOCATION_DEBUG>,$<TARGET_PROPERTY:snappy_lib,IMPORTED_LOCATION_RELEASE>>
 | 
					 | 
				
			||||||
      -Dsnappy_FOUND=ON
 | 
					 | 
				
			||||||
      -DSnappy_INCLUDE_DIRS=$<JOIN:$<TARGET_PROPERTY:snappy_lib,INTERFACE_INCLUDE_DIRECTORIES>,::>
 | 
					 | 
				
			||||||
      -DSnappy_LIBRARIES=$<IF:$<CONFIG:Debug>,$<TARGET_PROPERTY:snappy_lib,IMPORTED_LOCATION_DEBUG>,$<TARGET_PROPERTY:snappy_lib,IMPORTED_LOCATION_RELEASE>>
 | 
					 | 
				
			||||||
      -DSnappy_FOUND=ON
 | 
					 | 
				
			||||||
      -DWITH_MD_LIBRARY=OFF
 | 
					 | 
				
			||||||
      -DWITH_RUNTIME_DEBUG=$<IF:$<CONFIG:Debug>,ON,OFF>
 | 
					 | 
				
			||||||
      -DFAIL_ON_WARNINGS=OFF
 | 
					 | 
				
			||||||
      -DWITH_ASAN=OFF
 | 
					 | 
				
			||||||
      -DWITH_TSAN=OFF
 | 
					 | 
				
			||||||
      -DWITH_UBSAN=OFF
 | 
					 | 
				
			||||||
      -DWITH_NUMA=OFF
 | 
					 | 
				
			||||||
      -DWITH_TBB=OFF
 | 
					 | 
				
			||||||
      -DWITH_WINDOWS_UTF8_FILENAMES=OFF
 | 
					 | 
				
			||||||
      -DWITH_XPRESS=OFF
 | 
					 | 
				
			||||||
      -DPORTABLE=ON
 | 
					 | 
				
			||||||
      -DFORCE_SSE42=OFF
 | 
					 | 
				
			||||||
      -DDISABLE_STALL_NOTIF=OFF
 | 
					 | 
				
			||||||
      -DOPTDBG=ON
 | 
					 | 
				
			||||||
      -DROCKSDB_LITE=OFF
 | 
					 | 
				
			||||||
      -DWITH_FALLOCATE=ON
 | 
					 | 
				
			||||||
      -DWITH_LIBRADOS=OFF
 | 
					 | 
				
			||||||
      -DWITH_JNI=OFF
 | 
					 | 
				
			||||||
      -DROCKSDB_INSTALL_ON_WINDOWS=OFF
 | 
					 | 
				
			||||||
      -DWITH_TESTS=OFF
 | 
					 | 
				
			||||||
      -DWITH_TOOLS=OFF
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -MP /DNDEBUG"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${MSVC}>>:
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS=-DNDEBUG"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
    LOG_BUILD ON
 | 
					 | 
				
			||||||
    LOG_CONFIGURE ON
 | 
					 | 
				
			||||||
    BUILD_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND}
 | 
					 | 
				
			||||||
      --build .
 | 
					 | 
				
			||||||
      --config $<CONFIG>
 | 
					 | 
				
			||||||
      --parallel ${ep_procs}
 | 
					 | 
				
			||||||
      $<$<BOOL:${is_multiconfig}>:
 | 
					 | 
				
			||||||
        COMMAND
 | 
					 | 
				
			||||||
          ${CMAKE_COMMAND} -E copy
 | 
					 | 
				
			||||||
          <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}rocksdb$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
          <BINARY_DIR>
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
    LIST_SEPARATOR ::
 | 
					 | 
				
			||||||
    TEST_COMMAND ""
 | 
					 | 
				
			||||||
    INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
    DEPENDS snappy_lib lz4_lib
 | 
					 | 
				
			||||||
    BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}rocksdb${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}rocksdb_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (rocksdb BINARY_DIR)
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (rocksdb SOURCE_DIR)
 | 
					 | 
				
			||||||
  if (CMAKE_VERBOSE_MAKEFILE)
 | 
					 | 
				
			||||||
    print_ep_logs (rocksdb)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  file (MAKE_DIRECTORY ${SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
  set_target_properties (rocksdb_lib PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}rocksdb_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}rocksdb${ep_lib_suffix}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
      ${SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
  add_dependencies (rocksdb_lib rocksdb)
 | 
					 | 
				
			||||||
  exclude_if_included (rocksdb)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
target_link_libraries (rocksdb_lib
 | 
					 | 
				
			||||||
  INTERFACE
 | 
					 | 
				
			||||||
    snappy_lib
 | 
					 | 
				
			||||||
    lz4_lib
 | 
					 | 
				
			||||||
    $<$<BOOL:${MSVC}>:rpcrt4>)
 | 
					 | 
				
			||||||
exclude_if_included (rocksdb_lib)
 | 
					 | 
				
			||||||
target_link_libraries (ripple_libs INTERFACE rocksdb_lib)
 | 
					 | 
				
			||||||
@@ -1,58 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: secp256k1
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_library (secp256k1_lib STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (NOT WIN32)
 | 
					 | 
				
			||||||
  find_package(secp256k1)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(secp256k1)
 | 
					 | 
				
			||||||
  set_target_properties (secp256k1_lib PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${secp256k1}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${secp256k1}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
      ${SECP256K1_INCLUDE_DIR})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  add_library (secp256k1 ALIAS secp256k1_lib)
 | 
					 | 
				
			||||||
  add_library (NIH::secp256k1 ALIAS secp256k1_lib)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set(INSTALL_SECP256K1 true)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  add_library (secp256k1 STATIC
 | 
					 | 
				
			||||||
    src/secp256k1/src/secp256k1.c)
 | 
					 | 
				
			||||||
  target_compile_definitions (secp256k1
 | 
					 | 
				
			||||||
    PRIVATE
 | 
					 | 
				
			||||||
      USE_NUM_NONE
 | 
					 | 
				
			||||||
      USE_FIELD_10X26
 | 
					 | 
				
			||||||
      USE_FIELD_INV_BUILTIN
 | 
					 | 
				
			||||||
      USE_SCALAR_8X32
 | 
					 | 
				
			||||||
      USE_SCALAR_INV_BUILTIN)
 | 
					 | 
				
			||||||
  target_include_directories (secp256k1
 | 
					 | 
				
			||||||
    PUBLIC
 | 
					 | 
				
			||||||
      $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>
 | 
					 | 
				
			||||||
      $<INSTALL_INTERFACE:include>
 | 
					 | 
				
			||||||
    PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src/secp256k1)
 | 
					 | 
				
			||||||
  target_compile_options (secp256k1
 | 
					 | 
				
			||||||
    PRIVATE
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:-wd4319>
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${MSVC}>>:
 | 
					 | 
				
			||||||
        -Wno-deprecated-declarations
 | 
					 | 
				
			||||||
        -Wno-unused-function
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
      $<$<BOOL:${is_gcc}>:-Wno-nonnull-compare>)
 | 
					 | 
				
			||||||
  target_link_libraries (ripple_libs INTERFACE NIH::secp256k1)
 | 
					 | 
				
			||||||
#[===========================[
 | 
					 | 
				
			||||||
     headers installation
 | 
					 | 
				
			||||||
#]===========================]
 | 
					 | 
				
			||||||
  install (
 | 
					 | 
				
			||||||
    FILES
 | 
					 | 
				
			||||||
      src/secp256k1/include/secp256k1.h
 | 
					 | 
				
			||||||
  DESTINATION include/secp256k1/include)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  add_library (NIH::secp256k1 ALIAS secp256k1)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
@@ -1,77 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: snappy
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_library (snappy_lib STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (NOT WIN32)
 | 
					 | 
				
			||||||
  find_package(snappy)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(snappy)
 | 
					 | 
				
			||||||
  set_target_properties (snappy_lib PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${snappy}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${snappy}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
    ${SNAPPY_INCLUDE_DIR})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  ExternalProject_Add (snappy
 | 
					 | 
				
			||||||
    PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
    GIT_REPOSITORY https://github.com/google/snappy.git
 | 
					 | 
				
			||||||
    GIT_TAG 1.1.7
 | 
					 | 
				
			||||||
    CMAKE_ARGS
 | 
					 | 
				
			||||||
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
 | 
					 | 
				
			||||||
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
      -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
      -DBUILD_SHARED_LIBS=OFF
 | 
					 | 
				
			||||||
      -DCMAKE_POSITION_INDEPENDENT_CODE=ON
 | 
					 | 
				
			||||||
      -DSNAPPY_BUILD_TESTS=OFF
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -EHa -MP"
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS_DEBUG=-MTd"
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS_RELEASE=-MT"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
    LOG_BUILD ON
 | 
					 | 
				
			||||||
    LOG_CONFIGURE ON
 | 
					 | 
				
			||||||
    BUILD_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND}
 | 
					 | 
				
			||||||
      --build .
 | 
					 | 
				
			||||||
      --config $<CONFIG>
 | 
					 | 
				
			||||||
      --parallel ${ep_procs}
 | 
					 | 
				
			||||||
      $<$<BOOL:${is_multiconfig}>:
 | 
					 | 
				
			||||||
        COMMAND
 | 
					 | 
				
			||||||
          ${CMAKE_COMMAND} -E copy
 | 
					 | 
				
			||||||
          <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}snappy$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
          <BINARY_DIR>
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
    TEST_COMMAND ""
 | 
					 | 
				
			||||||
    INSTALL_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND} -E copy_if_different <BINARY_DIR>/config.h <BINARY_DIR>/snappy-stubs-public.h <SOURCE_DIR>
 | 
					 | 
				
			||||||
    BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}snappy${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}snappy_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (snappy BINARY_DIR)
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (snappy SOURCE_DIR)
 | 
					 | 
				
			||||||
  if (CMAKE_VERBOSE_MAKEFILE)
 | 
					 | 
				
			||||||
    print_ep_logs (snappy)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  file (MAKE_DIRECTORY ${SOURCE_DIR}/snappy)
 | 
					 | 
				
			||||||
  set_target_properties (snappy_lib PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}snappy_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}snappy${ep_lib_suffix}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
      ${SOURCE_DIR})
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_dependencies (snappy_lib snappy)
 | 
					 | 
				
			||||||
target_link_libraries (ripple_libs INTERFACE snappy_lib)
 | 
					 | 
				
			||||||
exclude_if_included (snappy)
 | 
					 | 
				
			||||||
exclude_if_included (snappy_lib)
 | 
					 | 
				
			||||||
@@ -1,165 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: soci
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreach (_comp core empty sqlite3)
 | 
					 | 
				
			||||||
  add_library ("soci_${_comp}" STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
endforeach ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (NOT WIN32)
 | 
					 | 
				
			||||||
  find_package(soci)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (soci)
 | 
					 | 
				
			||||||
  foreach (_comp core empty sqlite3)
 | 
					 | 
				
			||||||
    set_target_properties ("soci_${_comp}" PROPERTIES
 | 
					 | 
				
			||||||
      IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
        ${soci}
 | 
					 | 
				
			||||||
      IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
        ${soci}
 | 
					 | 
				
			||||||
      INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
        ${SOCI_INCLUDE_DIR})
 | 
					 | 
				
			||||||
  endforeach ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  set (soci_lib_pre ${ep_lib_prefix})
 | 
					 | 
				
			||||||
  set (soci_lib_post "")
 | 
					 | 
				
			||||||
  if (WIN32)
 | 
					 | 
				
			||||||
    # for some reason soci on windows still prepends lib (non-standard)
 | 
					 | 
				
			||||||
    set (soci_lib_pre lib)
 | 
					 | 
				
			||||||
    # this version in the name might change if/when we change versions of soci
 | 
					 | 
				
			||||||
    set (soci_lib_post "_4_0")
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  get_target_property (_boost_incs Boost::date_time INTERFACE_INCLUDE_DIRECTORIES)
 | 
					 | 
				
			||||||
  get_target_property (_boost_dt Boost::date_time IMPORTED_LOCATION)
 | 
					 | 
				
			||||||
  if (NOT _boost_dt)
 | 
					 | 
				
			||||||
    get_target_property (_boost_dt Boost::date_time IMPORTED_LOCATION_RELEASE)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  if (NOT _boost_dt)
 | 
					 | 
				
			||||||
    get_target_property (_boost_dt Boost::date_time IMPORTED_LOCATION_DEBUG)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ExternalProject_Add (soci
 | 
					 | 
				
			||||||
    PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
    GIT_REPOSITORY https://github.com/SOCI/soci.git
 | 
					 | 
				
			||||||
    GIT_TAG 04e1870294918d20761736743bb6136314c42dd5
 | 
					 | 
				
			||||||
    # We had an issue with soci integer range checking for boost::optional
 | 
					 | 
				
			||||||
    # and needed to remove the exception that SOCI throws in this case.
 | 
					 | 
				
			||||||
    # This is *probably* a bug in SOCI, but has never been investigated more
 | 
					 | 
				
			||||||
    # nor reported to the maintainers.
 | 
					 | 
				
			||||||
    # This cmake script comments out the lines in question.
 | 
					 | 
				
			||||||
    # This patch process is likely fragile and should be reviewed carefully
 | 
					 | 
				
			||||||
    # 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
 | 
					 | 
				
			||||||
    CMAKE_ARGS
 | 
					 | 
				
			||||||
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
 | 
					 | 
				
			||||||
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_TOOLCHAIN_FILE}>:-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}>
 | 
					 | 
				
			||||||
      $<$<BOOL:${VCPKG_TARGET_TRIPLET}>:-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}>
 | 
					 | 
				
			||||||
      $<$<BOOL:${unity}>:-DCMAKE_UNITY_BUILD=ON}>
 | 
					 | 
				
			||||||
      -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/sqlite3
 | 
					 | 
				
			||||||
      -DCMAKE_MODULE_PATH=${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake
 | 
					 | 
				
			||||||
      -DCMAKE_INCLUDE_PATH=$<JOIN:$<TARGET_PROPERTY:sqlite,INTERFACE_INCLUDE_DIRECTORIES>,::>
 | 
					 | 
				
			||||||
      -DCMAKE_LIBRARY_PATH=${sqlite_BINARY_DIR}
 | 
					 | 
				
			||||||
      -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
      -DSOCI_CXX_C11=ON
 | 
					 | 
				
			||||||
      -DSOCI_STATIC=ON
 | 
					 | 
				
			||||||
      -DSOCI_LIBDIR=lib
 | 
					 | 
				
			||||||
      -DSOCI_SHARED=OFF
 | 
					 | 
				
			||||||
      -DSOCI_TESTS=OFF
 | 
					 | 
				
			||||||
      # hacks to workaround the fact that soci doesn't currently use
 | 
					 | 
				
			||||||
      # boost imported targets in its cmake. If they switch to
 | 
					 | 
				
			||||||
      # proper imported targets, this next line can be removed
 | 
					 | 
				
			||||||
      # (as well as the get_property above that sets _boost_incs)
 | 
					 | 
				
			||||||
      -DBoost_INCLUDE_DIRS=$<JOIN:${_boost_incs},::>
 | 
					 | 
				
			||||||
      -DBoost_INCLUDE_DIR=$<JOIN:${_boost_incs},::>
 | 
					 | 
				
			||||||
      -DBOOST_ROOT=${BOOST_ROOT}
 | 
					 | 
				
			||||||
      -DWITH_BOOST=ON
 | 
					 | 
				
			||||||
      -DBoost_FOUND=ON
 | 
					 | 
				
			||||||
      -DBoost_NO_BOOST_CMAKE=ON
 | 
					 | 
				
			||||||
      -DBoost_DATE_TIME_FOUND=ON
 | 
					 | 
				
			||||||
      -DSOCI_HAVE_BOOST=ON
 | 
					 | 
				
			||||||
      -DSOCI_HAVE_BOOST_DATE_TIME=ON
 | 
					 | 
				
			||||||
      -DBoost_DATE_TIME_LIBRARY=${_boost_dt}
 | 
					 | 
				
			||||||
      -DSOCI_DB2=OFF
 | 
					 | 
				
			||||||
      -DSOCI_FIREBIRD=OFF
 | 
					 | 
				
			||||||
      -DSOCI_MYSQL=OFF
 | 
					 | 
				
			||||||
      -DSOCI_ODBC=OFF
 | 
					 | 
				
			||||||
      -DSOCI_ORACLE=OFF
 | 
					 | 
				
			||||||
      -DSOCI_POSTGRESQL=OFF
 | 
					 | 
				
			||||||
      -DSOCI_SQLITE3=ON
 | 
					 | 
				
			||||||
      -DSQLITE3_INCLUDE_DIR=$<JOIN:$<TARGET_PROPERTY:sqlite,INTERFACE_INCLUDE_DIRECTORIES>,::>
 | 
					 | 
				
			||||||
      -DSQLITE3_LIBRARY=$<IF:$<CONFIG:Debug>,$<TARGET_PROPERTY:sqlite,IMPORTED_LOCATION_DEBUG>,$<TARGET_PROPERTY:sqlite,IMPORTED_LOCATION_RELEASE>>
 | 
					 | 
				
			||||||
      $<$<BOOL:${APPLE}>:-DCMAKE_FIND_FRAMEWORK=LAST>
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS=-GR -Gd -fp:precise -FS -EHa -MP"
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS_DEBUG=-MTd"
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS_RELEASE=-MT"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${MSVC}>>:
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS=-Wno-deprecated-declarations"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
      # SEE: https://github.com/SOCI/soci/issues/640
 | 
					 | 
				
			||||||
      $<$<AND:$<BOOL:${is_gcc}>,$<VERSION_GREATER_EQUAL:${CMAKE_CXX_COMPILER_VERSION},8>>:
 | 
					 | 
				
			||||||
        "-DCMAKE_CXX_FLAGS=-Wno-deprecated-declarations -Wno-error=format-overflow -Wno-format-overflow -Wno-error=format-truncation"
 | 
					 | 
				
			||||||
      >
 | 
					 | 
				
			||||||
    LIST_SEPARATOR ::
 | 
					 | 
				
			||||||
    LOG_BUILD ON
 | 
					 | 
				
			||||||
    LOG_CONFIGURE ON
 | 
					 | 
				
			||||||
    BUILD_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND}
 | 
					 | 
				
			||||||
      --build .
 | 
					 | 
				
			||||||
      --config $<CONFIG>
 | 
					 | 
				
			||||||
      --parallel ${ep_procs}
 | 
					 | 
				
			||||||
      $<$<BOOL:${is_multiconfig}>:
 | 
					 | 
				
			||||||
        COMMAND
 | 
					 | 
				
			||||||
          ${CMAKE_COMMAND} -E copy
 | 
					 | 
				
			||||||
          <BINARY_DIR>/lib/$<CONFIG>/${soci_lib_pre}soci_core${soci_lib_post}$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
          <BINARY_DIR>/lib/$<CONFIG>/${soci_lib_pre}soci_empty${soci_lib_post}$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
          <BINARY_DIR>/lib/$<CONFIG>/${soci_lib_pre}soci_sqlite3${soci_lib_post}$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
          <BINARY_DIR>/lib
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
    TEST_COMMAND ""
 | 
					 | 
				
			||||||
    INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
    DEPENDS sqlite
 | 
					 | 
				
			||||||
    BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/lib/${soci_lib_pre}soci_core${soci_lib_post}${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/lib/${soci_lib_pre}soci_core${soci_lib_post}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/lib/${soci_lib_pre}soci_empty${soci_lib_post}${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/lib/${soci_lib_pre}soci_empty${soci_lib_post}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/lib/${soci_lib_pre}soci_sqlite3${soci_lib_post}${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/lib/${soci_lib_pre}soci_sqlite3${soci_lib_post}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (soci BINARY_DIR)
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (soci SOURCE_DIR)
 | 
					 | 
				
			||||||
  if (CMAKE_VERBOSE_MAKEFILE)
 | 
					 | 
				
			||||||
    print_ep_logs (soci)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
  file (MAKE_DIRECTORY ${SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
  file (MAKE_DIRECTORY ${BINARY_DIR}/include)
 | 
					 | 
				
			||||||
  foreach (_comp core empty sqlite3)
 | 
					 | 
				
			||||||
    set_target_properties ("soci_${_comp}" PROPERTIES
 | 
					 | 
				
			||||||
      IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
        ${BINARY_DIR}/lib/${soci_lib_pre}soci_${_comp}${soci_lib_post}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
      IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
        ${BINARY_DIR}/lib/${soci_lib_pre}soci_${_comp}${soci_lib_post}${ep_lib_suffix}
 | 
					 | 
				
			||||||
      INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
        "${SOURCE_DIR}/include;${BINARY_DIR}/include")
 | 
					 | 
				
			||||||
    add_dependencies ("soci_${_comp}" soci) # something has to depend on the ExternalProject to trigger it
 | 
					 | 
				
			||||||
    target_link_libraries (ripple_libs INTERFACE "soci_${_comp}")
 | 
					 | 
				
			||||||
    if (NOT _comp STREQUAL "core")
 | 
					 | 
				
			||||||
      target_link_libraries ("soci_${_comp}" INTERFACE soci_core)
 | 
					 | 
				
			||||||
    endif ()
 | 
					 | 
				
			||||||
  endforeach ()
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
foreach (_comp core empty sqlite3)
 | 
					 | 
				
			||||||
  exclude_if_included ("soci_${_comp}")
 | 
					 | 
				
			||||||
endforeach ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exclude_if_included (soci)
 | 
					 | 
				
			||||||
@@ -1,93 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: sqlite
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
add_library (sqlite STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if (NOT WIN32)
 | 
					 | 
				
			||||||
  find_package(sqlite)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(sqlite3)
 | 
					 | 
				
			||||||
  set_target_properties (sqlite PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${sqlite3}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${sqlite3}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
    ${SQLITE_INCLUDE_DIR})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  ExternalProject_Add (sqlite3
 | 
					 | 
				
			||||||
    PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
    # sqlite doesn't use git, but it provides versioned tarballs
 | 
					 | 
				
			||||||
    URL https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip
 | 
					 | 
				
			||||||
      http://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip
 | 
					 | 
				
			||||||
      https://www2.sqlite.org/2018/sqlite-amalgamation-3260000.zip
 | 
					 | 
				
			||||||
      http://www2.sqlite.org/2018/sqlite-amalgamation-3260000.zip
 | 
					 | 
				
			||||||
    # ^^^ version is apparent in the URL:  3260000 => 3.26.0
 | 
					 | 
				
			||||||
    URL_HASH SHA256=de5dcab133aa339a4cf9e97c40aa6062570086d6085d8f9ad7bc6ddf8a52096e
 | 
					 | 
				
			||||||
    # Don't need to worry about MITM attacks too much because the download
 | 
					 | 
				
			||||||
    # is checked against a strong hash
 | 
					 | 
				
			||||||
    TLS_VERIFY false
 | 
					 | 
				
			||||||
    # we wrote a very simple CMake file to build sqlite
 | 
					 | 
				
			||||||
    # so that's what we copy here so that we can build with
 | 
					 | 
				
			||||||
    # CMake. sqlite doesn't generally provided a build system
 | 
					 | 
				
			||||||
    # for the single amalgamation source file.
 | 
					 | 
				
			||||||
    PATCH_COMMAND
 | 
					 | 
				
			||||||
      ${CMAKE_COMMAND} -E copy_if_different
 | 
					 | 
				
			||||||
      ${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/CMake_sqlite3.txt
 | 
					 | 
				
			||||||
      <SOURCE_DIR>/CMakeLists.txt
 | 
					 | 
				
			||||||
    CMAKE_ARGS
 | 
					 | 
				
			||||||
      -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
 | 
					 | 
				
			||||||
      -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
 | 
					 | 
				
			||||||
      $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
      -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
      $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
      $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
        "-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 $<CONFIG>
 | 
					 | 
				
			||||||
      --parallel ${ep_procs}
 | 
					 | 
				
			||||||
      $<$<BOOL:${is_multiconfig}>:
 | 
					 | 
				
			||||||
        COMMAND
 | 
					 | 
				
			||||||
          ${CMAKE_COMMAND} -E copy
 | 
					 | 
				
			||||||
            <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}sqlite3$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
            <BINARY_DIR>
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
    TEST_COMMAND ""
 | 
					 | 
				
			||||||
    INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
    BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}sqlite3${ep_lib_suffix}
 | 
					 | 
				
			||||||
      <BINARY_DIR>/${ep_lib_prefix}sqlite3_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (sqlite3 BINARY_DIR)
 | 
					 | 
				
			||||||
  ExternalProject_Get_Property (sqlite3 SOURCE_DIR)
 | 
					 | 
				
			||||||
  if (CMAKE_VERBOSE_MAKEFILE)
 | 
					 | 
				
			||||||
    print_ep_logs (sqlite3)
 | 
					 | 
				
			||||||
  endif ()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  set_target_properties (sqlite PROPERTIES
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_DEBUG
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}sqlite3_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
    IMPORTED_LOCATION_RELEASE
 | 
					 | 
				
			||||||
      ${BINARY_DIR}/${ep_lib_prefix}sqlite3${ep_lib_suffix}
 | 
					 | 
				
			||||||
    INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
      ${SOURCE_DIR})
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  add_dependencies (sqlite sqlite3)
 | 
					 | 
				
			||||||
  exclude_if_included (sqlite3)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
target_link_libraries (sqlite INTERFACE $<$<NOT:$<BOOL:${MSVC}>>:dl>)
 | 
					 | 
				
			||||||
target_link_libraries (ripple_libs INTERFACE sqlite)
 | 
					 | 
				
			||||||
exclude_if_included (sqlite)
 | 
					 | 
				
			||||||
set(sqlite_BINARY_DIR ${BINARY_DIR})
 | 
					 | 
				
			||||||
@@ -1,84 +1 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					find_package(wasmedge REQUIRED)
 | 
				
			||||||
 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}
 | 
					 | 
				
			||||||
    $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-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
 | 
					 | 
				
			||||||
    $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
    $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
      "-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 $<CONFIG>
 | 
					 | 
				
			||||||
    $<$<VERSION_GREATER_EQUAL:${CMAKE_VERSION},3.12>:--parallel ${ep_procs}>
 | 
					 | 
				
			||||||
  TEST_COMMAND ""
 | 
					 | 
				
			||||||
  INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
  BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
      <BINARY_DIR>/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 (wasmedge::wasmedge ALIAS wasmedge)
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,167 +0,0 @@
 | 
				
			|||||||
if(reporting)
 | 
					 | 
				
			||||||
    find_library(cassandra NAMES cassandra)
 | 
					 | 
				
			||||||
    if(NOT cassandra)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        message("System installed Cassandra cpp driver not found. Will build")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        find_library(zlib NAMES zlib1g-dev zlib-devel zlib z)
 | 
					 | 
				
			||||||
        if(NOT zlib)
 | 
					 | 
				
			||||||
            message("zlib not found. will build")
 | 
					 | 
				
			||||||
            add_library(zlib STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
            ExternalProject_Add(zlib_src
 | 
					 | 
				
			||||||
                PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
                GIT_REPOSITORY https://github.com/madler/zlib.git
 | 
					 | 
				
			||||||
                GIT_TAG v1.2.12
 | 
					 | 
				
			||||||
                INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
                BUILD_BYPRODUCTS <BINARY_DIR>/${ep_lib_prefix}z.a
 | 
					 | 
				
			||||||
                LOG_BUILD TRUE
 | 
					 | 
				
			||||||
                LOG_CONFIGURE TRUE
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (zlib_src SOURCE_DIR)
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (zlib_src BINARY_DIR)
 | 
					 | 
				
			||||||
            set (zlib_src_SOURCE_DIR "${SOURCE_DIR}")
 | 
					 | 
				
			||||||
            file (MAKE_DIRECTORY ${zlib_src_SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            set_target_properties (zlib PROPERTIES
 | 
					 | 
				
			||||||
                IMPORTED_LOCATION
 | 
					 | 
				
			||||||
                ${BINARY_DIR}/${ep_lib_prefix}z.a
 | 
					 | 
				
			||||||
                INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
                ${SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
            add_dependencies(zlib zlib_src)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            file(TO_CMAKE_PATH "${zlib_src_SOURCE_DIR}" zlib_src_SOURCE_DIR)
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        find_library(krb5 NAMES krb5-dev libkrb5-dev)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if(NOT krb5)
 | 
					 | 
				
			||||||
            message("krb5 not found. will build")
 | 
					 | 
				
			||||||
            add_library(krb5 STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
            ExternalProject_Add(krb5_src
 | 
					 | 
				
			||||||
                PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
                GIT_REPOSITORY https://github.com/krb5/krb5.git
 | 
					 | 
				
			||||||
                GIT_TAG krb5-1.20-final
 | 
					 | 
				
			||||||
                UPDATE_COMMAND ""
 | 
					 | 
				
			||||||
                CONFIGURE_COMMAND autoreconf src && CFLAGS=-fcommon ./src/configure --enable-static --disable-shared > /dev/null
 | 
					 | 
				
			||||||
                BUILD_IN_SOURCE 1
 | 
					 | 
				
			||||||
                BUILD_COMMAND make
 | 
					 | 
				
			||||||
                INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
                BUILD_BYPRODUCTS <SOURCE_DIR>/lib/${ep_lib_prefix}krb5.a
 | 
					 | 
				
			||||||
                LOG_BUILD TRUE
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (krb5_src SOURCE_DIR)
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (krb5_src BINARY_DIR)
 | 
					 | 
				
			||||||
            set (krb5_src_SOURCE_DIR "${SOURCE_DIR}")
 | 
					 | 
				
			||||||
            file (MAKE_DIRECTORY ${krb5_src_SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            set_target_properties (krb5 PROPERTIES
 | 
					 | 
				
			||||||
                IMPORTED_LOCATION
 | 
					 | 
				
			||||||
                ${BINARY_DIR}/lib/${ep_lib_prefix}krb5.a
 | 
					 | 
				
			||||||
                INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
                ${SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
            add_dependencies(krb5 krb5_src)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            file(TO_CMAKE_PATH "${krb5_src_SOURCE_DIR}" krb5_src_SOURCE_DIR)
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        find_library(libuv1 NAMES uv1 libuv1 liubuv1-dev libuv1:amd64)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if(NOT libuv1)
 | 
					 | 
				
			||||||
            message("libuv1 not found, will build")
 | 
					 | 
				
			||||||
            add_library(libuv1 STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
            ExternalProject_Add(libuv_src
 | 
					 | 
				
			||||||
                PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
                GIT_REPOSITORY https://github.com/libuv/libuv.git
 | 
					 | 
				
			||||||
                GIT_TAG v1.44.2
 | 
					 | 
				
			||||||
                INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
                BUILD_BYPRODUCTS <BINARY_DIR>/${ep_lib_prefix}uv_a.a
 | 
					 | 
				
			||||||
                LOG_BUILD TRUE
 | 
					 | 
				
			||||||
                LOG_CONFIGURE TRUE
 | 
					 | 
				
			||||||
                )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (libuv_src SOURCE_DIR)
 | 
					 | 
				
			||||||
            ExternalProject_Get_Property (libuv_src BINARY_DIR)
 | 
					 | 
				
			||||||
            set (libuv_src_SOURCE_DIR "${SOURCE_DIR}")
 | 
					 | 
				
			||||||
            file (MAKE_DIRECTORY ${libuv_src_SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            set_target_properties (libuv1 PROPERTIES
 | 
					 | 
				
			||||||
                IMPORTED_LOCATION
 | 
					 | 
				
			||||||
                ${BINARY_DIR}/${ep_lib_prefix}uv_a.a
 | 
					 | 
				
			||||||
                INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
                ${SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
            add_dependencies(libuv1 libuv_src)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            file(TO_CMAKE_PATH "${libuv_src_SOURCE_DIR}" libuv_src_SOURCE_DIR)
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        add_library (cassandra STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
        ExternalProject_Add(cassandra_src
 | 
					 | 
				
			||||||
            PREFIX ${nih_cache_path}
 | 
					 | 
				
			||||||
            GIT_REPOSITORY https://github.com/datastax/cpp-driver.git
 | 
					 | 
				
			||||||
            GIT_TAG 2.16.2
 | 
					 | 
				
			||||||
            CMAKE_ARGS
 | 
					 | 
				
			||||||
            -DLIBUV_ROOT_DIR=${BINARY_DIR}
 | 
					 | 
				
			||||||
            -DLIBUV_LIBARY=${BINARY_DIR}/libuv_a.a
 | 
					 | 
				
			||||||
            -DLIBUV_INCLUDE_DIR=${SOURCE_DIR}/include
 | 
					 | 
				
			||||||
            -DCASS_BUILD_STATIC=ON
 | 
					 | 
				
			||||||
            -DCASS_BUILD_SHARED=OFF
 | 
					 | 
				
			||||||
            -DOPENSSL_ROOT_DIR=/opt/local/openssl
 | 
					 | 
				
			||||||
            INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
            BUILD_BYPRODUCTS <BINARY_DIR>/${ep_lib_prefix}cassandra_static.a
 | 
					 | 
				
			||||||
            LOG_BUILD TRUE
 | 
					 | 
				
			||||||
            LOG_CONFIGURE TRUE
 | 
					 | 
				
			||||||
            )
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        ExternalProject_Get_Property (cassandra_src SOURCE_DIR)
 | 
					 | 
				
			||||||
        ExternalProject_Get_Property (cassandra_src BINARY_DIR)
 | 
					 | 
				
			||||||
        set (cassandra_src_SOURCE_DIR "${SOURCE_DIR}")
 | 
					 | 
				
			||||||
        file (MAKE_DIRECTORY ${cassandra_src_SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        set_target_properties (cassandra PROPERTIES
 | 
					 | 
				
			||||||
            IMPORTED_LOCATION
 | 
					 | 
				
			||||||
            ${BINARY_DIR}/${ep_lib_prefix}cassandra_static.a
 | 
					 | 
				
			||||||
            INTERFACE_INCLUDE_DIRECTORIES
 | 
					 | 
				
			||||||
            ${SOURCE_DIR}/include)
 | 
					 | 
				
			||||||
        add_dependencies(cassandra cassandra_src)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if(NOT libuv1)
 | 
					 | 
				
			||||||
            ExternalProject_Add_StepDependencies(cassandra_src build libuv1)
 | 
					 | 
				
			||||||
            target_link_libraries(cassandra INTERFACE libuv1)
 | 
					 | 
				
			||||||
        else()
 | 
					 | 
				
			||||||
            target_link_libraries(cassandra INTERFACE ${libuv1})
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
        if(NOT krb5)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            ExternalProject_Add_StepDependencies(cassandra_src build krb5)
 | 
					 | 
				
			||||||
            target_link_libraries(cassandra INTERFACE krb5)
 | 
					 | 
				
			||||||
        else()
 | 
					 | 
				
			||||||
            target_link_libraries(cassandra INTERFACE ${krb5})
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if(NOT zlib)
 | 
					 | 
				
			||||||
            ExternalProject_Add_StepDependencies(cassandra_src build zlib)
 | 
					 | 
				
			||||||
            target_link_libraries(cassandra INTERFACE zlib)
 | 
					 | 
				
			||||||
        else()
 | 
					 | 
				
			||||||
            target_link_libraries(cassandra INTERFACE ${zlib})
 | 
					 | 
				
			||||||
        endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        file(TO_CMAKE_PATH "${cassandra_src_SOURCE_DIR}" cassandra_src_SOURCE_DIR)
 | 
					 | 
				
			||||||
        target_link_libraries(ripple_libs INTERFACE cassandra)
 | 
					 | 
				
			||||||
    else()
 | 
					 | 
				
			||||||
        message("Found system installed cassandra cpp driver")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        find_path(cassandra_includes NAMES cassandra.h REQUIRED)
 | 
					 | 
				
			||||||
        target_link_libraries (ripple_libs INTERFACE ${cassandra})
 | 
					 | 
				
			||||||
        target_include_directories(ripple_libs INTERFACE ${cassandra_includes})
 | 
					 | 
				
			||||||
    endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    exclude_if_included (cassandra)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
@@ -1,18 +0,0 @@
 | 
				
			|||||||
#[===================================================================[
 | 
					 | 
				
			||||||
   NIH dep: date
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   the main library is header-only, thus is an INTERFACE lib in CMake.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
   NOTE: this has been accepted into c++20 so can likely be replaced
 | 
					 | 
				
			||||||
   when we update to that standard
 | 
					 | 
				
			||||||
#]===================================================================]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
find_package (date QUIET)
 | 
					 | 
				
			||||||
if (NOT TARGET date::date)
 | 
					 | 
				
			||||||
  FetchContent_Declare(
 | 
					 | 
				
			||||||
    hh_date_src
 | 
					 | 
				
			||||||
    GIT_REPOSITORY https://github.com/HowardHinnant/date.git
 | 
					 | 
				
			||||||
    GIT_TAG        fc4cf092f9674f2670fb9177edcdee870399b829
 | 
					 | 
				
			||||||
  )
 | 
					 | 
				
			||||||
  FetchContent_MakeAvailable(hh_date_src)
 | 
					 | 
				
			||||||
endif ()
 | 
					 | 
				
			||||||
@@ -1,324 +1,15 @@
 | 
				
			|||||||
 | 
					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 ()
 | 
					 | 
				
			||||||
      if(${_location} MATCHES "\\.a$")
 | 
					 | 
				
			||||||
        add_library(c-ares::cares STATIC IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
      else()
 | 
					 | 
				
			||||||
        add_library(c-ares::cares SHARED IMPORTED GLOBAL)
 | 
					 | 
				
			||||||
      endif()      
 | 
					 | 
				
			||||||
      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}
 | 
					 | 
				
			||||||
        $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
        -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
        $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
        -DCMAKE_INSTALL_PREFIX=<BINARY_DIR>/_installed_
 | 
					 | 
				
			||||||
        -DCARES_SHARED=OFF
 | 
					 | 
				
			||||||
        -DCARES_STATIC=ON
 | 
					 | 
				
			||||||
        -DCARES_STATIC_PIC=ON
 | 
					 | 
				
			||||||
        -DCARES_INSTALL=ON
 | 
					 | 
				
			||||||
        -DCARES_MSVC_STATIC_RUNTIME=ON
 | 
					 | 
				
			||||||
        $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
          "-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP"
 | 
					 | 
				
			||||||
        >
 | 
					 | 
				
			||||||
      LOG_BUILD ON
 | 
					 | 
				
			||||||
      LOG_CONFIGURE ON
 | 
					 | 
				
			||||||
      BUILD_COMMAND
 | 
					 | 
				
			||||||
        ${CMAKE_COMMAND}
 | 
					 | 
				
			||||||
          --build .
 | 
					 | 
				
			||||||
          --config $<CONFIG>
 | 
					 | 
				
			||||||
          --parallel ${ep_procs}
 | 
					 | 
				
			||||||
      TEST_COMMAND ""
 | 
					 | 
				
			||||||
      INSTALL_COMMAND
 | 
					 | 
				
			||||||
        ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $<CONFIG> --target install
 | 
					 | 
				
			||||||
      BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
        <BINARY_DIR>/_installed_/lib/${ep_lib_prefix}cares${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/_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}
 | 
					 | 
				
			||||||
          $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
          -DCMAKE_DEBUG_POSTFIX=${zlib_debug_postfix}
 | 
					 | 
				
			||||||
          $<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
 | 
					 | 
				
			||||||
          -DCMAKE_INSTALL_PREFIX=<BINARY_DIR>/_installed_
 | 
					 | 
				
			||||||
          -DBUILD_SHARED_LIBS=OFF
 | 
					 | 
				
			||||||
          $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
            "-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 $<CONFIG>
 | 
					 | 
				
			||||||
            --parallel ${ep_procs}
 | 
					 | 
				
			||||||
        TEST_COMMAND ""
 | 
					 | 
				
			||||||
        INSTALL_COMMAND
 | 
					 | 
				
			||||||
          ${CMAKE_COMMAND} -E env --unset=DESTDIR ${CMAKE_COMMAND} --build . --config $<CONFIG> --target install
 | 
					 | 
				
			||||||
        BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
          <BINARY_DIR>/_installed_/lib/${ep_lib_prefix}${zlib_base}${ep_lib_suffix}
 | 
					 | 
				
			||||||
          <BINARY_DIR>/_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_CXX_STANDARD=17
 | 
					 | 
				
			||||||
        $<$<BOOL:${CMAKE_VERBOSE_MAKEFILE}>:-DCMAKE_VERBOSE_MAKEFILE=ON>
 | 
					 | 
				
			||||||
        $<$<BOOL:${CMAKE_TOOLCHAIN_FILE}>:-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}>
 | 
					 | 
				
			||||||
        $<$<BOOL:${VCPKG_TARGET_TRIPLET}>:-DVCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}>
 | 
					 | 
				
			||||||
        $<$<BOOL:${unity}>:-DCMAKE_UNITY_BUILD=ON}>
 | 
					 | 
				
			||||||
        -DCMAKE_DEBUG_POSTFIX=_d
 | 
					 | 
				
			||||||
        $<$<NOT:$<BOOL:${is_multiconfig}>>:-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=$<IF:$<AND:$<BOOL:${Protobuf_FOUND}>,$<NOT:$<BOOL:${static}>>>,OFF,ON>
 | 
					 | 
				
			||||||
        -DProtobuf_INCLUDE_DIR=$<JOIN:$<TARGET_PROPERTY:protobuf::libprotobuf,INTERFACE_INCLUDE_DIRECTORIES>,:_:>
 | 
					 | 
				
			||||||
        -DProtobuf_LIBRARY=$<IF:$<CONFIG:Debug>,$<TARGET_PROPERTY:protobuf::libprotobuf,IMPORTED_LOCATION_DEBUG>,$<TARGET_PROPERTY:protobuf::libprotobuf,IMPORTED_LOCATION_RELEASE>>
 | 
					 | 
				
			||||||
        -DProtobuf_PROTOC_LIBRARY=$<IF:$<CONFIG:Debug>,$<TARGET_PROPERTY:protobuf::libprotoc,IMPORTED_LOCATION_DEBUG>,$<TARGET_PROPERTY:protobuf::libprotoc,IMPORTED_LOCATION_RELEASE>>
 | 
					 | 
				
			||||||
        -DProtobuf_PROTOC_EXECUTABLE=$<TARGET_PROPERTY:protobuf::protoc,IMPORTED_LOCATION>
 | 
					 | 
				
			||||||
        -DgRPC_ZLIB_PROVIDER=package
 | 
					 | 
				
			||||||
        $<$<NOT:$<BOOL:${has_zlib}>>:-DZLIB_ROOT=${zlib_binary_dir}/_installed_>
 | 
					 | 
				
			||||||
        $<$<BOOL:${MSVC}>:
 | 
					 | 
				
			||||||
          "-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 $<CONFIG>
 | 
					 | 
				
			||||||
        --parallel ${ep_procs}
 | 
					 | 
				
			||||||
        $<$<BOOL:${is_multiconfig}>:
 | 
					 | 
				
			||||||
          COMMAND
 | 
					 | 
				
			||||||
            ${CMAKE_COMMAND} -E copy
 | 
					 | 
				
			||||||
            <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}grpc${grpc_suffix}$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
            <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}grpc++${grpc_suffix}$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
            <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}address_sorting$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
            <BINARY_DIR>/$<CONFIG>/${ep_lib_prefix}gpr$<$<CONFIG:Debug>:_d>${ep_lib_suffix}
 | 
					 | 
				
			||||||
            <BINARY_DIR>/$<CONFIG>/grpc_cpp_plugin${CMAKE_EXECUTABLE_SUFFIX}
 | 
					 | 
				
			||||||
            <BINARY_DIR>
 | 
					 | 
				
			||||||
          >
 | 
					 | 
				
			||||||
      LIST_SEPARATOR :_:
 | 
					 | 
				
			||||||
      TEST_COMMAND ""
 | 
					 | 
				
			||||||
      INSTALL_COMMAND ""
 | 
					 | 
				
			||||||
      DEPENDS c-ares_src
 | 
					 | 
				
			||||||
      BUILD_BYPRODUCTS
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}grpc${grpc_suffix}${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}grpc${grpc_suffix}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}grpc++${grpc_suffix}${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}grpc++${grpc_suffix}_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}address_sorting${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}address_sorting_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}gpr${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/${ep_lib_prefix}gpr_d${ep_lib_suffix}
 | 
					 | 
				
			||||||
        <BINARY_DIR>/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
 | 
					   generate protobuf sources for
 | 
				
			||||||
   grpc defs and bundle into a
 | 
					   grpc defs and bundle into a
 | 
				
			||||||
   static lib
 | 
					   static lib
 | 
				
			||||||
#]=================================]
 | 
					#]=================================]
 | 
				
			||||||
set (GRPC_GEN_DIR "${CMAKE_BINARY_DIR}/proto_gen_grpc")
 | 
					set(GRPC_GEN_DIR "${CMAKE_BINARY_DIR}/proto_gen_grpc")
 | 
				
			||||||
file (MAKE_DIRECTORY ${GRPC_GEN_DIR})
 | 
					file(MAKE_DIRECTORY ${GRPC_GEN_DIR})
 | 
				
			||||||
set (GRPC_PROTO_SRCS)
 | 
					set(GRPC_PROTO_SRCS)
 | 
				
			||||||
set (GRPC_PROTO_HDRS)
 | 
					set(GRPC_PROTO_HDRS)
 | 
				
			||||||
set (GRPC_PROTO_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/src/ripple/proto/org")
 | 
					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")
 | 
					file(GLOB_RECURSE GRPC_DEFINITION_FILES LIST_DIRECTORIES false "${GRPC_PROTO_ROOT}/*.proto")
 | 
				
			||||||
foreach(file ${GRPC_DEFINITION_FILES})
 | 
					foreach(file ${GRPC_DEFINITION_FILES})
 | 
				
			||||||
  get_filename_component(_abs_file ${file} ABSOLUTE)
 | 
					  get_filename_component(_abs_file ${file} ABSOLUTE)
 | 
				
			||||||
@@ -329,10 +20,10 @@ foreach(file ${GRPC_DEFINITION_FILES})
 | 
				
			|||||||
  get_filename_component(_rel_root_dir ${_rel_root_file} DIRECTORY)
 | 
					  get_filename_component(_rel_root_dir ${_rel_root_file} DIRECTORY)
 | 
				
			||||||
  file(RELATIVE_PATH _rel_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_abs_dir})
 | 
					  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_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.cc")
 | 
				
			||||||
  set (src_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.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_1 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.grpc.pb.h")
 | 
				
			||||||
  set (hdr_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.h")
 | 
					  set(hdr_2 "${GRPC_GEN_DIR}/${_rel_root_dir}/${_basename}.pb.h")
 | 
				
			||||||
  add_custom_command(
 | 
					  add_custom_command(
 | 
				
			||||||
    OUTPUT ${src_1} ${src_2} ${hdr_1} ${hdr_2}
 | 
					    OUTPUT ${src_1} ${src_2} ${hdr_1} ${hdr_2}
 | 
				
			||||||
    COMMAND protobuf::protoc
 | 
					    COMMAND protobuf::protoc
 | 
				
			||||||
@@ -350,20 +41,22 @@ foreach(file ${GRPC_DEFINITION_FILES})
 | 
				
			|||||||
    list(APPEND GRPC_PROTO_HDRS ${hdr_1} ${hdr_2})
 | 
					    list(APPEND GRPC_PROTO_HDRS ${hdr_1} ${hdr_2})
 | 
				
			||||||
endforeach()
 | 
					endforeach()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_library (grpc_pbufs STATIC ${GRPC_PROTO_SRCS} ${GRPC_PROTO_HDRS})
 | 
					add_library(grpc_pbufs STATIC ${GRPC_PROTO_SRCS} ${GRPC_PROTO_HDRS})
 | 
				
			||||||
#target_include_directories (grpc_pbufs PRIVATE src)
 | 
					#target_include_directories(grpc_pbufs PRIVATE src)
 | 
				
			||||||
target_include_directories (grpc_pbufs SYSTEM PUBLIC ${GRPC_GEN_DIR})
 | 
					target_include_directories(grpc_pbufs SYSTEM PUBLIC ${GRPC_GEN_DIR})
 | 
				
			||||||
target_link_libraries (grpc_pbufs protobuf::libprotobuf "gRPC::grpc++${grpc_suffix}")
 | 
					target_link_libraries(grpc_pbufs
 | 
				
			||||||
target_compile_options (grpc_pbufs
 | 
					  "gRPC::grpc++"
 | 
				
			||||||
 | 
					  # libgrpc is missing references.
 | 
				
			||||||
 | 
					  absl::random_random
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					target_compile_options(grpc_pbufs
 | 
				
			||||||
  PRIVATE
 | 
					  PRIVATE
 | 
				
			||||||
    $<$<BOOL:${MSVC}>:-wd4065>
 | 
					    $<$<BOOL:${MSVC}>:-wd4065>
 | 
				
			||||||
    $<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-declarations>
 | 
					    $<$<NOT:$<BOOL:${MSVC}>>:-Wno-deprecated-declarations>
 | 
				
			||||||
  PUBLIC
 | 
					  PUBLIC
 | 
				
			||||||
    $<$<BOOL:${MSVC}>:-wd4996>
 | 
					    $<$<BOOL:${MSVC}>:-wd4996>
 | 
				
			||||||
    $<$<BOOL:${is_xcode}>:
 | 
					    $<$<BOOL:${XCODE}>:
 | 
				
			||||||
      --system-header-prefix="google/protobuf"
 | 
					      --system-header-prefix="google/protobuf"
 | 
				
			||||||
      -Wno-deprecated-dynamic-exception-spec
 | 
					      -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)
 | 
					 | 
				
			||||||
							
								
								
									
										137
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										137
									
								
								CMakeLists.txt
									
									
									
									
									
								
							@@ -50,11 +50,6 @@ if(CMAKE_TOOLCHAIN_FILE)
 | 
				
			|||||||
  endif()
 | 
					  endif()
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (NOT USE_CONAN)
 | 
					 | 
				
			||||||
  list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake")
 | 
					 | 
				
			||||||
  list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/Builds/CMake/deps")
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
include (CheckCXXCompilerFlag)
 | 
					include (CheckCXXCompilerFlag)
 | 
				
			||||||
include (FetchContent)
 | 
					include (FetchContent)
 | 
				
			||||||
include (ExternalProject)
 | 
					include (ExternalProject)
 | 
				
			||||||
@@ -67,9 +62,7 @@ endif ()
 | 
				
			|||||||
include(RippledSanity)
 | 
					include(RippledSanity)
 | 
				
			||||||
include(RippledVersion)
 | 
					include(RippledVersion)
 | 
				
			||||||
include(RippledSettings)
 | 
					include(RippledSettings)
 | 
				
			||||||
if (NOT USE_CONAN)
 | 
					
 | 
				
			||||||
  include(RippledNIH)
 | 
					 | 
				
			||||||
endif()
 | 
					 | 
				
			||||||
# this check has to remain in the top-level cmake
 | 
					# this check has to remain in the top-level cmake
 | 
				
			||||||
# because of the early return statement
 | 
					# because of the early return statement
 | 
				
			||||||
if (packages_only)
 | 
					if (packages_only)
 | 
				
			||||||
@@ -81,86 +74,64 @@ endif ()
 | 
				
			|||||||
include(RippledCompiler)
 | 
					include(RippledCompiler)
 | 
				
			||||||
include(RippledInterface)
 | 
					include(RippledInterface)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
###
 | 
					include(deps/Boost)
 | 
				
			||||||
if (NOT USE_CONAN)
 | 
					find_package(OpenSSL 1.1.1 REQUIRED)
 | 
				
			||||||
  add_subdirectory(src/secp256k1)
 | 
					set_target_properties(OpenSSL::SSL PROPERTIES
 | 
				
			||||||
  add_subdirectory(src/ed25519-donna)
 | 
					  INTERFACE_COMPILE_DEFINITIONS OPENSSL_NO_SSL2
 | 
				
			||||||
  include(deps/Boost)
 | 
					)
 | 
				
			||||||
  include(deps/OpenSSL)
 | 
					add_subdirectory(src/secp256k1)
 | 
				
			||||||
  # include(deps/Secp256k1)
 | 
					add_subdirectory(src/ed25519-donna)
 | 
				
			||||||
  # include(deps/Ed25519-donna)
 | 
					find_package(lz4 REQUIRED)
 | 
				
			||||||
  include(deps/Lz4)
 | 
					# Target names with :: are not allowed in a generator expression.
 | 
				
			||||||
  include(deps/Libarchive)
 | 
					# We need to pull the include directories and imported location properties
 | 
				
			||||||
  include(deps/Sqlite)
 | 
					# from separate targets.
 | 
				
			||||||
  include(deps/Soci)
 | 
					find_package(LibArchive REQUIRED)
 | 
				
			||||||
  include(deps/Snappy)
 | 
					find_package(SOCI REQUIRED)
 | 
				
			||||||
  include(deps/Rocksdb)
 | 
					find_package(SQLite3 REQUIRED)
 | 
				
			||||||
  include(deps/Nudb)
 | 
					find_package(Snappy REQUIRED)
 | 
				
			||||||
  include(deps/date)
 | 
					# find_package(wasmedge REQUIRED)
 | 
				
			||||||
  include(deps/Protobuf)
 | 
					option(rocksdb "Enable RocksDB" ON)
 | 
				
			||||||
  include(deps/gRPC)
 | 
					if(rocksdb)
 | 
				
			||||||
  include(deps/cassandra)
 | 
					  find_package(RocksDB REQUIRED)
 | 
				
			||||||
  include(deps/Postgres)
 | 
					  set_target_properties(RocksDB::rocksdb PROPERTIES
 | 
				
			||||||
  include(deps/WasmEdge)
 | 
					    INTERFACE_COMPILE_DEFINITIONS RIPPLE_ROCKSDB_AVAILABLE=1
 | 
				
			||||||
else()
 | 
					 | 
				
			||||||
  include(conan/Boost)
 | 
					 | 
				
			||||||
  find_package(OpenSSL 1.1.1 REQUIRED)
 | 
					 | 
				
			||||||
  set_target_properties(OpenSSL::SSL PROPERTIES
 | 
					 | 
				
			||||||
    INTERFACE_COMPILE_DEFINITIONS OPENSSL_NO_SSL2
 | 
					 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
  add_subdirectory(src/secp256k1)
 | 
					  target_link_libraries(ripple_libs INTERFACE RocksDB::rocksdb)
 | 
				
			||||||
  add_subdirectory(src/ed25519-donna)
 | 
					endif()
 | 
				
			||||||
  find_package(lz4 REQUIRED)
 | 
					find_package(nudb REQUIRED)
 | 
				
			||||||
  # Target names with :: are not allowed in a generator expression.
 | 
					find_package(date REQUIRED)
 | 
				
			||||||
  # We need to pull the include directories and imported location properties
 | 
					include(deps/Protobuf)
 | 
				
			||||||
  # from separate targets.
 | 
					include(deps/gRPC)
 | 
				
			||||||
  find_package(LibArchive REQUIRED)
 | 
					include(deps/WasmEdge) 
 | 
				
			||||||
  find_package(SOCI REQUIRED)
 | 
					  if(TARGET nudb::core)
 | 
				
			||||||
  find_package(SQLite3 REQUIRED)
 | 
					  set(nudb nudb::core)
 | 
				
			||||||
  find_package(Snappy REQUIRED)
 | 
					elseif(TARGET NuDB::nudb)
 | 
				
			||||||
  find_package(wasmedge REQUIRED)
 | 
					  set(nudb NuDB::nudb)
 | 
				
			||||||
  option(rocksdb "Enable RocksDB" ON)
 | 
					else()
 | 
				
			||||||
  if(rocksdb)
 | 
					  message(FATAL_ERROR "unknown nudb target")
 | 
				
			||||||
    find_package(RocksDB REQUIRED)
 | 
					endif()
 | 
				
			||||||
    set_target_properties(RocksDB::rocksdb PROPERTIES
 | 
					target_link_libraries(ripple_libs INTERFACE ${nudb})
 | 
				
			||||||
      INTERFACE_COMPILE_DEFINITIONS RIPPLE_ROCKSDB_AVAILABLE=1
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    target_link_libraries(ripple_libs INTERFACE RocksDB::rocksdb)
 | 
					 | 
				
			||||||
  endif()
 | 
					 | 
				
			||||||
  find_package(nudb REQUIRED)
 | 
					 | 
				
			||||||
  find_package(date REQUIRED)
 | 
					 | 
				
			||||||
  include(conan/Protobuf)
 | 
					 | 
				
			||||||
  include(conan/gRPC)
 | 
					 | 
				
			||||||
    if(TARGET nudb::core)
 | 
					 | 
				
			||||||
    set(nudb nudb::core)
 | 
					 | 
				
			||||||
  elseif(TARGET NuDB::nudb)
 | 
					 | 
				
			||||||
    set(nudb NuDB::nudb)
 | 
					 | 
				
			||||||
  else()
 | 
					 | 
				
			||||||
    message(FATAL_ERROR "unknown nudb target")
 | 
					 | 
				
			||||||
  endif()
 | 
					 | 
				
			||||||
  target_link_libraries(ripple_libs INTERFACE ${nudb})
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if(reporting)
 | 
					if(reporting)
 | 
				
			||||||
    find_package(cassandra-cpp-driver REQUIRED)
 | 
					  find_package(cassandra-cpp-driver REQUIRED)
 | 
				
			||||||
    find_package(PostgreSQL REQUIRED)
 | 
					  find_package(PostgreSQL REQUIRED)
 | 
				
			||||||
    target_link_libraries(ripple_libs INTERFACE
 | 
					 | 
				
			||||||
      cassandra-cpp-driver::cassandra-cpp-driver
 | 
					 | 
				
			||||||
      PostgreSQL::PostgreSQL
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
  endif()
 | 
					 | 
				
			||||||
  target_link_libraries(ripple_libs INTERFACE
 | 
					  target_link_libraries(ripple_libs INTERFACE
 | 
				
			||||||
    ed25519::ed25519
 | 
					    cassandra-cpp-driver::cassandra-cpp-driver
 | 
				
			||||||
    LibArchive::LibArchive
 | 
					    PostgreSQL::PostgreSQL
 | 
				
			||||||
    lz4::lz4
 | 
					 | 
				
			||||||
    OpenSSL::Crypto
 | 
					 | 
				
			||||||
    OpenSSL::SSL
 | 
					 | 
				
			||||||
    Ripple::grpc_pbufs
 | 
					 | 
				
			||||||
    Ripple::pbufs
 | 
					 | 
				
			||||||
    secp256k1::secp256k1
 | 
					 | 
				
			||||||
    soci::soci
 | 
					 | 
				
			||||||
    SQLite::SQLite3
 | 
					 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					target_link_libraries(ripple_libs INTERFACE
 | 
				
			||||||
 | 
					  ed25519::ed25519
 | 
				
			||||||
 | 
					  LibArchive::LibArchive
 | 
				
			||||||
 | 
					  lz4::lz4
 | 
				
			||||||
 | 
					  OpenSSL::Crypto
 | 
				
			||||||
 | 
					  OpenSSL::SSL
 | 
				
			||||||
 | 
					  Ripple::grpc_pbufs
 | 
				
			||||||
 | 
					  Ripple::pbufs
 | 
				
			||||||
 | 
					  secp256k1::secp256k1
 | 
				
			||||||
 | 
					  soci::soci
 | 
				
			||||||
 | 
					  SQLite::SQLite3
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
###
 | 
					###
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,8 +5,6 @@
 | 
				
			|||||||
# debugging.
 | 
					# debugging.
 | 
				
			||||||
set -ex
 | 
					set -ex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set -e
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo "START INSIDE CONTAINER - CORE"
 | 
					echo "START INSIDE CONTAINER - CORE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "-- BUILD CORES:       $3"
 | 
					echo "-- BUILD CORES:       $3"
 | 
				
			||||||
@@ -27,7 +25,8 @@ if [[ "$?" -ne "0" ]]; then
 | 
				
			|||||||
  exit 127
 | 
					  exit 127
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
perl -i -pe "s/^(\\s*)-DBUILD_SHARED_LIBS=OFF/\\1-DBUILD_SHARED_LIBS=OFF\\n\\1-DROCKSDB_BUILD_SHARED=OFF/g" Builds/CMake/deps/Rocksdb.cmake &&
 | 
					BUILD_TYPE=Release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mv Builds/CMake/deps/WasmEdge.cmake Builds/CMake/deps/WasmEdge.old &&
 | 
					mv Builds/CMake/deps/WasmEdge.cmake Builds/CMake/deps/WasmEdge.old &&
 | 
				
			||||||
echo "find_package(LLVM REQUIRED CONFIG)
 | 
					echo "find_package(LLVM REQUIRED CONFIG)
 | 
				
			||||||
message(STATUS \"Found LLVM \${LLVM_PACKAGE_VERSION}\")
 | 
					message(STATUS \"Found LLVM \${LLVM_PACKAGE_VERSION}\")
 | 
				
			||||||
@@ -38,13 +37,30 @@ target_link_libraries (ripple_libs INTERFACE wasmedge)
 | 
				
			|||||||
add_library (wasmedge::wasmedge ALIAS wasmedge)
 | 
					add_library (wasmedge::wasmedge ALIAS wasmedge)
 | 
				
			||||||
message(\"WasmEdge DONE\")
 | 
					message(\"WasmEdge DONE\")
 | 
				
			||||||
" > Builds/CMake/deps/WasmEdge.cmake &&
 | 
					" > Builds/CMake/deps/WasmEdge.cmake &&
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export LDFLAGS="-static-libstdc++"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					git config --global --add safe.directory /io &&
 | 
				
			||||||
git checkout src/ripple/protocol/impl/BuildInfo.cpp &&
 | 
					git checkout src/ripple/protocol/impl/BuildInfo.cpp &&
 | 
				
			||||||
sed -i s/\"0.0.0\"/\"$(date +%Y).$(date +%-m).$(date +%-d)-$(git rev-parse --abbrev-ref HEAD)+$4\"/g src/ripple/protocol/impl/BuildInfo.cpp &&
 | 
					sed -i s/\"0.0.0\"/\"$(date +%Y).$(date +%-m).$(date +%-d)-$(git rev-parse --abbrev-ref HEAD)$(if [ -n "$4" ]; then echo "+$4"; fi)\"/g src/ripple/protocol/impl/BuildInfo.cpp &&
 | 
				
			||||||
 | 
					conan export external/snappy snappy/1.1.10@ &&
 | 
				
			||||||
 | 
					conan export external/soci soci/4.0.3@ &&
 | 
				
			||||||
cd release-build &&
 | 
					cd release-build &&
 | 
				
			||||||
cmake .. -DCMAKE_BUILD_TYPE=Release -DBoost_NO_BOOST_CMAKE=ON -DLLVM_DIR=/usr/lib64/llvm13/lib/cmake/llvm/ -DLLVM_LIBRARY_DIR=/usr/lib64/llvm13/lib/ -DWasmEdge_LIB=/usr/local/lib64/libwasmedge.a &&
 | 
					conan install .. --output-folder . --build missing --settings build_type=$BUILD_TYPE &&
 | 
				
			||||||
make -j$3 VERBOSE=1 &&
 | 
					cmake .. -G Ninja \
 | 
				
			||||||
strip -s rippled &&
 | 
					  -DCMAKE_BUILD_TYPE=$BUILD_TYPE \
 | 
				
			||||||
 | 
					  -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \
 | 
				
			||||||
 | 
					  -DCMAKE_EXE_LINKER_FLAGS="-static-libstdc++" \
 | 
				
			||||||
 | 
					  -DLLVM_DIR=$LLVM_DIR \
 | 
				
			||||||
 | 
					  -DWasmEdge_LIB=$WasmEdge_LIB \
 | 
				
			||||||
 | 
					  -Dxrpld=TRUE \
 | 
				
			||||||
 | 
					  -Dtests=TRUE &&
 | 
				
			||||||
 | 
					ccache -z &&
 | 
				
			||||||
 | 
					ninja -j $3 &&
 | 
				
			||||||
 | 
					ccache -s &&
 | 
				
			||||||
 | 
					strip -s rippled &&	
 | 
				
			||||||
mv rippled xahaud &&
 | 
					mv rippled xahaud &&
 | 
				
			||||||
 | 
					libcheck xahaud &&
 | 
				
			||||||
echo "Build host: `hostname`" > release.info &&
 | 
					echo "Build host: `hostname`" > release.info &&
 | 
				
			||||||
echo "Build date: `date`" >> release.info &&
 | 
					echo "Build date: `date`" >> release.info &&
 | 
				
			||||||
echo "Build md5: `md5sum xahaud`" >> release.info &&
 | 
					echo "Build md5: `md5sum xahaud`" >> release.info &&
 | 
				
			||||||
@@ -69,8 +85,8 @@ fi
 | 
				
			|||||||
cd ..;
 | 
					cd ..;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
mv src/ripple/net/impl/RegisterSSLCerts.cpp.old src/ripple/net/impl/RegisterSSLCerts.cpp;
 | 
					mv src/ripple/net/impl/RegisterSSLCerts.cpp.old src/ripple/net/impl/RegisterSSLCerts.cpp;
 | 
				
			||||||
mv Builds/CMake/deps/Rocksdb.cmake.old Builds/CMake/deps/Rocksdb.cmake;
 | 
					 | 
				
			||||||
mv Builds/CMake/deps/WasmEdge.old Builds/CMake/deps/WasmEdge.cmake;
 | 
					mv Builds/CMake/deps/WasmEdge.old Builds/CMake/deps/WasmEdge.cmake;
 | 
				
			||||||
 | 
					rm src/certs/certbundle.h;
 | 
				
			||||||
 | 
					git checkout src/ripple/protocol/impl/BuildInfo.cpp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "END INSIDE CONTAINER - CORE"
 | 
					echo "END INSIDE CONTAINER - CORE"
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,6 @@
 | 
				
			|||||||
# processes launched or upon any unbound variable.
 | 
					# processes launched or upon any unbound variable.
 | 
				
			||||||
# We use set -x to print commands before running them to help with
 | 
					# We use set -x to print commands before running them to help with
 | 
				
			||||||
# debugging.
 | 
					# debugging.
 | 
				
			||||||
set -ex
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
set -e
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "START INSIDE CONTAINER - FULL"
 | 
					echo "START INSIDE CONTAINER - FULL"
 | 
				
			||||||
@@ -16,13 +14,6 @@ echo "-- GITHUB_RUN_NUMBER: $4"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
umask 0000;
 | 
					umask 0000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Fixing CentOS 7 EOL"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
 | 
					 | 
				
			||||||
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
 | 
					 | 
				
			||||||
yum clean all
 | 
					 | 
				
			||||||
yum-config-manager --disable centos-sclo-sclo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
####
 | 
					####
 | 
				
			||||||
 | 
					
 | 
				
			||||||
cd /io;
 | 
					cd /io;
 | 
				
			||||||
@@ -73,92 +64,15 @@ then
 | 
				
			|||||||
    #endif/g" src/ripple/net/impl/RegisterSSLCerts.cpp &&
 | 
					    #endif/g" src/ripple/net/impl/RegisterSSLCerts.cpp &&
 | 
				
			||||||
    sed -i "s/#include <ripple\/net\/RegisterSSLCerts.h>/\0\n#include <certs\/certbundle.h>/g" src/ripple/net/impl/RegisterSSLCerts.cpp
 | 
					    sed -i "s/#include <ripple\/net\/RegisterSSLCerts.h>/\0\n#include <certs\/certbundle.h>/g" src/ripple/net/impl/RegisterSSLCerts.cpp
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
mkdir -p .nih_c;
 | 
					# Environment setup moved to Dockerfile in release-builder.sh
 | 
				
			||||||
mkdir -p .nih_toolchain;
 | 
					source /opt/rh/gcc-toolset-11/enable
 | 
				
			||||||
cd .nih_toolchain &&
 | 
					export PATH=/usr/local/bin:$PATH
 | 
				
			||||||
yum install -y wget lz4 lz4-devel git llvm13-static.x86_64 llvm13-devel.x86_64 devtoolset-10-binutils zlib-static ncurses-static -y \
 | 
					export CC='ccache gcc' &&
 | 
				
			||||||
  devtoolset-7-gcc-c++ \
 | 
					export CXX='ccache g++' &&
 | 
				
			||||||
  devtoolset-9-gcc-c++ \
 | 
					 | 
				
			||||||
  devtoolset-10-gcc-c++ \
 | 
					 | 
				
			||||||
  snappy snappy-devel \
 | 
					 | 
				
			||||||
  zlib zlib-devel \
 | 
					 | 
				
			||||||
  lz4-devel \
 | 
					 | 
				
			||||||
  libasan &&
 | 
					 | 
				
			||||||
export PATH=`echo $PATH | sed -E "s/devtoolset-9/devtoolset-7/g"` &&
 | 
					 | 
				
			||||||
echo "-- Install ZStd 1.1.3 --" &&
 | 
					 | 
				
			||||||
yum install epel-release -y &&
 | 
					 | 
				
			||||||
ZSTD_VERSION="1.1.3" &&
 | 
					 | 
				
			||||||
( wget -nc -q -O zstd-${ZSTD_VERSION}.tar.gz https://github.com/facebook/zstd/archive/v${ZSTD_VERSION}.tar.gz; echo "" ) &&
 | 
					 | 
				
			||||||
tar xzvf zstd-${ZSTD_VERSION}.tar.gz &&
 | 
					 | 
				
			||||||
cd zstd-${ZSTD_VERSION} &&
 | 
					 | 
				
			||||||
make -j$3 install &&
 | 
					 | 
				
			||||||
cd .. &&
 | 
					 | 
				
			||||||
echo "-- Install Cmake 3.23.1 --" &&
 | 
					 | 
				
			||||||
pwd &&
 | 
					 | 
				
			||||||
( wget -nc -q https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-linux-x86_64.tar.gz; echo "" ) &&
 | 
					 | 
				
			||||||
tar -xzf cmake-3.23.1-linux-x86_64.tar.gz -C /hbb/ &&
 | 
					 | 
				
			||||||
echo "-- Install Boost 1.86.0 --" &&
 | 
					 | 
				
			||||||
pwd &&
 | 
					 | 
				
			||||||
( wget -nc -q https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.gz; echo "" ) &&
 | 
					 | 
				
			||||||
tar -xzf boost_1_86_0.tar.gz &&
 | 
					 | 
				
			||||||
cd boost_1_86_0 && ./bootstrap.sh && ./b2  link=static -j$3 && ./b2 install &&
 | 
					 | 
				
			||||||
cd ../ &&
 | 
					 | 
				
			||||||
echo "-- Install Protobuf 3.20.0 --" &&
 | 
					 | 
				
			||||||
pwd &&
 | 
					 | 
				
			||||||
( wget -nc -q https://github.com/protocolbuffers/protobuf/releases/download/v3.20.0/protobuf-all-3.20.0.tar.gz; echo "" ) &&
 | 
					 | 
				
			||||||
tar -xzf protobuf-all-3.20.0.tar.gz &&
 | 
					 | 
				
			||||||
cd protobuf-3.20.0/ &&
 | 
					 | 
				
			||||||
./autogen.sh && ./configure --prefix=/usr --disable-shared link=static && make -j$3 && make install &&
 | 
					 | 
				
			||||||
cd .. &&
 | 
					 | 
				
			||||||
echo "-- Build LLD --" &&
 | 
					 | 
				
			||||||
pwd &&
 | 
					 | 
				
			||||||
ln /usr/bin/llvm-config-13 /usr/bin/llvm-config &&
 | 
					 | 
				
			||||||
mv /opt/rh/devtoolset-9/root/usr/bin/ar /opt/rh/devtoolset-9/root/usr/bin/ar-9 &&
 | 
					 | 
				
			||||||
ln /opt/rh/devtoolset-10/root/usr/bin/ar  /opt/rh/devtoolset-9/root/usr/bin/ar &&
 | 
					 | 
				
			||||||
( wget -nc -q https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/lld-13.0.1.src.tar.xz; echo "" ) &&
 | 
					 | 
				
			||||||
( wget -nc -q https://github.com/llvm/llvm-project/releases/download/llvmorg-13.0.1/libunwind-13.0.1.src.tar.xz; echo "" ) &&
 | 
					 | 
				
			||||||
tar -xf lld-13.0.1.src.tar.xz &&
 | 
					 | 
				
			||||||
tar -xf libunwind-13.0.1.src.tar.xz &&
 | 
					 | 
				
			||||||
cp -r libunwind-13.0.1.src/include libunwind-13.0.1.src/src lld-13.0.1.src/ &&
 | 
					 | 
				
			||||||
cd lld-13.0.1.src &&
 | 
					 | 
				
			||||||
rm -rf build CMakeCache.txt &&
 | 
					 | 
				
			||||||
mkdir -p build &&
 | 
					 | 
				
			||||||
cd build &&
 | 
					 | 
				
			||||||
cmake .. -DLLVM_LIBRARY_DIR=/usr/lib64/llvm13/lib/ -DCMAKE_INSTALL_PREFIX=/usr/lib64/llvm13/ -DCMAKE_BUILD_TYPE=Release &&
 | 
					 | 
				
			||||||
make -j$3 install &&
 | 
					 | 
				
			||||||
ln -s /usr/lib64/llvm13/lib/include/lld /usr/include/lld &&
 | 
					 | 
				
			||||||
cp /usr/lib64/llvm13/lib/liblld*.a /usr/local/lib/ &&
 | 
					 | 
				
			||||||
cd ../../ &&
 | 
					 | 
				
			||||||
echo "-- Build WasmEdge --" &&
 | 
					 | 
				
			||||||
( wget -nc -q https://github.com/WasmEdge/WasmEdge/archive/refs/tags/0.11.2.zip; unzip -o 0.11.2.zip; ) &&
 | 
					 | 
				
			||||||
cd WasmEdge-0.11.2 &&
 | 
					 | 
				
			||||||
( mkdir -p build; echo "" ) &&
 | 
					 | 
				
			||||||
cd build &&
 | 
					 | 
				
			||||||
export BOOST_ROOT="/usr/local/src/boost_1_86_0" &&
 | 
					 | 
				
			||||||
export Boost_LIBRARY_DIRS="/usr/local/lib" &&
 | 
					 | 
				
			||||||
export BOOST_INCLUDEDIR="/usr/local/src/boost_1_86_0" &&
 | 
					 | 
				
			||||||
export PATH=`echo $PATH | sed -E "s/devtoolset-7/devtoolset-9/g"` &&
 | 
					 | 
				
			||||||
cmake .. \
 | 
					 | 
				
			||||||
    -DCMAKE_BUILD_TYPE=Release \
 | 
					 | 
				
			||||||
    -DWASMEDGE_BUILD_SHARED_LIB=OFF \
 | 
					 | 
				
			||||||
    -DWASMEDGE_BUILD_STATIC_LIB=ON \
 | 
					 | 
				
			||||||
    -DWASMEDGE_BUILD_AOT_RUNTIME=ON \
 | 
					 | 
				
			||||||
    -DWASMEDGE_FORCE_DISABLE_LTO=ON \
 | 
					 | 
				
			||||||
    -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
 | 
					 | 
				
			||||||
    -DWASMEDGE_LINK_LLVM_STATIC=ON \
 | 
					 | 
				
			||||||
    -DWASMEDGE_BUILD_PLUGINS=OFF \
 | 
					 | 
				
			||||||
    -DWASMEDGE_LINK_TOOLS_STATIC=ON \
 | 
					 | 
				
			||||||
    -DBoost_NO_BOOST_CMAKE=ON -DLLVM_DIR=/usr/lib64/llvm13/lib/cmake/llvm/ -DLLVM_LIBRARY_DIR=/usr/lib64/llvm13/lib/ &&
 | 
					 | 
				
			||||||
make -j$3 install &&
 | 
					 | 
				
			||||||
export PATH=`echo $PATH | sed -E "s/devtoolset-9/devtoolset-10/g"` &&
 | 
					 | 
				
			||||||
cp -r include/api/wasmedge /usr/include/ &&
 | 
					 | 
				
			||||||
cd /io/ &&
 | 
					 | 
				
			||||||
echo "-- Build Rippled --" &&
 | 
					echo "-- Build Rippled --" &&
 | 
				
			||||||
pwd &&
 | 
					pwd &&
 | 
				
			||||||
cp Builds/CMake/deps/Rocksdb.cmake Builds/CMake/deps/Rocksdb.cmake.old &&
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "MOVING TO [ build-core.sh ]"
 | 
					echo "MOVING TO [ build-core.sh ]";
 | 
				
			||||||
cd /io;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
printenv > .env.temp;
 | 
					printenv > .env.temp;
 | 
				
			||||||
cat .env.temp | grep '=' | sed s/\\\(^[^=]\\+=\\\)/\\1\\\"/g|sed s/\$/\\\"/g > .env;
 | 
					cat .env.temp | grep '=' | sed s/\\\(^[^=]\\+=\\\)/\\1\\\"/g|sed s/\$/\\\"/g > .env;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,4 +8,4 @@ if [[ "$GITHUB_REPOSITORY" == "" ]]; then
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Mounting $(pwd)/io in ubuntu and running unit tests"
 | 
					echo "Mounting $(pwd)/io in ubuntu and running unit tests"
 | 
				
			||||||
docker run --rm -i -v $(pwd):/io -e BUILD_CORES=$BUILD_CORES ubuntu sh -c '/io/release-build/xahaud --unittest-jobs $BUILD_CORES -u'
 | 
					docker run --rm -i -v $(pwd):/io --platform=linux/amd64 -e BUILD_CORES=$BUILD_CORES ubuntu sh -c '/io/release-build/xahaud --unittest-jobs $BUILD_CORES -u'
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										11
									
								
								external/snappy/conanfile.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11
									
								
								external/snappy/conanfile.py
									
									
									
									
										vendored
									
									
								
							@@ -77,9 +77,14 @@ class SnappyConan(ConanFile):
 | 
				
			|||||||
        self.cpp_info.set_property("cmake_target_name", "Snappy::snappy")
 | 
					        self.cpp_info.set_property("cmake_target_name", "Snappy::snappy")
 | 
				
			||||||
        # TODO: back to global scope in conan v2 once cmake_find_package* generators removed
 | 
					        # TODO: back to global scope in conan v2 once cmake_find_package* generators removed
 | 
				
			||||||
        self.cpp_info.components["snappylib"].libs = ["snappy"]
 | 
					        self.cpp_info.components["snappylib"].libs = ["snappy"]
 | 
				
			||||||
        if not self.options.shared:
 | 
					        # The following block is commented out as a workaround for a bug in the
 | 
				
			||||||
            if self.settings.os in ["Linux", "FreeBSD"]:
 | 
					        # Conan 1.x CMakeDeps generator. Including system_libs ("m") here
 | 
				
			||||||
                self.cpp_info.components["snappylib"].system_libs.append("m")
 | 
					        # incorrectly triggers a heuristic that adds a dynamic link to `stdc++`
 | 
				
			||||||
 | 
					        # (-lstdc++), preventing a fully static build.
 | 
				
			||||||
 | 
					        # This behavior is expected to be corrected in Conan 2.
 | 
				
			||||||
 | 
					        # if not self.options.shared:
 | 
				
			||||||
 | 
					        #     if self.settings.os in ["Linux", "FreeBSD"]:
 | 
				
			||||||
 | 
					        #         self.cpp_info.components["snappylib"].system_libs.append("m")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # TODO: to remove in conan v2 once cmake_find_package* generators removed
 | 
					        # TODO: to remove in conan v2 once cmake_find_package* generators removed
 | 
				
			||||||
        self.cpp_info.names["cmake_find_package"] = "Snappy"
 | 
					        self.cpp_info.names["cmake_find_package"] = "Snappy"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										2
									
								
								external/soci/conanfile.py
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								external/soci/conanfile.py
									
									
									
									
										vendored
									
									
								
							@@ -154,7 +154,7 @@ class SociConan(ConanFile):
 | 
				
			|||||||
        self.cpp_info.components["soci_core"].set_property("cmake_target_name", "SOCI::soci_core{}".format(target_suffix))
 | 
					        self.cpp_info.components["soci_core"].set_property("cmake_target_name", "SOCI::soci_core{}".format(target_suffix))
 | 
				
			||||||
        self.cpp_info.components["soci_core"].libs = ["{}soci_core{}".format(lib_prefix, lib_suffix)]
 | 
					        self.cpp_info.components["soci_core"].libs = ["{}soci_core{}".format(lib_prefix, lib_suffix)]
 | 
				
			||||||
        if self.options.with_boost:
 | 
					        if self.options.with_boost:
 | 
				
			||||||
            self.cpp_info.components["soci_core"].requires.append("boost::boost")
 | 
					            self.cpp_info.components["soci_core"].requires.append("boost::headers")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        # soci_empty
 | 
					        # soci_empty
 | 
				
			||||||
        if self.options.empty:
 | 
					        if self.options.empty:
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,8 @@
 | 
				
			|||||||
#!/bin/bash -u
 | 
					#!/bin/bash 
 | 
				
			||||||
# We use set -e and bash with -u to bail on first non zero exit code of any
 | 
					# We use set -e and bash with -u to bail on first non zero exit code of any
 | 
				
			||||||
# processes launched or upon any unbound variable.
 | 
					# processes launched or upon any unbound variable.
 | 
				
			||||||
# We use set -x to print commands before running them to help with
 | 
					# We use set -x to print commands before running them to help with
 | 
				
			||||||
# debugging.
 | 
					# debugging.
 | 
				
			||||||
set -ex
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "START BUILDING (HOST)"
 | 
					echo "START BUILDING (HOST)"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -14,7 +13,7 @@ BUILD_CORES=$(echo "scale=0 ; `nproc` / 1.337" | bc)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
if [[ "$GITHUB_REPOSITORY" == "" ]]; then
 | 
					if [[ "$GITHUB_REPOSITORY" == "" ]]; then
 | 
				
			||||||
  #Default
 | 
					  #Default
 | 
				
			||||||
  BUILD_CORES=8
 | 
					  BUILD_CORES=${BUILD_CORES:-8} 
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Ensure still works outside of GH Actions by setting these to /dev/null
 | 
					# Ensure still works outside of GH Actions by setting these to /dev/null
 | 
				
			||||||
@@ -46,29 +45,166 @@ fi
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
STATIC_CONTAINER=$(docker ps -a | grep $CONTAINER_NAME |wc -l)
 | 
					STATIC_CONTAINER=$(docker ps -a | grep $CONTAINER_NAME |wc -l)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CACHE_VOLUME_NAME="xahau-release-builder-cache"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# if [[ "$STATIC_CONTAINER" -gt "0" && "$GITHUB_REPOSITORY" != "" ]]; then
 | 
					# if [[ "$STATIC_CONTAINER" -gt "0" && "$GITHUB_REPOSITORY" != "" ]]; then
 | 
				
			||||||
if false; then
 | 
					if false; then
 | 
				
			||||||
  echo "Static container, execute in static container to have max. cache"
 | 
					  echo "Static container, execute in static container to have max. cache"
 | 
				
			||||||
  docker start $CONTAINER_NAME
 | 
					  docker start $CONTAINER_NAME
 | 
				
			||||||
  docker exec -i $CONTAINER_NAME /hbb_exe/activate-exec bash -x /io/build-core.sh "$GITHUB_REPOSITORY" "$GITHUB_SHA" "$BUILD_CORES" "$GITHUB_RUN_NUMBER"
 | 
					  docker exec -i $CONTAINER_NAME /hbb_exe/activate-exec bash -c "source /opt/rh/gcc-toolset-11/enable && bash -x /io/build-core.sh '$GITHUB_REPOSITORY' '$GITHUB_SHA' '$BUILD_CORES' '$GITHUB_RUN_NUMBER'"
 | 
				
			||||||
  docker stop $CONTAINER_NAME
 | 
					  docker stop $CONTAINER_NAME
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
  echo "No static container, build on temp container"
 | 
					  echo "No static container, build on temp container"
 | 
				
			||||||
  rm -rf release-build;
 | 
					  rm -rf release-build;
 | 
				
			||||||
  mkdir -p release-build;
 | 
					  mkdir -p release-build;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  docker volume create $CACHE_VOLUME_NAME
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Create inline Dockerfile with environment setup for build-full.sh
 | 
				
			||||||
 | 
					  DOCKERFILE_CONTENT=$(cat <<'DOCKERFILE_EOF'
 | 
				
			||||||
 | 
					FROM ghcr.io/phusion/holy-build-box:4.0.1-amd64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ARG BUILD_CORES=8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Enable repositories and install dependencies
 | 
				
			||||||
 | 
					RUN /hbb_exe/activate-exec bash -c "dnf install -y epel-release && \
 | 
				
			||||||
 | 
					    dnf config-manager --set-enabled powertools || dnf config-manager --set-enabled crb && \
 | 
				
			||||||
 | 
					    dnf install -y --enablerepo=devel \
 | 
				
			||||||
 | 
					        wget git \
 | 
				
			||||||
 | 
					        gcc-toolset-11-gcc-c++ gcc-toolset-11-binutils gcc-toolset-11-libatomic-devel \
 | 
				
			||||||
 | 
					        lz4 lz4-devel \
 | 
				
			||||||
 | 
					        ncurses-static ncurses-devel \
 | 
				
			||||||
 | 
					        snappy snappy-devel \
 | 
				
			||||||
 | 
					        zlib zlib-devel zlib-static \
 | 
				
			||||||
 | 
					        libasan \
 | 
				
			||||||
 | 
					        python3 python3-pip \
 | 
				
			||||||
 | 
					        ccache \
 | 
				
			||||||
 | 
					        ninja-build \
 | 
				
			||||||
 | 
					        patch \
 | 
				
			||||||
 | 
					        glibc-devel glibc-static \
 | 
				
			||||||
 | 
					        libxml2-devel \
 | 
				
			||||||
 | 
					        autoconf \
 | 
				
			||||||
 | 
					        automake \
 | 
				
			||||||
 | 
					        texinfo \
 | 
				
			||||||
 | 
					        libtool \
 | 
				
			||||||
 | 
					        llvm14-static llvm14-devel && \
 | 
				
			||||||
 | 
					    dnf clean all"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install Conan and CMake
 | 
				
			||||||
 | 
					RUN /hbb_exe/activate-exec pip3 install "conan==1.66.0" && \
 | 
				
			||||||
 | 
					    /hbb_exe/activate-exec wget -q https://github.com/Kitware/CMake/releases/download/v3.23.1/cmake-3.23.1-linux-x86_64.tar.gz -O cmake.tar.gz && \
 | 
				
			||||||
 | 
					    mkdir cmake && \
 | 
				
			||||||
 | 
					    tar -xzf cmake.tar.gz --strip-components=1 -C cmake && \
 | 
				
			||||||
 | 
					    rm cmake.tar.gz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install Boost 1.86.0
 | 
				
			||||||
 | 
					RUN /hbb_exe/activate-exec bash -c "cd /tmp && \
 | 
				
			||||||
 | 
					    wget -q https://archives.boost.io/release/1.86.0/source/boost_1_86_0.tar.gz -O boost.tar.gz && \
 | 
				
			||||||
 | 
					    mkdir boost && \
 | 
				
			||||||
 | 
					    tar -xzf boost.tar.gz --strip-components=1 -C boost && \
 | 
				
			||||||
 | 
					    cd boost && \
 | 
				
			||||||
 | 
					    ./bootstrap.sh && \
 | 
				
			||||||
 | 
					    ./b2 link=static -j${BUILD_CORES} && \
 | 
				
			||||||
 | 
					    ./b2 install && \
 | 
				
			||||||
 | 
					    cd /tmp && \
 | 
				
			||||||
 | 
					    rm -rf boost boost.tar.gz"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV BOOST_ROOT=/usr/local/src/boost_1_86_0
 | 
				
			||||||
 | 
					ENV Boost_LIBRARY_DIRS=/usr/local/lib
 | 
				
			||||||
 | 
					ENV BOOST_INCLUDEDIR=/usr/local/src/boost_1_86_0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV CMAKE_EXE_LINKER_FLAGS="-static-libstdc++"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV LLVM_DIR=/usr/lib64/llvm14/lib/cmake/llvm
 | 
				
			||||||
 | 
					ENV WasmEdge_LIB=/usr/local/lib64/libwasmedge.a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ENV CC='ccache gcc'
 | 
				
			||||||
 | 
					ENV CXX='ccache g++'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install LLD
 | 
				
			||||||
 | 
					RUN /hbb_exe/activate-exec bash -c "source /opt/rh/gcc-toolset-11/enable && \
 | 
				
			||||||
 | 
					    cd /tmp && \
 | 
				
			||||||
 | 
					    wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.3/lld-14.0.3.src.tar.xz && \
 | 
				
			||||||
 | 
					    wget -q https://github.com/llvm/llvm-project/releases/download/llvmorg-14.0.3/libunwind-14.0.3.src.tar.xz && \
 | 
				
			||||||
 | 
					    tar -xf lld-14.0.3.src.tar.xz && \
 | 
				
			||||||
 | 
					    tar -xf libunwind-14.0.3.src.tar.xz && \
 | 
				
			||||||
 | 
					    cp -r libunwind-14.0.3.src/include libunwind-14.0.3.src/src lld-14.0.3.src/ && \
 | 
				
			||||||
 | 
					    cd lld-14.0.3.src && \
 | 
				
			||||||
 | 
					    mkdir -p build && cd build && \
 | 
				
			||||||
 | 
					    cmake .. \
 | 
				
			||||||
 | 
					        -DLLVM_LIBRARY_DIR=/usr/lib64/llvm14/lib/ \
 | 
				
			||||||
 | 
					        -DCMAKE_INSTALL_PREFIX=/usr/lib64/llvm14/ \
 | 
				
			||||||
 | 
					        -DCMAKE_BUILD_TYPE=Release \
 | 
				
			||||||
 | 
					        -DCMAKE_EXE_LINKER_FLAGS=\"\$CMAKE_EXE_LINKER_FLAGS\" && \
 | 
				
			||||||
 | 
					    make -j${BUILD_CORES} install && \
 | 
				
			||||||
 | 
					    ln -s /usr/lib64/llvm14/lib/include/lld /usr/include/lld && \
 | 
				
			||||||
 | 
					    cp /usr/lib64/llvm14/lib/liblld*.a /usr/local/lib/ && \
 | 
				
			||||||
 | 
					    cd /tmp && rm -rf lld-* libunwind-*"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Build and install WasmEdge (static version)
 | 
				
			||||||
 | 
					# Note: Conan only provides WasmEdge with shared library linking.
 | 
				
			||||||
 | 
					# For a fully static build, we need to manually install:
 | 
				
			||||||
 | 
					# * Boost: Static C++ libraries for filesystem and system operations (built from source above)
 | 
				
			||||||
 | 
					# * LLVM: Static LLVM libraries for WebAssembly compilation (installed via llvm14-static package)
 | 
				
			||||||
 | 
					# * LLD: Static linker to produce the final static binary (built from source above)
 | 
				
			||||||
 | 
					# These were installed above to enable WASMEDGE_LINK_LLVM_STATIC=ON
 | 
				
			||||||
 | 
					RUN cd /tmp && \
 | 
				
			||||||
 | 
					    ( wget -nc -q https://github.com/WasmEdge/WasmEdge/archive/refs/tags/0.11.2.zip; unzip -o 0.11.2.zip; ) && \
 | 
				
			||||||
 | 
					    cd WasmEdge-0.11.2 && \
 | 
				
			||||||
 | 
					    ( mkdir -p build; echo "" ) && \
 | 
				
			||||||
 | 
					    cd build && \
 | 
				
			||||||
 | 
					    /hbb_exe/activate-exec bash -c "source /opt/rh/gcc-toolset-11/enable && \
 | 
				
			||||||
 | 
					    ln -sf /opt/rh/gcc-toolset-11/root/usr/bin/ar /usr/bin/ar && \
 | 
				
			||||||
 | 
					    cmake .. \
 | 
				
			||||||
 | 
					        -DCMAKE_BUILD_TYPE=Release \
 | 
				
			||||||
 | 
					        -DCMAKE_INSTALL_PREFIX=/usr/local \
 | 
				
			||||||
 | 
					        -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
 | 
				
			||||||
 | 
					        -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_BUILD_PLUGINS=OFF \
 | 
				
			||||||
 | 
					        -DWASMEDGE_LINK_TOOLS_STATIC=ON \
 | 
				
			||||||
 | 
					        -DBoost_NO_BOOST_CMAKE=ON \
 | 
				
			||||||
 | 
					        -DCMAKE_EXE_LINKER_FLAGS=\"\$CMAKE_EXE_LINKER_FLAGS\" \
 | 
				
			||||||
 | 
					        && \
 | 
				
			||||||
 | 
					    make -j${BUILD_CORES} install" && \
 | 
				
			||||||
 | 
					    cp -r include/api/wasmedge /usr/include/ && \
 | 
				
			||||||
 | 
					    cd /tmp && rm -rf WasmEdge* 0.11.2.zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Set environment variables
 | 
				
			||||||
 | 
					ENV PATH=/usr/local/bin:$PATH
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configure ccache and Conan
 | 
				
			||||||
 | 
					RUN /hbb_exe/activate-exec bash -c "ccache -M 10G && \
 | 
				
			||||||
 | 
					    ccache -o cache_dir=/cache/ccache && \
 | 
				
			||||||
 | 
					    ccache -o compiler_check=content && \
 | 
				
			||||||
 | 
					    conan config set storage.path=/cache/conan && \
 | 
				
			||||||
 | 
					    (conan profile new default --detect || true) && \
 | 
				
			||||||
 | 
					    conan profile update settings.compiler.libcxx=libstdc++11 default && \
 | 
				
			||||||
 | 
					    conan profile update settings.compiler.cppstd=20 default"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DOCKERFILE_EOF
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  # Build custom Docker image
 | 
				
			||||||
 | 
					  IMAGE_NAME="xahaud-builder:latest"
 | 
				
			||||||
 | 
					  echo "Building custom Docker image with dependencies..."
 | 
				
			||||||
 | 
					  echo "$DOCKERFILE_CONTENT" | docker build --build-arg BUILD_CORES="$BUILD_CORES" -t "$IMAGE_NAME" - || exit 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if [[ "$GITHUB_REPOSITORY" == "" ]]; then
 | 
					  if [[ "$GITHUB_REPOSITORY" == "" ]]; then
 | 
				
			||||||
    # Non GH, local building
 | 
					    # Non GH, local building
 | 
				
			||||||
    echo "Non-GH runner, local building, temp container"
 | 
					    echo "Non-GH runner, local building, temp container"
 | 
				
			||||||
    docker run -i --user 0:$(id -g) --rm -v /data/builds:/data/builds -v `pwd`:/io --network host ghcr.io/foobarwidget/holy-build-box-x64 /hbb_exe/activate-exec bash -x /io/build-full.sh "$GITHUB_REPOSITORY" "$GITHUB_SHA" "$BUILD_CORES" "$GITHUB_RUN_NUMBER"
 | 
					    docker run -i --user 0:$(id -g) --rm -v /data/builds:/data/builds -v `pwd`:/io -v "$CACHE_VOLUME_NAME":/cache --network host "$IMAGE_NAME" /hbb_exe/activate-exec bash -c "source /opt/rh/gcc-toolset-11/enable && bash -x /io/build-full.sh '$GITHUB_REPOSITORY' '$GITHUB_SHA' '$BUILD_CORES' '$GITHUB_RUN_NUMBER'"
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    # GH Action, runner
 | 
					    # GH Action, runner
 | 
				
			||||||
    echo "GH Action, runner, clean & re-create create persistent container"
 | 
					    echo "GH Action, runner, clean & re-create create persistent container"
 | 
				
			||||||
    docker rm -f $CONTAINER_NAME
 | 
					    docker rm -f $CONTAINER_NAME
 | 
				
			||||||
    echo "echo 'Stopping container: $CONTAINER_NAME'" >> "$JOB_CLEANUP_SCRIPT"
 | 
					    echo "echo 'Stopping container: $CONTAINER_NAME'" >> "$JOB_CLEANUP_SCRIPT"
 | 
				
			||||||
    echo "docker stop --time=15 \"$CONTAINER_NAME\" || echo 'Failed to stop container or container not running'" >> "$JOB_CLEANUP_SCRIPT"
 | 
					    echo "docker stop --time=15 \"$CONTAINER_NAME\" || echo 'Failed to stop container or container not running'" >> "$JOB_CLEANUP_SCRIPT"
 | 
				
			||||||
    docker run -di --user 0:$(id -g) --name $CONTAINER_NAME -v /data/builds:/data/builds -v `pwd`:/io --network host ghcr.io/foobarwidget/holy-build-box-x64 /hbb_exe/activate-exec bash
 | 
					    docker run -di --user 0:$(id -g) --name $CONTAINER_NAME -v /data/builds:/data/builds -v `pwd`:/io -v "$CACHE_VOLUME_NAME":/cache --network host "$IMAGE_NAME" /hbb_exe/activate-exec bash
 | 
				
			||||||
    docker exec -i $CONTAINER_NAME /hbb_exe/activate-exec bash -x /io/build-full.sh "$GITHUB_REPOSITORY" "$GITHUB_SHA" "$BUILD_CORES" "$GITHUB_RUN_NUMBER"
 | 
					    docker exec -i $CONTAINER_NAME /hbb_exe/activate-exec bash -c "source /opt/rh/gcc-toolset-11/enable && bash -x /io/build-full.sh '$GITHUB_REPOSITORY' '$GITHUB_SHA' '$BUILD_CORES' '$GITHUB_RUN_NUMBER'"
 | 
				
			||||||
    docker stop $CONTAINER_NAME
 | 
					    docker stop $CONTAINER_NAME
 | 
				
			||||||
  fi
 | 
					  fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user