chiaki/third-party/CMakeLists.txt
2020-12-23 17:36:17 +01:00

55 lines
1.4 KiB
CMake

if(NOT CHIAKI_USE_SYSTEM_NANOPB)
##################
# nanopb
##################
add_subdirectory(nanopb EXCLUDE_FROM_ALL)
set(NANOPB_GENERATOR_PY "${CMAKE_CURRENT_SOURCE_DIR}/nanopb/generator/nanopb_generator.py" PARENT_SCOPE)
add_library(nanopb INTERFACE)
target_link_libraries(nanopb INTERFACE protobuf-nanopb-static)
target_include_directories(nanopb INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/nanopb")
add_library(Nanopb::nanopb ALIAS nanopb)
endif()
if(NOT CHIAKI_USE_SYSTEM_JERASURE)
##################
# gf-complete
##################
set(GF_COMPLETE_SOURCE
gf-complete/src/gf.c
gf-complete/src/gf_wgen.c
gf-complete/src/gf_w4.c
gf-complete/src/gf_w8.c
gf-complete/src/gf_w16.c
gf-complete/src/gf_w32.c
gf-complete/src/gf_w64.c
gf-complete/src/gf_w128.c
gf-complete/src/gf_rand.c
gf-complete/src/gf_general.c
gf-complete/src/gf_cpu.c)
# TODO: support NEON
add_library(gf_complete STATIC ${GF_COMPLETE_SOURCE})
target_include_directories(gf_complete PUBLIC gf-complete/include)
##################
# jerasure
##################
set(JERASURE_SOURCE
jerasure/src/galois.c
jerasure/src/jerasure.c
jerasure/src/reed_sol.c
jerasure/src/cauchy.c
jerasure/src/liberation.c)
add_library(jerasure STATIC ${JERASURE_SOURCE})
target_include_directories(jerasure PUBLIC jerasure/include)
target_link_libraries(jerasure gf_complete)
add_library(Jerasure::Jerasure ALIAS jerasure)
endif()