diff options
Diffstat (limited to '')
-rw-r--r-- | src/common/CMakeLists.txt | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt new file mode 100644 index 000000000..e1f1dca47 --- /dev/null +++ b/src/common/CMakeLists.txt @@ -0,0 +1,231 @@ +add_library(common_buffer_obj OBJECT + buffer.cc) + +add_library(common_texttable_obj OBJECT + TextTable.cc) + +add_library(common_prioritycache_obj OBJECT + PriorityCache.cc) + +if(WIN32) + add_library(dlfcn_win32 STATIC win32/dlfcn.cc win32/errno.cc) +endif() + +set(common_srcs + AsyncOpTracker.cc + BackTrace.cc + ConfUtils.cc + Cycles.cc + CDC.cc + DecayCounter.cc + FastCDC.cc + Finisher.cc + FixedCDC.cc + Formatter.cc + Graylog.cc + HTMLFormatter.cc + HeartbeatMap.cc + LogClient.cc + LogEntry.cc + ostream_temp.cc + OutputDataSocket.cc + PluginRegistry.cc + Readahead.cc + RefCountedObj.cc + SloppyCRCMap.cc + Thread.cc + Throttle.cc + Timer.cc + TracepointProvider.cc + TrackedOp.cc + WorkQueue.cc + admin_socket.cc + admin_socket_client.cc + assert.cc + bit_str.cc + bloom_filter.cc + ceph_argparse.cc + ceph_context.cc + ceph_crypto.cc + ceph_frag.cc + ceph_fs.cc + ceph_hash.cc + ceph_json.cc + ceph_strings.cc + ceph_releases.cc + ceph_time.cc + cmdparse.cc + code_environment.cc + common_init.cc + compat.cc + condition_variable_debug.cc + config.cc + config_values.cc + dout.cc + entity_name.cc + environment.cc + errno.cc + escape.cc + fd.cc + fs_types.cc + hex.cc + histogram.cc + hobject.cc + hostname.cc + ipaddr.cc + iso_8601.cc + lockdep.cc + mempool.cc + mime.c + mutex_debug.cc + numa.cc + openssl_opts_handler.cc + options.cc + page.cc + perf_counters.cc + perf_counters_collection.cc + perf_histogram.cc + pick_address.cc + random_string.cc + reverse.c + run_cmd.cc + scrub_types.cc + shared_mutex_debug.cc + signal.cc + snap_types.cc + str_list.cc + str_map.cc + strtol.cc + types.cc + url_escape.cc + pretty_binary.cc + utf8.c + util.cc + version.cc) + +if(WIN32) + if(MINGW) + set(CMAKE_MC_COMPILER x86_64-w64-mingw32-windmc) + set(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) + endif() + + add_custom_command( + OUTPUT ${CMAKE_BINARY_DIR}/src/common/event_logging.h + COMMAND ${CMAKE_MC_COMPILER} -b -e h -h ${CMAKE_BINARY_DIR}/src/common/ + -r ${CMAKE_BINARY_DIR}/src/common ${CMAKE_SOURCE_DIR}/src/common/win32/event_logging.mc + COMMAND ${CMAKE_RC_COMPILER} ${CMAKE_BINARY_DIR}/src/common/event_logging.rc + -o ${CMAKE_BINARY_DIR}/src/common/event_logging.o + COMMAND ${CMAKE_CXX_COMPILER} -o ${CMAKE_BINARY_DIR}/bin/event_logging.dll -shared + ${CMAKE_BINARY_DIR}/src/common/event_logging.o + DEPENDS ${CMAKE_SOURCE_DIR}/src/common/win32/event_logging.mc) + + set_source_files_properties(${CMAKE_SOURCE_DIR}/src/common/win32/syslog.cc + APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/common/event_logging.h) + + include_directories(SYSTEM "${CMAKE_BINARY_DIR}/src/common/") + + list(APPEND common_srcs + win32/blkdev.cc + win32/dns_resolve.cc + win32/ifaddrs.cc + win32/registry.cc + win32/service.cc + win32/SubProcess.cc + win32/syslog.cc) +else() + list(APPEND common_srcs + blkdev.cc + dns_resolve.cc + linux_version.c + SubProcess.cc) +endif() + +set_source_files_properties(${CMAKE_SOURCE_DIR}/src/common/version.cc + APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/src/include/ceph_ver.h) + +if(HAS_VTA) + set_source_files_properties( + config.cc + options.cc + PROPERTIES COMPILE_FLAGS -fno-var-tracking-assignments) +endif() + +if(FREEBSD) + list(APPEND common_srcs freebsd_errno.cc) +elseif(APPLE) + list(APPEND common_srcs darwin_errno.cc) +elseif(SUN) + list(APPEND common_srcs solaris_errno.cc) +elseif(AIX) + list(APPEND common_srcs aix_errno.cc) +elseif(WIN32) + list(APPEND common_srcs win32/errno.cc) +endif() + +if(WITH_EVENTTRACE) + list(APPEND common_srcs EventTrace.cc) +endif() + +add_library(common-common-objs OBJECT + ${common_srcs}) +# Let's not rely on the default system headers and point Cmake to the +# retrieved OpenSSL location. This is especially important when cross +# compiling (e.g. targeting Windows). +target_include_directories(common-common-objs PRIVATE ${OPENSSL_INCLUDE_DIR}) +# for options.cc +target_compile_definitions(common-common-objs PRIVATE + "CEPH_LIBDIR=\"${CMAKE_INSTALL_FULL_LIBDIR}\"" + "CEPH_PKGLIBDIR=\"${CEPH_INSTALL_FULL_PKGLIBDIR}\"" + "CEPH_DATADIR=\"${CEPH_INSTALL_DATADIR}\"") +compile_with_fmt(common-common-objs) + +set(common_mountcephfs_srcs + armor.c + safe_io.c + module.c + addr_parsing.c) +add_library(common_mountcephfs_objs OBJECT + ${common_mountcephfs_srcs}) + + +set(crc32_srcs + crc32c.cc + crc32c_intel_baseline.c + sctp_crc32.c) +if(HAVE_INTEL) + list(APPEND crc32_srcs + crc32c_intel_fast.c) + if(HAVE_NASM_X64) + set(CMAKE_ASM_FLAGS "-i ${PROJECT_SOURCE_DIR}/src/isa-l/include/ ${CMAKE_ASM_FLAGS}") + list(APPEND crc32_srcs + ${PROJECT_SOURCE_DIR}/src/isa-l/crc/crc32_iscsi_00.asm + crc32c_intel_fast_zero_asm.s) + endif(HAVE_NASM_X64) +elseif(HAVE_POWER8) + list(APPEND crc32_srcs + crc32c_ppc.c) + if(HAVE_PPC64LE) + list(APPEND crc32_srcs + crc32c_ppc_asm.S + crc32c_ppc_fast_zero_asm.S) + endif(HAVE_PPC64LE) +elseif(HAVE_ARMV8_CRC) + list(APPEND crc32_srcs + crc32c_aarch64.c) +endif(HAVE_INTEL) + +add_library(crc32 STATIC ${crc32_srcs}) +if(HAVE_ARMV8_CRC) + set_target_properties(crc32 PROPERTIES + COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}") +endif() +target_link_libraries(crc32 + arch) + +add_library(common_utf8 STATIC utf8.c) + +if(HAVE_KEYUTILS) + set(parse_secret_srcs + secret.c) + add_library(parse_secret_objs OBJECT ${parse_secret_srcs}) +endif() |