Skip to content

Commit

Permalink
Add darwin arm64 libs (pion#368)
Browse files Browse the repository at this point in the history
Add opus and openh264 for arm64

Co-authored-by: Atsushi Watanabe <[email protected]>
Co-authored-by: Earther <[email protected]>
  • Loading branch information
at-wat and qnkhuat authored May 2, 2022
1 parent 08a3965 commit f0ff926
Show file tree
Hide file tree
Showing 6 changed files with 58 additions and 1 deletion.
3 changes: 2 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ supported_platforms := \
linux-arm64 \
linux-x64 \
windows-x64 \
darwin-x64
darwin-x64 \
darwin-arm64
cmd_build := build
cmd_test := test
examples_dir := examples
Expand Down
47 changes: 47 additions & 0 deletions dockerfiles/darwin-arm64.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
FROM dockercore/golang-cross as m1cross

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq && apt-get install -y -q --no-install-recommends \
cmake \
git \
libssl-dev \
libxml2-dev \
libz-dev \
&& rm -rf /var/lib/apt/lists/*

ENV SDK_VERSION=11.3 \
TARGET_DIR=/osxcross/target \
UNATTENDED=1

WORKDIR /work
RUN git clone --depth=1 https://github.com/tpoechtrager/osxcross.git /work \
&& cd /work/tarballs \
&& wget -q https://github.com/phracker/MacOSX-SDKs/releases/download/${SDK_VERSION}/MacOSX${SDK_VERSION}.sdk.tar.xz

# Build cross compile toolchain for Apple silicon
RUN ./build.sh


FROM dockcross/base

ENV OSX_CROSS_PATH=/osxcross

COPY --from=m1cross "${OSX_CROSS_PATH}/." "${OSX_CROSS_PATH}/"
ENV PATH=${OSX_CROSS_PATH}/target/bin:$PATH

COPY init.sh /tmp/init.sh
RUN bash /tmp/init.sh

ENV CC=arm64-apple-darwin20.4-clang \
CXX=arm64-apple-darwin20.4-clang++ \
CPP=arm64-apple-darwin20.4-clang++ \
AR=arm64-apple-darwin20.4-ar \
AS=arm64-apple-darwin20.4-as \
LD=arm64-apple-darwin20.4-ld

COPY darwin-arm64.cmake ${OSX_CROSS_PATH}/
ENV CMAKE_TOOLCHAIN_FILE ${OSX_CROSS_PATH}/darwin-arm64.cmake

ARG IMAGE=lherman/cross-darwin-arm64
ARG VERSION=latest
ENV DEFAULT_DOCKCROSS_IMAGE ${IMAGE}:${VERSION}
8 changes: 8 additions & 0 deletions dockerfiles/darwin-arm64.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set(CMAKE_SYSTEM_NAME Darwin)
set(CMAKE_SYSTEM_VERSION 1)
set(CMAKE_SYSTEM_PROCESSOR arm64)

set(CMAKE_C_COMPILER $ENV{CC})
set(CMAKE_CXX_COMPILER $ENV{CXX})
set(CMAKE_AR $ENV{AR})
set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER})
Binary file added pkg/codec/openh264/lib/libopenh264-darwin-arm64.a
Binary file not shown.
Binary file added pkg/codec/opus/lib/libopus-darwin-arm64.a
Binary file not shown.
1 change: 1 addition & 0 deletions pkg/codec/opus/opus_static.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@ package opus
//#cgo linux,arm64 LDFLAGS: ${SRCDIR}/lib/libopus-linux-arm64.a -lm
//#cgo linux,amd64 LDFLAGS: ${SRCDIR}/lib/libopus-linux-x64.a -lm
//#cgo darwin,amd64 LDFLAGS: ${SRCDIR}/lib/libopus-darwin-x64.a
//#cgo darwin,arm64 LDFLAGS: ${SRCDIR}/lib/libopus-darwin-arm64.a
//#cgo windows,amd64 LDFLAGS: ${SRCDIR}/lib/libopus-windows-x64.a
import "C"

0 comments on commit f0ff926

Please sign in to comment.