Fix some bugs when testing opensds ansible
[stor4nfv.git] / src / ceph / src / os / CMakeLists.txt
1 set(libos_srcs
2   ObjectStore.cc
3   Transaction.cc
4   filestore/chain_xattr.cc
5   filestore/BtrfsFileStoreBackend.cc
6   filestore/DBObjectMap.cc
7   filestore/FileJournal.cc
8   filestore/FileStore.cc
9   filestore/JournalThrottle.cc
10   filestore/GenericFileStoreBackend.cc
11   filestore/JournalingObjectStore.cc
12   filestore/HashIndex.cc
13   filestore/IndexManager.cc
14   filestore/LFNIndex.cc
15   filestore/WBThrottle.cc
16   memstore/MemStore.cc
17   kstore/KStore.cc
18   kstore/kstore_types.cc
19   fs/FS.cc)
20
21 if(HAVE_LIBAIO)
22   list(APPEND libos_srcs
23     bluestore/Allocator.cc
24     bluestore/BitmapFreelistManager.cc
25     bluestore/BlockDevice.cc
26     bluestore/BlueFS.cc
27     bluestore/bluefs_types.cc
28     bluestore/BlueRocksEnv.cc
29     bluestore/BlueStore.cc
30     bluestore/bluestore_types.cc
31     bluestore/FreelistManager.cc
32     bluestore/KernelDevice.cc
33     bluestore/StupidAllocator.cc
34     bluestore/BitMapAllocator.cc
35     bluestore/BitAllocator.cc
36     bluestore/aio.cc
37   )
38 endif(HAVE_LIBAIO)
39
40 if(WITH_FUSE)
41   list(APPEND libos_srcs
42     FuseStore.cc)
43 endif(WITH_FUSE)
44
45 if(WITH_PMEM)
46   list(APPEND libos_srcs
47     bluestore/PMEMDevice.cc)
48 endif(WITH_PMEM)
49
50 if(HAVE_LIBXFS)
51   list(APPEND libos_srcs
52     filestore/XfsFileStoreBackend.cc
53     fs/XFS.cc)
54 endif()
55
56 if(HAVE_LIBZFS)
57   add_library(os_zfs_objs OBJECT
58     filestore/ZFSFileStoreBackend.cc
59     fs/ZFS.cc)
60   target_include_directories(os_zfs_objs PRIVATE
61     ${ZFS_INCLUDE_DIRS})
62   list(APPEND libos_srcs $<TARGET_OBJECTS:os_zfs_objs>)
63 endif()
64
65 if(WITH_SPDK)
66   list(APPEND libos_srcs
67     bluestore/NVMEDevice.cc)
68   ADD_DEFINITIONS(-D__SSE4_2__ -D__SSE4_1__ -D__SSSE3__ -D__SSE3__)
69   add_compile_options(-mcrc32 -msse3 -mssse3 -msse4.1 -msse4.2)
70 endif()
71
72 add_library(os STATIC ${libos_srcs} $<TARGET_OBJECTS:kv_objs>)
73
74 if(HAVE_LIBAIO)
75   target_link_libraries(os ${AIO_LIBRARIES})
76 endif(HAVE_LIBAIO)
77
78 if(WITH_FUSE)
79   target_link_libraries(os ${FUSE_LIBRARIES})
80 endif()
81
82 if(WITH_PMEM)
83   target_link_libraries(os ${PMEM_LIBRARY})
84 endif()
85
86 if(HAVE_LIBZFS)
87   target_link_libraries(os ${ZFS_LIBRARIES})
88 endif()
89
90 if(WITH_SPDK)
91   target_link_libraries(os
92     ${SPDK_LIBRARIES}
93     ${DPDK_LIBRARIES})
94   target_include_directories(os
95     PRIVATE
96     ${DPDK_INCLUDE_DIR})
97 endif(WITH_SPDK)
98
99 if(WITH_LTTNG)
100   add_dependencies(os objectstore-tp)
101 endif()
102
103 target_link_libraries(os kv)
104
105 add_dependencies(os compressor_plugins)
106 add_dependencies(os crypto_plugins)
107
108
109 if(HAVE_LIBAIO)
110   add_executable(ceph-bluestore-tool
111     bluestore/bluestore_tool.cc)
112   target_link_libraries(ceph-bluestore-tool
113     os global)
114   install(TARGETS ceph-bluestore-tool
115     DESTINATION bin)
116 endif()
117
118 if(WITH_SPDK)
119   include_directories("${CMAKE_SOURCE_DIR}/src/spdk/include")
120   add_custom_target(build_spdk
121     COMMAND
122     $(MAKE) DPDK_INC_DIR=${DPDK_INCLUDE_DIR}
123     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/spdk/lib
124     COMMENT "spdk building")
125   # TODO: should use add_library(spdk INTERFACE IMPORTED) instead in new cmake,
126   # if INTERFACE is supported.
127   foreach(lib nvme log env_dpdk util)
128     add_library(spdk_${lib} STATIC IMPORTED)
129     add_dependencies(spdk_${lib} build_spdk)
130     target_link_libraries(os LINK_PRIVATE spdk_${lib})
131     set_target_properties(spdk_${lib} PROPERTIES
132       IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/src/spdk/build/lib/libspdk_${lib}.a"
133       INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/src/spdk/include")
134     list(APPEND SPDK_LIBRARIES spdk_${lib})
135   endforeach()
136 endif(WITH_SPDK)
137
138 if(WITH_LTTNG AND WITH_EVENTTRACE)
139   add_dependencies(os eventtrace_tp)
140 endif()