@@ -31,6 +31,7 @@ set(ICEBERG_ARROW_INSTALL_INTERFACE_LIBS)
3131# ICEBERG_NANOARROW_URL - Nanoarrow tarball URL
3232# ICEBERG_CROARING_URL - CRoaring tarball URL
3333# ICEBERG_NLOHMANN_JSON_URL - nlohmann-json tarball URL
34+ # ICEBERG_SPDLOG_URL - spdlog tarball URL
3435# ICEBERG_CPR_URL - cpr tarball URL
3536#
3637# Example usage:
@@ -437,6 +438,61 @@ function(resolve_nlohmann_json_dependency)
437438 PARENT_SCOPE )
438439endfunction ()
439440
441+ # ----------------------------------------------------------------------
442+ # spdlog
443+
444+ function (resolve_spdlog_dependency )
445+ prepare_fetchcontent ()
446+
447+ find_package (Threads REQUIRED )
448+
449+ set (SPDLOG_USE_STD_FORMAT
450+ ON
451+ CACHE BOOL "" FORCE )
452+ set (SPDLOG_BUILD_PIC
453+ ON
454+ CACHE BOOL "" FORCE )
455+
456+ if (DEFINED ENV{ICEBERG_SPDLOG_URL})
457+ set (SPDLOG_URL "$ENV{ICEBERG_SPDLOG_URL} " )
458+ else ()
459+ set (SPDLOG_URL "https://github.com/gabime/spdlog/archive/refs/tags/v1.15.3.tar.gz" )
460+ endif ()
461+
462+ fetchcontent_declare (spdlog
463+ ${FC_DECLARE_COMMON_OPTIONS}
464+ URL ${SPDLOG_URL}
465+ FIND_PACKAGE_ARGS
466+ NAMES
467+ spdlog
468+ CONFIG)
469+ fetchcontent_makeavailable (spdlog)
470+
471+ if (spdlog_SOURCE_DIR )
472+ set_target_properties (spdlog PROPERTIES OUTPUT_NAME "iceberg_vendored_spdlog"
473+ POSITION_INDEPENDENT_CODE ON )
474+ target_link_libraries (spdlog INTERFACE Threads::Threads )
475+ install (TARGETS spdlog
476+ EXPORT iceberg_targets
477+ RUNTIME DESTINATION "${ICEBERG_INSTALL_BINDIR} "
478+ ARCHIVE DESTINATION "${ICEBERG_INSTALL_LIBDIR} "
479+ LIBRARY DESTINATION "${ICEBERG_INSTALL_LIBDIR} " )
480+ set (SPDLOG_VENDORED TRUE )
481+ else ()
482+ set (SPDLOG_VENDORED FALSE )
483+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES spdlog)
484+ endif ()
485+
486+ list (APPEND ICEBERG_SYSTEM_DEPENDENCIES Threads)
487+
488+ set (ICEBERG_SYSTEM_DEPENDENCIES
489+ ${ICEBERG_SYSTEM_DEPENDENCIES}
490+ PARENT_SCOPE )
491+ set (SPDLOG_VENDORED
492+ ${SPDLOG_VENDORED}
493+ PARENT_SCOPE )
494+ endfunction ()
495+
440496# ----------------------------------------------------------------------
441497# zlib
442498
@@ -614,6 +670,7 @@ resolve_zlib_dependency()
614670resolve_nanoarrow_dependency ()
615671resolve_croaring_dependency ()
616672resolve_nlohmann_json_dependency ()
673+ resolve_spdlog_dependency ()
617674
618675if (ICEBERG_BUILD_BUNDLE)
619676 resolve_arrow_dependency ()
0 commit comments