mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-19 21:13:12 -07:00
Add option to use system Nanopb (#352)
This commit is contained in:
parent
6e063109af
commit
cbfa49551d
6 changed files with 52 additions and 13 deletions
2
.github/workflows/bullseye.yml
vendored
2
.github/workflows/bullseye.yml
vendored
|
@ -18,5 +18,5 @@ jobs:
|
|||
- 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"
|
||||
run: docker run --rm -v "`pwd`:/build" -t chiaki-bullseye /bin/bash -c "cd /build && scripts/ci-script -DCHIAKI_USE_SYSTEM_JERASURE=ON -DCHIAKI_USE_SYSTEM_NANOPB=ON"
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ option(CHIAKI_LIB_OPENSSL_EXTERNAL_PROJECT "Use OpenSSL as CMake external projec
|
|||
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)
|
||||
tri_option(CHIAKI_USE_SYSTEM_JERASURE "Use system-provided jerasure instead of submodule" AUTO)
|
||||
tri_option(CHIAKI_USE_SYSTEM_NANOPB "Use system-provided nanopb instead of submodule" AUTO)
|
||||
|
||||
set(CHIAKI_VERSION_MAJOR 1)
|
||||
set(CHIAKI_VERSION_MINOR 3)
|
||||
|
@ -74,6 +75,18 @@ if(CHIAKI_USE_SYSTEM_JERASURE)
|
|||
endif()
|
||||
endif()
|
||||
|
||||
find_package(PythonInterp 3 REQUIRED) # Make sure nanopb doesn't find Python 2.7 because Python 2 should just die.
|
||||
|
||||
if(CHIAKI_USE_SYSTEM_NANOPB)
|
||||
if(CHIAKI_USE_SYSTEM_NANOPB STREQUAL AUTO)
|
||||
find_package(Nanopb QUIET)
|
||||
set(CHIAKI_USE_SYSTEM_NANOPB ${Nanopb_FOUND})
|
||||
else()
|
||||
find_package(Nanopb REQUIRED)
|
||||
set(CHIAKI_USE_SYSTEM_NANOPB ON)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
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}\")
|
||||
|
|
25
cmake/FindNanopb.cmake
Normal file
25
cmake/FindNanopb.cmake
Normal file
|
@ -0,0 +1,25 @@
|
|||
# Provides Nanopb::nanopb and NANOPB_GENERATOR_PY
|
||||
|
||||
find_package(nanopb CONFIG)
|
||||
find_file(NANOPB_GENERATOR_PY nanopb_generator.py PATH_SUFFIXES bin)
|
||||
|
||||
find_path(Jerasure_INCLUDE_DIR NAMES pb_encode.h pb_decode.h)
|
||||
find_library(Jerasure_LIBRARY NAMES Jerasure)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Nanopb
|
||||
FOUND_VAR Nanopb_FOUND
|
||||
REQUIRED_VARS
|
||||
nanopb_FOUND
|
||||
NANOPB_GENERATOR_PY
|
||||
)
|
||||
|
||||
if(Nanopb_FOUND)
|
||||
if(NOT TARGET Nanopb::nanopb)
|
||||
add_library(Nanopb::nanopb ALIAS nanopb::protobuf-nanopb-static)
|
||||
set_target_properties(Jerasure::Jerasure PROPERTIES
|
||||
IMPORTED_LOCATION "${Jerasure_LIBRARY}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${Jerasure_INCLUDE_DIRS}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
|
@ -74,7 +74,6 @@ set(SOURCE_FILES
|
|||
src/opusdecoder.c)
|
||||
|
||||
add_subdirectory(protobuf)
|
||||
include_directories("${NANOPB_SOURCE_DIR}")
|
||||
set_source_files_properties(${CHIAKI_LIB_PROTO_SOURCE_FILES} ${CHIAKI_LIB_PROTO_HEADER_FILES} PROPERTIES GENERATED TRUE)
|
||||
include_directories("${CHIAKI_LIB_PROTO_INCLUDE_DIR}")
|
||||
|
||||
|
@ -113,7 +112,7 @@ else()
|
|||
target_link_libraries(chiaki-lib OpenSSL::Crypto)
|
||||
endif()
|
||||
|
||||
target_link_libraries(chiaki-lib protobuf-nanopb-static)
|
||||
target_link_libraries(chiaki-lib Nanopb::nanopb)
|
||||
target_link_libraries(chiaki-lib Jerasure::Jerasure)
|
||||
|
||||
if(CHIAKI_LIB_ENABLE_OPUS)
|
||||
|
|
|
@ -3,7 +3,7 @@ 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 \
|
||||
libjerasure-dev nanopb 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
|
||||
|
|
20
third-party/CMakeLists.txt
vendored
20
third-party/CMakeLists.txt
vendored
|
@ -1,14 +1,16 @@
|
|||
|
||||
##################
|
||||
# nanopb
|
||||
##################
|
||||
if(NOT CHIAKI_USE_SYSTEM_NANOPB)
|
||||
##################
|
||||
# nanopb
|
||||
##################
|
||||
|
||||
find_package(PythonInterp 3 REQUIRED) # Make sure nanopb doesn't find Python 2.7 because Python 2 should just die.
|
||||
|
||||
add_subdirectory(nanopb EXCLUDE_FROM_ALL)
|
||||
set(NANOPB_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/nanopb")
|
||||
set(NANOPB_SOURCE_DIR "${NANOPB_SOURCE_DIR}" PARENT_SCOPE)
|
||||
set(NANOPB_GENERATOR_PY "${NANOPB_SOURCE_DIR}/generator/nanopb_generator.py" PARENT_SCOPE)
|
||||
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)
|
||||
##################
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue