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()