Skip to content

Commit b1680e9

Browse files
committed
detect asound
1 parent 6ef9cba commit b1680e9

File tree

3 files changed

+26
-11
lines changed

3 files changed

+26
-11
lines changed

.github/workflows/cpp-cross-linux-arm.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ jobs:
8080
- name: build
8181
run: |
8282
export PATH=$(pwd)/webrtc/src/third_party/llvm-build/Release+Asserts/bin:$PATH
83-
cmake -DWEBRTCROOT=$(pwd)/webrtc -DCMAKE_BUILD_TYPE=${{ matrix.buildtype }} -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} -DCMAKE_LIBRARY_ARCHITECTURE=${{ matrix.prefix }} -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DWEBRTCDESKTOPCAPTURE=OFF .
83+
cmake -DWEBRTCROOT=$(pwd)/webrtc -DCMAKE_BUILD_TYPE=${{ matrix.buildtype }} -DCMAKE_SYSTEM_PROCESSOR=${{ matrix.arch }} -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DWEBRTCDESKTOPCAPTURE=OFF .
8484
make
8585
8686
- name: cpack

CMakeLists.txt

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,24 +25,27 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
2525
set (CMAKE_SYSROOT ${WEBRTCROOT}/src/build/linux/debian_bullseye_arm64-sysroot)
2626
endif()
2727
endif()
28-
MESSAGE("CMAKE_SYSROOT = ${CMAKE_SYSROOT} CMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH}")
29-
30-
# alsa ?
31-
find_package(ALSA QUIET)
32-
MESSAGE("ALSA_FOUND = ${ALSA_FOUND}")
28+
# Configure find_package to search in sysroot
29+
if (DEFINED CMAKE_SYSROOT)
30+
# Add architecture-specific lib paths for cross-compilation
31+
if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm64")
32+
set(CMAKE_LIBRARY_ARCHITECTURE "aarch64-linux-gnu")
33+
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "armv.*")
34+
set(CMAKE_LIBRARY_ARCHITECTURE "arm-linux-gnueabihf")
35+
endif()
36+
endif()
37+
MESSAGE("CMAKE_SYSROOT = ${CMAKE_SYSROOT} CMAKE_LIBRARY_ARCHITECTURE=${CMAKE_LIBRARY_ARCHITECTURE}")
3338

34-
# pulse ?
35-
find_package(PulseAudio QUIET)
36-
MESSAGE("PulseAudio_FOUND = ${PulseAudio_FOUND}")
3739

3840
set(ENV{PATH} "${WEBRTCROOT}/src/third_party/llvm-build/Release+Asserts/bin:$ENV{PATH}")
3941
MESSAGE("PATH = $ENV{PATH}")
4042

4143
find_package(Git)
4244

43-
# webrtc build
4445
set (WEBRTCBUILD ${WEBRTCROOT}/src/out/${CMAKE_BUILD_TYPE})
4546
set (WEBRTCOBJS ${WEBRTCBUILD}/obj)
47+
48+
# install sysroot
4649
if (NOT EXISTS ${WEBRTCOBJS}/${CMAKE_STATIC_LIBRARY_PREFIX}webrtc${CMAKE_STATIC_LIBRARY_SUFFIX})
4750
if(GIT_FOUND)
4851
EXECUTE_PROCESS(WORKING_DIRECTORY ${WEBRTCROOT}/src COMMAND ${GIT_EXECUTABLE} status)
@@ -82,7 +85,19 @@ if (NOT EXISTS ${WEBRTCOBJS}/${CMAKE_STATIC_LIBRARY_PREFIX}webrtc${CMAKE_STATIC_
8285
message("install-sysroot.py succeeded ${SYSROOT_OUTPUT}")
8386
endif()
8487
endif()
88+
endif()
89+
90+
91+
# alsa ?
92+
find_package(ALSA QUIET)
93+
MESSAGE("ALSA_FOUND = ${ALSA_FOUND}")
8594

95+
# pulse ?
96+
find_package(PulseAudio QUIET)
97+
MESSAGE("PulseAudio_FOUND = ${PulseAudio_FOUND}")
98+
99+
# webrtc build
100+
if (NOT EXISTS ${WEBRTCOBJS}/${CMAKE_STATIC_LIBRARY_PREFIX}webrtc${CMAKE_STATIC_LIBRARY_SUFFIX})
86101
set (WEBRTCARGS rtc_include_tests=false\nrtc_enable_protobuf=false\nrtc_build_examples=false\ntreat_warnings_as_errors=false\nenable_js_protobuf=false\nuse_glib=false\n)
87102
set (WEBRTCARGS libyuv_use_sme=false\n${WEBRTCARGS})
88103
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND NOT WIN32)

Dockerfile.rpi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-ins
2121
&& cd ../webrtc \
2222
&& fetch --nohooks webrtc \
2323
&& cd ../webrtc-streamer \
24-
&& cmake -DCMAKE_SYSTEM_PROCESSOR=${ARCH} -DCMAKE_LIBRARY_ARCHITECTURE=arm-linux-gnueabihf -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DWEBRTCDESKTOPCAPTURE=OFF . \
24+
&& cmake -DCMAKE_SYSTEM_PROCESSOR=${ARCH} -DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_FIND_ROOT_PATH_MODE_PROGRAM=NEVER -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=ONLY -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY -DWEBRTCDESKTOPCAPTURE=OFF . \
2525
&& make VERBOSE=1 \
2626
&& make install \
2727
&& rm -rf ../webrtc && rm -f *.a && rm -f src/*.o \

0 commit comments

Comments
 (0)