1 ## erasure code plugins
3 set(erasure_plugin_dir ${CMAKE_INSTALL_PKGLIBDIR}/erasure-code)
5 #jerasure subdir must be before shec so jerasure & neon obj libs are declared
6 include_directories(jerasure/jerasure/include)
7 include_directories(jerasure/gf-complete/include)
8 include_directories(jerasure)
10 # legacy jerasure flavors. these are left here for backward compatibility
11 # and should be removed in future versions
12 set(jerasure_legacy_flavors generic)
14 list(APPEND jerasure_legacy_flavors neon)
17 list(APPEND jerasure_legacy_flavors sse3 sse4)
20 add_subdirectory(jerasure)
22 add_subdirectory(shec)
24 if (HAVE_BETTER_YASM_ELF64)
26 set(EC_ISA_LIB ec_isa)
27 set(EC_ISA_EMBEDDED_LIB cephd_ec_isa)
28 endif (HAVE_BETTER_YASM_ELF64)
30 add_library(erasure_code STATIC ErasureCodePlugin.cc)
31 target_link_libraries(erasure_code ${CMAKE_DL_LIBS})
32 add_dependencies(erasure_code ${CMAKE_SOURCE_DIR}/src/ceph_ver.h)
34 add_library(erasure_code_objs OBJECT ErasureCode.cc)
36 add_custom_target(erasure_code_plugins DEPENDS
43 include(MergeStaticLibraries)
44 add_library(cephd_ec_base STATIC $<TARGET_OBJECTS:erasure_code_objs>)
45 set_target_properties(cephd_ec_base PROPERTIES COMPILE_DEFINITIONS BUILDING_FOR_EMBEDDED)
46 merge_static_libraries(cephd_ec cephd_ec_base ${EC_ISA_EMBEDDED_LIB} cephd_ec_jerasure cephd_ec_lrc cephd_ec_shec)