]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/CMakeLists.txt
import ceph 16.2.6
[ceph.git] / ceph / src / CMakeLists.txt
index 011408ceb958d3aa19d5956c14c3a9b965114268..b6fa633667786419f254afc2489b59d05c11038a 100644 (file)
@@ -304,12 +304,17 @@ add_subdirectory(json_spirit)
 include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/xxHash")
 include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/rapidjson/include")
 
+option(WITH_FMT_HEADER_ONLY "use header-only version of fmt library" OFF)
 find_package(fmt 6.0.0 QUIET)
 if(fmt_FOUND)
   include_directories(SYSTEM "${fmt_INCLUDE_DIR}")
 else()
   message(STATUS "Could not find fmt, will build it")
+  set(old_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
+  set(BUILD_SHARED_LIBS FALSE)
   add_subdirectory(fmt)
+  set(BUILD_SHARED_LIBS ${old_BUILD_SHARED_LIBS})
+  unset(old_BUILD_SHARED_LIBS)
   include_directories(SYSTEM "${CMAKE_SOURCE_DIR}/src/fmt/include")
 endif()
 
@@ -360,6 +365,15 @@ if(WITH_SEASTAR)
   add_subdirectory(crimson)
 endif()
 
+function(compile_with_fmt target)
+  get_target_property(fmt_compile_definitions
+    fmt::fmt INTERFACE_COMPILE_DEFINITIONS)
+  if(fmt_compile_definitions)
+    target_compile_definitions(${target} PUBLIC
+      ${fmt_compile_definitions})
+  endif()
+endfunction()
+
 set(libcommon_files
   ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h
   ceph_ver.c
@@ -396,6 +410,7 @@ endif()
 set_source_files_properties(ceph_ver.c
   APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h)
 add_library(common-objs OBJECT ${libcommon_files})
+compile_with_fmt(common-objs)
 
 if(WITH_JAEGER)
   find_package(yaml-cpp 0.6.0)