summaryrefslogtreecommitdiffstats
path: root/src/crimson/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/crimson/CMakeLists.txt')
-rw-r--r--src/crimson/CMakeLists.txt191
1 files changed, 191 insertions, 0 deletions
diff --git a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt
new file mode 100644
index 000000000..26f729336
--- /dev/null
+++ b/src/crimson/CMakeLists.txt
@@ -0,0 +1,191 @@
+add_library(crimson::cflags INTERFACE IMPORTED)
+set(crimson_cflag_definitions "WITH_SEASTAR=1")
+# disable concepts to address https://github.com/boostorg/asio/issues/312
+if((CMAKE_CXX_COMPILER_ID STREQUAL GNU AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 10) OR
+ (CMAKE_CXX_COMPILER_ID STREQUAL Clang))
+ list(APPEND crimson_cflag_definitions
+ "BOOST_ASIO_DISABLE_CONCEPTS")
+endif()
+set_target_properties(crimson::cflags PROPERTIES
+ INTERFACE_COMPILE_DEFINITIONS "${crimson_cflag_definitions}"
+ INTERFACE_COMPILE_OPTIONS $<$<COMPILE_LANGUAGE:CXX>:-Wno-non-virtual-dtor>
+ INTERFACE_LINK_LIBRARIES Seastar::seastar)
+
+set(crimson_common_srcs
+ common/assert.cc
+ common/buffer_io.cc
+ common/config_proxy.cc
+ common/formatter.cc
+ common/perf_counters_collection.cc
+ common/log.cc
+ common/throttle.cc
+ common/tri_mutex.cc)
+
+# the specialized version of ceph-common, where
+# - the logging is sent to Seastar backend
+# - and the template parameter of lock_policy is SINGLE
+add_library(crimson-common STATIC
+ ${PROJECT_SOURCE_DIR}/src/common/admin_socket_client.cc
+ ${PROJECT_SOURCE_DIR}/src/common/bit_str.cc
+ ${PROJECT_SOURCE_DIR}/src/common/bloom_filter.cc
+ ${PROJECT_SOURCE_DIR}/src/common/buffer.cc
+ ${PROJECT_SOURCE_DIR}/src/common/buffer_seastar.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_argparse.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_context.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_crypto.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_hash.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_time.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_strings.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_releases.cc
+ ${PROJECT_SOURCE_DIR}/src/common/cmdparse.cc
+ ${PROJECT_SOURCE_DIR}/src/common/common_init.cc
+ ${PROJECT_SOURCE_DIR}/src/common/compat.cc
+ ${PROJECT_SOURCE_DIR}/src/common/code_environment.cc
+ ${PROJECT_SOURCE_DIR}/src/common/config.cc
+ ${PROJECT_SOURCE_DIR}/src/common/config_values.cc
+ ${PROJECT_SOURCE_DIR}/src/common/dout.cc
+ ${PROJECT_SOURCE_DIR}/src/common/entity_name.cc
+ ${PROJECT_SOURCE_DIR}/src/common/environment.cc
+ ${PROJECT_SOURCE_DIR}/src/common/errno.cc
+ ${PROJECT_SOURCE_DIR}/src/common/escape.cc
+ ${PROJECT_SOURCE_DIR}/src/common/hex.cc
+ ${PROJECT_SOURCE_DIR}/src/common/fs_types.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ceph_json.cc
+ ${PROJECT_SOURCE_DIR}/src/common/histogram.cc
+ ${PROJECT_SOURCE_DIR}/src/common/hobject.cc
+ ${PROJECT_SOURCE_DIR}/src/common/hostname.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ipaddr.cc
+ ${PROJECT_SOURCE_DIR}/src/common/mempool.cc
+ ${PROJECT_SOURCE_DIR}/src/common/options.cc
+ ${PROJECT_SOURCE_DIR}/src/common/perf_counters.cc
+ ${PROJECT_SOURCE_DIR}/src/common/perf_histogram.cc
+ ${PROJECT_SOURCE_DIR}/src/common/page.cc
+ ${PROJECT_SOURCE_DIR}/src/common/pick_address.cc
+ ${PROJECT_SOURCE_DIR}/src/common/snap_types.cc
+ ${PROJECT_SOURCE_DIR}/src/common/signal.cc
+ ${PROJECT_SOURCE_DIR}/src/common/str_list.cc
+ ${PROJECT_SOURCE_DIR}/src/common/str_map.cc
+ ${PROJECT_SOURCE_DIR}/src/common/strtol.cc
+ ${PROJECT_SOURCE_DIR}/src/common/reverse.c
+ ${PROJECT_SOURCE_DIR}/src/common/types.cc
+ ${PROJECT_SOURCE_DIR}/src/common/utf8.c
+ ${PROJECT_SOURCE_DIR}/src/common/version.cc
+ ${PROJECT_SOURCE_DIR}/src/common/BackTrace.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ConfUtils.cc
+ ${PROJECT_SOURCE_DIR}/src/common/DecayCounter.cc
+ ${PROJECT_SOURCE_DIR}/src/common/HTMLFormatter.cc
+ ${PROJECT_SOURCE_DIR}/src/common/Formatter.cc
+ ${PROJECT_SOURCE_DIR}/src/common/Graylog.cc
+ ${PROJECT_SOURCE_DIR}/src/common/ostream_temp.cc
+ ${PROJECT_SOURCE_DIR}/src/common/LogEntry.cc
+ ${PROJECT_SOURCE_DIR}/src/common/TextTable.cc
+ ${PROJECT_SOURCE_DIR}/src/common/Thread.cc
+ ${PROJECT_SOURCE_DIR}/src/common/PluginRegistry.cc
+ ${PROJECT_SOURCE_DIR}/src/common/RefCountedObj.cc
+ ${PROJECT_SOURCE_DIR}/src/common/util.cc
+ ${PROJECT_SOURCE_DIR}/src/crush/builder.c
+ ${PROJECT_SOURCE_DIR}/src/crush/mapper.c
+ ${PROJECT_SOURCE_DIR}/src/crush/crush.c
+ ${PROJECT_SOURCE_DIR}/src/crush/hash.c
+ ${PROJECT_SOURCE_DIR}/src/crush/CrushWrapper.cc
+ ${PROJECT_SOURCE_DIR}/src/crush/CrushCompiler.cc
+ ${PROJECT_SOURCE_DIR}/src/crush/CrushTester.cc
+ ${PROJECT_SOURCE_DIR}/src/crush/CrushLocation.cc
+ ${PROJECT_SOURCE_DIR}/src/global/global_context.cc
+ ${PROJECT_SOURCE_DIR}/src/global/pidfile.cc
+ ${PROJECT_SOURCE_DIR}/src/librbd/Features.cc
+ ${PROJECT_SOURCE_DIR}/src/log/Log.cc
+ ${PROJECT_SOURCE_DIR}/src/mgr/ServiceMap.cc
+ ${PROJECT_SOURCE_DIR}/src/mds/inode_backtrace.cc
+ ${PROJECT_SOURCE_DIR}/src/mds/mdstypes.cc
+ ${PROJECT_SOURCE_DIR}/src/mds/cephfs_features.cc
+ ${PROJECT_SOURCE_DIR}/src/mds/FSMap.cc
+ ${PROJECT_SOURCE_DIR}/src/mds/FSMapUser.cc
+ ${PROJECT_SOURCE_DIR}/src/mds/MDSMap.cc
+ ${PROJECT_SOURCE_DIR}/src/msg/msg_types.cc
+ ${PROJECT_SOURCE_DIR}/src/msg/Message.cc
+ ${PROJECT_SOURCE_DIR}/src/mon/PGMap.cc
+ ${PROJECT_SOURCE_DIR}/src/mon/MonCap.cc
+ ${PROJECT_SOURCE_DIR}/src/mon/MonMap.cc
+ ${PROJECT_SOURCE_DIR}/src/osd/osd_types.cc
+ ${PROJECT_SOURCE_DIR}/src/osd/ECMsgTypes.cc
+ ${PROJECT_SOURCE_DIR}/src/osd/HitSet.cc
+ ${PROJECT_SOURCE_DIR}/src/osd/OSDMap.cc
+ ${PROJECT_SOURCE_DIR}/src/osd/PGPeeringEvent.cc
+ ${PROJECT_SOURCE_DIR}/src/xxHash/xxhash.c
+ ${crimson_common_srcs}
+ $<TARGET_OBJECTS:common_mountcephfs_objs>)
+
+target_compile_definitions(crimson-common PRIVATE
+ "CEPH_LIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\""
+ "CEPH_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\""
+ "CEPH_DATADIR=\"${CEPH_INSTALL_DATADIR}\"")
+
+set(crimson_common_deps
+ Boost::iostreams
+ Boost::random
+ json_spirit)
+
+if(WITH_JAEGER)
+ include_directories(SYSTEM ${CMAKE_BINARY_DIR}/external/include)
+ list(APPEND crimson_common_deps jaeger-base)
+endif()
+
+if(NOT WITH_SYSTEM_BOOST)
+ list(APPEND crimson_common_deps ${ZLIB_LIBRARIES})
+endif()
+
+target_link_libraries(crimson-common
+ PUBLIC
+ crimson::cflags
+ PRIVATE
+ crc32
+ ${crimson_common_deps}
+ OpenSSL::Crypto)
+
+set(crimson_auth_srcs
+ auth/KeyRing.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/AuthClientHandler.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/AuthMethodList.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/AuthRegistry.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/AuthSessionHandler.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/Crypto.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/KeyRing.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/RotatingKeyRing.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxAuthorizeHandler.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxClientHandler.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxProtocol.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/cephx/CephxSessionHandler.cc
+ ${PROJECT_SOURCE_DIR}/src/auth/none/AuthNoneAuthorizeHandler.cc)
+set(crimson_mgr_srcs
+ mgr/client.cc)
+set(crimson_mon_srcs
+ mon/MonClient.cc
+ ${PROJECT_SOURCE_DIR}/src/mon/MonSub.cc)
+set(crimson_net_srcs
+ ${PROJECT_SOURCE_DIR}/src/msg/async/crypto_onwire.cc
+ ${PROJECT_SOURCE_DIR}/src/msg/async/frames_v2.cc
+ net/Errors.cc
+ net/Messenger.cc
+ net/SocketConnection.cc
+ net/SocketMessenger.cc
+ net/Socket.cc
+ net/Protocol.cc
+ net/ProtocolV1.cc
+ net/ProtocolV2.cc
+ net/chained_dispatchers.cc)
+add_library(crimson STATIC
+ ${crimson_auth_srcs}
+ ${crimson_mgr_srcs}
+ ${crimson_mon_srcs}
+ ${crimson_net_srcs})
+target_compile_options(crimson PUBLIC
+ "-ftemplate-backtrace-limit=0")
+target_link_libraries(crimson
+ PUBLIC
+ crimson-common
+ crimson::cflags)
+add_subdirectory(admin)
+add_subdirectory(os)
+add_subdirectory(osd)
+add_subdirectory(tools)