mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-07-06 04:52:09 -07:00
Optionally use system jerasure and add Bullseye CI
This commit is contained in:
parent
9200c0b893
commit
03c82ea515
7 changed files with 115 additions and 31 deletions
22
.github/workflows/bullseye.yml
vendored
Normal file
22
.github/workflows/bullseye.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
name: Debian Bullseye
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
name: Debian Bullseye
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Checkout submodules
|
||||||
|
run: |
|
||||||
|
git submodule init
|
||||||
|
git submodule update
|
||||||
|
- name: Docker Build
|
||||||
|
run: cd scripts && docker build -t chiaki-bullseye . -f Dockerfile.bullseye && cd ..
|
||||||
|
- name: Build and Test
|
||||||
|
run: docker run --rm -v "`pwd`:/build" -t chiaki-bullseye /bin/bash -c "cd /build && scripts/ci-script -DCHIAKI_USE_SYSTEM_JERASURE=ON"
|
||||||
|
|
|
@ -20,6 +20,7 @@ option(CHIAKI_LIB_ENABLE_MBEDTLS "Use mbedtls instead of OpenSSL as part of Chia
|
||||||
option(CHIAKI_LIB_OPENSSL_EXTERNAL_PROJECT "Use OpenSSL as CMake external project" OFF)
|
option(CHIAKI_LIB_OPENSSL_EXTERNAL_PROJECT "Use OpenSSL as CMake external project" OFF)
|
||||||
option(CHIAKI_GUI_ENABLE_SDL_GAMECONTROLLER "Use SDL Gamecontroller for Input" ON)
|
option(CHIAKI_GUI_ENABLE_SDL_GAMECONTROLLER "Use SDL Gamecontroller for Input" ON)
|
||||||
option(CHIAKI_CLI_ARGP_STANDALONE "Search for standalone argp lib for CLI" OFF)
|
option(CHIAKI_CLI_ARGP_STANDALONE "Search for standalone argp lib for CLI" OFF)
|
||||||
|
tri_option(CHIAKI_USE_SYSTEM_JERASURE "Use system-provided jerasure instead of submodule" AUTO)
|
||||||
|
|
||||||
set(CHIAKI_VERSION_MAJOR 1)
|
set(CHIAKI_VERSION_MAJOR 1)
|
||||||
set(CHIAKI_VERSION_MINOR 3)
|
set(CHIAKI_VERSION_MINOR 3)
|
||||||
|
@ -52,6 +53,16 @@ elseif(CHIAKI_ENABLE_SWITCH)
|
||||||
set(CHIAKI_LIB_ENABLE_MBEDTLS ON)
|
set(CHIAKI_LIB_ENABLE_MBEDTLS ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CHIAKI_USE_SYSTEM_JERASURE)
|
||||||
|
if(CHIAKI_USE_SYSTEM_JERASURE STREQUAL AUTO)
|
||||||
|
find_package(Jerasure QUIET)
|
||||||
|
set(CHIAKI_USE_SYSTEM_JERASURE ${Jerasure_FOUND})
|
||||||
|
else()
|
||||||
|
find_package(Jerasure REQUIRED)
|
||||||
|
set(CHIAKI_USE_SYSTEM_JERASURE ON)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(third-party)
|
add_subdirectory(third-party)
|
||||||
|
|
||||||
add_definitions(-DCHIAKI_VERSION_MAJOR=${CHIAKI_VERSION_MAJOR} -DCHIAKI_VERSION_MINOR=${CHIAKI_VERSION_MINOR} -DCHIAKI_VERSION_PATCH=${CHIAKI_VERSION_PATCH} -DCHIAKI_VERSION=\"${CHIAKI_VERSION}\")
|
add_definitions(-DCHIAKI_VERSION_MAJOR=${CHIAKI_VERSION_MAJOR} -DCHIAKI_VERSION_MINOR=${CHIAKI_VERSION_MINOR} -DCHIAKI_VERSION_PATCH=${CHIAKI_VERSION_PATCH} -DCHIAKI_VERSION=\"${CHIAKI_VERSION}\")
|
||||||
|
|
26
cmake/FindJerasure.cmake
Normal file
26
cmake/FindJerasure.cmake
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
# Provides Jerasure::Jerasure
|
||||||
|
|
||||||
|
find_path(Jerasure_INCLUDE_DIR NAMES jerasure.h)
|
||||||
|
find_path(Jerasure_INCLUDE_DIR2 NAMES galois.h PATH_SUFFIXES jerasure)
|
||||||
|
find_library(Jerasure_LIBRARY NAMES Jerasure)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Jerasure
|
||||||
|
FOUND_VAR Jerasure_FOUND
|
||||||
|
REQUIRED_VARS
|
||||||
|
Jerasure_LIBRARY
|
||||||
|
Jerasure_INCLUDE_DIR
|
||||||
|
Jerasure_INCLUDE_DIR2
|
||||||
|
)
|
||||||
|
|
||||||
|
if(Jerasure_FOUND)
|
||||||
|
set(Jerasure_LIBRARIES ${Jerasure_LIBRARY})
|
||||||
|
set(Jerasure_INCLUDE_DIRS ${Jerasure_INCLUDE_DIR} ${Jerasure_INCLUDE_DIR2})
|
||||||
|
if(NOT TARGET Jerasure::Jerasure)
|
||||||
|
add_library(Jerasure::Jerasure UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(Jerasure::Jerasure PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${Jerasure_LIBRARY}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${Jerasure_INCLUDE_DIRS}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
endif()
|
|
@ -117,7 +117,7 @@ if(CHIAKI_ENABLE_SWITCH AND NOT CHIAKI_ENABLE_SWITCH_LINUX)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(chiaki-lib protobuf-nanopb-static)
|
target_link_libraries(chiaki-lib protobuf-nanopb-static)
|
||||||
target_link_libraries(chiaki-lib jerasure)
|
target_link_libraries(chiaki-lib Jerasure::Jerasure)
|
||||||
|
|
||||||
if(CHIAKI_LIB_ENABLE_OPUS)
|
if(CHIAKI_LIB_ENABLE_OPUS)
|
||||||
target_link_libraries(chiaki-lib ${Opus_LIBRARIES})
|
target_link_libraries(chiaki-lib ${Opus_LIBRARIES})
|
||||||
|
|
12
scripts/Dockerfile.bullseye
Normal file
12
scripts/Dockerfile.bullseye
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
|
||||||
|
FROM debian:bullseye
|
||||||
|
|
||||||
|
RUN apt-get update
|
||||||
|
RUN apt-get -y install git g++ cmake pkg-config \
|
||||||
|
libjerasure-dev libnanopb-dev libavcodec-dev libopus-dev \
|
||||||
|
libssl-dev protobuf-compiler python3 python3-protobuf \
|
||||||
|
libevdev-dev libudev-dev \
|
||||||
|
qt5-default libqt5svg5-dev qtmultimedia5-dev libsdl2-dev
|
||||||
|
|
||||||
|
CMD []
|
||||||
|
|
9
scripts/ci-script
Executable file
9
scripts/ci-script
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -x
|
||||||
|
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake .. -DCHIAKI_ENABLE_SETSU=ON "$@"
|
||||||
|
make -j8
|
||||||
|
make test
|
64
third-party/CMakeLists.txt
vendored
64
third-party/CMakeLists.txt
vendored
|
@ -10,39 +10,43 @@ set(NANOPB_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/nanopb")
|
||||||
set(NANOPB_SOURCE_DIR "${NANOPB_SOURCE_DIR}" PARENT_SCOPE)
|
set(NANOPB_SOURCE_DIR "${NANOPB_SOURCE_DIR}" PARENT_SCOPE)
|
||||||
set(NANOPB_GENERATOR_PY "${NANOPB_SOURCE_DIR}/generator/nanopb_generator.py" PARENT_SCOPE)
|
set(NANOPB_GENERATOR_PY "${NANOPB_SOURCE_DIR}/generator/nanopb_generator.py" PARENT_SCOPE)
|
||||||
|
|
||||||
##################
|
if(NOT CHIAKI_USE_SYSTEM_JERASURE)
|
||||||
# gf-complete
|
##################
|
||||||
##################
|
# gf-complete
|
||||||
|
##################
|
||||||
|
|
||||||
set(GF_COMPLETE_SOURCE
|
set(GF_COMPLETE_SOURCE
|
||||||
gf-complete/src/gf.c
|
gf-complete/src/gf.c
|
||||||
gf-complete/src/gf_wgen.c
|
gf-complete/src/gf_wgen.c
|
||||||
gf-complete/src/gf_w4.c
|
gf-complete/src/gf_w4.c
|
||||||
gf-complete/src/gf_w8.c
|
gf-complete/src/gf_w8.c
|
||||||
gf-complete/src/gf_w16.c
|
gf-complete/src/gf_w16.c
|
||||||
gf-complete/src/gf_w32.c
|
gf-complete/src/gf_w32.c
|
||||||
gf-complete/src/gf_w64.c
|
gf-complete/src/gf_w64.c
|
||||||
gf-complete/src/gf_w128.c
|
gf-complete/src/gf_w128.c
|
||||||
gf-complete/src/gf_rand.c
|
gf-complete/src/gf_rand.c
|
||||||
gf-complete/src/gf_general.c
|
gf-complete/src/gf_general.c
|
||||||
gf-complete/src/gf_cpu.c)
|
gf-complete/src/gf_cpu.c)
|
||||||
|
|
||||||
# TODO: support NEON
|
# TODO: support NEON
|
||||||
|
|
||||||
add_library(gf_complete STATIC ${GF_COMPLETE_SOURCE})
|
add_library(gf_complete STATIC ${GF_COMPLETE_SOURCE})
|
||||||
target_include_directories(gf_complete PUBLIC gf-complete/include)
|
target_include_directories(gf_complete PUBLIC gf-complete/include)
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# jerasure
|
# jerasure
|
||||||
##################
|
##################
|
||||||
|
|
||||||
set(JERASURE_SOURCE
|
set(JERASURE_SOURCE
|
||||||
jerasure/src/galois.c
|
jerasure/src/galois.c
|
||||||
jerasure/src/jerasure.c
|
jerasure/src/jerasure.c
|
||||||
jerasure/src/reed_sol.c
|
jerasure/src/reed_sol.c
|
||||||
jerasure/src/cauchy.c
|
jerasure/src/cauchy.c
|
||||||
jerasure/src/liberation.c)
|
jerasure/src/liberation.c)
|
||||||
|
|
||||||
add_library(jerasure STATIC ${JERASURE_SOURCE})
|
add_library(jerasure STATIC ${JERASURE_SOURCE})
|
||||||
target_include_directories(jerasure PUBLIC jerasure/include)
|
target_include_directories(jerasure PUBLIC jerasure/include)
|
||||||
target_link_libraries(jerasure gf_complete)
|
target_link_libraries(jerasure gf_complete)
|
||||||
|
|
||||||
|
add_library(Jerasure::Jerasure ALIAS jerasure)
|
||||||
|
endif()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue