Universal binaries break input monitoriing on M1
Let's build two separate apps for arm64 and x86_64. Sigh
This commit is contained in:
@@ -3,7 +3,7 @@ on: [push, pull_request]
|
|||||||
name: Continuous integration
|
name: Continuous integration
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
ubuntu-build-bundled:
|
ubuntu-build:
|
||||||
name: Ubuntu
|
name: Ubuntu
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -32,8 +32,8 @@ jobs:
|
|||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build
|
run: cmake --build build
|
||||||
|
|
||||||
macos-build-bundled:
|
macos-build-arm64:
|
||||||
name: macOS
|
name: macOS (M1)
|
||||||
runs-on: macos-latest
|
runs-on: macos-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
@@ -43,11 +43,26 @@ jobs:
|
|||||||
run: brew install
|
run: brew install
|
||||||
nasm
|
nasm
|
||||||
- name: Configure
|
- name: Configure
|
||||||
run: cmake -B build
|
run: cmake -B build -DCMAKE_OSX_ARCHITECTURES=arm64
|
||||||
- name: Build
|
- name: Build
|
||||||
run: cmake --build build
|
run: cmake --build build
|
||||||
|
|
||||||
windows-build-bundled:
|
macos-build-x86_64:
|
||||||
|
name: macOS (Intel)
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Checkout submodules
|
||||||
|
run: git submodule update --init
|
||||||
|
- name: Install dependencies
|
||||||
|
run: brew install
|
||||||
|
nasm
|
||||||
|
- name: Configure
|
||||||
|
run: cmake -B build -DCMAKE_OSX_ARCHITECTURES=x86_64
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build build
|
||||||
|
|
||||||
|
windows-build:
|
||||||
name: Windows
|
name: Windows
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
|
|||||||
+19
-38
@@ -36,6 +36,15 @@ if(MACOSX)
|
|||||||
list(APPEND FFMPEG_CONFIGURE "--enable-cross-compile")
|
list(APPEND FFMPEG_CONFIGURE "--enable-cross-compile")
|
||||||
list(APPEND FFMPEG_CONFIGURE "--enable-videotoolbox")
|
list(APPEND FFMPEG_CONFIGURE "--enable-videotoolbox")
|
||||||
list(APPEND FFMPEG_CONFIGURE "--extra-cflags=-mmacosx-version-min=11")
|
list(APPEND FFMPEG_CONFIGURE "--extra-cflags=-mmacosx-version-min=11")
|
||||||
|
if(CMAKE_OSX_ARCHITECTURES STREQUAL "arm64")
|
||||||
|
list(APPEND FFMPEG_CONFIGURE "--arch=arm64" "--extra-cflags=-arch arm64" "--extra-ldflags=-arch arm64")
|
||||||
|
elseif(CMAKE_OSX_ARCHITECTURES STREQUAL "x86_64")
|
||||||
|
list(APPEND FFMPEG_CONFIGURE "--arch=x86_64" "--extra-cflags=-arch x86_64" "--extra-ldflags=-arch x86_64")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"Unsupported macOS architecture: ${CMAKE_OSX_ARCHITECTURES}, set CMAKE_OSX_ARCHITECTURES to either arm64 or x86_64"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
list(APPEND FFMPEG_CONFIGURE "--enable-vaapi")
|
list(APPEND FFMPEG_CONFIGURE "--enable-vaapi")
|
||||||
endif()
|
endif()
|
||||||
@@ -50,42 +59,14 @@ if(WITH_FFMPEG_JOBS GREATER 0)
|
|||||||
endif()
|
endif()
|
||||||
list(APPEND SM_FFMPEG_MAKE "&&" "make" "DESTDIR=./dest" "install")
|
list(APPEND SM_FFMPEG_MAKE "&&" "make" "DESTDIR=./dest" "install")
|
||||||
|
|
||||||
if(MACOSX)
|
externalproject_add("ffmpeg"
|
||||||
externalproject_add("ffmpeg_arm64"
|
SOURCE_DIR "${SM_FFMPEG_SRC_DIR}"
|
||||||
SOURCE_DIR "${SM_FFMPEG_SRC_DIR}"
|
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE}
|
||||||
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE} "--arch=arm64" "--extra-cflags=-arch arm64" "--extra-ldflags=-arch arm64"
|
BUILD_COMMAND "${SM_FFMPEG_MAKE}"
|
||||||
BUILD_COMMAND "${SM_FFMPEG_MAKE}"
|
UPDATE_COMMAND ""
|
||||||
UPDATE_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
INSTALL_COMMAND ""
|
TEST_COMMAND "")
|
||||||
TEST_COMMAND "")
|
|
||||||
|
|
||||||
externalproject_get_property("ffmpeg_arm64" BINARY_DIR)
|
externalproject_get_property("ffmpeg" BINARY_DIR)
|
||||||
set(SM_FFMPEG_LIB_ARM64 ${BINARY_DIR}/dest/lib)
|
set(SM_FFMPEG_LIB ${BINARY_DIR}/dest/lib)
|
||||||
|
set(SM_FFMPEG_INCLUDE ${BINARY_DIR}/dest/include)
|
||||||
externalproject_add("ffmpeg_x86_64"
|
|
||||||
SOURCE_DIR "${SM_FFMPEG_SRC_DIR}"
|
|
||||||
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE} "--arch=x86_64" "--extra-cflags=-arch x86_64" "--extra-ldflags=-arch x86_64"
|
|
||||||
BUILD_COMMAND "${SM_FFMPEG_MAKE}"
|
|
||||||
UPDATE_COMMAND ""
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
TEST_COMMAND "")
|
|
||||||
|
|
||||||
externalproject_get_property("ffmpeg_x86_64" BINARY_DIR)
|
|
||||||
set(SM_FFMPEG_LIB_X86_64 ${BINARY_DIR}/dest/lib)
|
|
||||||
|
|
||||||
# The header files are the same for both architectures, so it doesn't matter
|
|
||||||
# which one of the two binary dirs we use.
|
|
||||||
set(SM_FFMPEG_INCLUDE ${BINARY_DIR}/dest/include)
|
|
||||||
else()
|
|
||||||
externalproject_add("ffmpeg"
|
|
||||||
SOURCE_DIR "${SM_FFMPEG_SRC_DIR}"
|
|
||||||
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE}
|
|
||||||
BUILD_COMMAND "${SM_FFMPEG_MAKE}"
|
|
||||||
UPDATE_COMMAND ""
|
|
||||||
INSTALL_COMMAND ""
|
|
||||||
TEST_COMMAND "")
|
|
||||||
|
|
||||||
externalproject_get_property("ffmpeg" BINARY_DIR)
|
|
||||||
set(SM_FFMPEG_LIB ${BINARY_DIR}/dest/lib)
|
|
||||||
set(SM_FFMPEG_INCLUDE ${BINARY_DIR}/dest/include)
|
|
||||||
endif()
|
|
||||||
|
|||||||
@@ -262,7 +262,6 @@ elseif(MACOSX)
|
|||||||
include("${SM_CMAKE_DIR}/SetupFfmpeg.cmake")
|
include("${SM_CMAKE_DIR}/SetupFfmpeg.cmake")
|
||||||
|
|
||||||
set(WITH_CRASH_HANDLER TRUE)
|
set(WITH_CRASH_HANDLER TRUE)
|
||||||
set(CMAKE_OSX_ARCHITECTURES arm64;x86_64)
|
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "11")
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "11")
|
||||||
|
|
||||||
find_library(MAC_FRAME_ACCELERATE Accelerate ${CMAKE_SYSTEM_FRAMEWORK_PATH} REQUIRED)
|
find_library(MAC_FRAME_ACCELERATE Accelerate ${CMAKE_SYSTEM_FRAMEWORK_PATH} REQUIRED)
|
||||||
|
|||||||
+5
-9
@@ -375,14 +375,10 @@ elseif(APPLE)
|
|||||||
${MAC_FRAME_SYSTEM}
|
${MAC_FRAME_SYSTEM}
|
||||||
"${BZIP2_LIBRARY_RELEASE}"
|
"${BZIP2_LIBRARY_RELEASE}"
|
||||||
"${ICONV_LIBRARIES}"
|
"${ICONV_LIBRARIES}"
|
||||||
"${SM_FFMPEG_LIB_ARM64}/libavformat.a"
|
"${SM_FFMPEG_LIB}/libavformat.a"
|
||||||
"${SM_FFMPEG_LIB_ARM64}/libavcodec.a"
|
"${SM_FFMPEG_LIB}/libavcodec.a"
|
||||||
"${SM_FFMPEG_LIB_ARM64}/libswscale.a"
|
"${SM_FFMPEG_LIB}/libswscale.a"
|
||||||
"${SM_FFMPEG_LIB_ARM64}/libavutil.a"
|
"${SM_FFMPEG_LIB}/libavutil.a"
|
||||||
"${SM_FFMPEG_LIB_X86_64}/libavformat.a"
|
|
||||||
"${SM_FFMPEG_LIB_X86_64}/libavcodec.a"
|
|
||||||
"${SM_FFMPEG_LIB_X86_64}/libswscale.a"
|
|
||||||
"${SM_FFMPEG_LIB_X86_64}/libavutil.a"
|
|
||||||
"${MAC_FRAME_COREMEDIA}"
|
"${MAC_FRAME_COREMEDIA}"
|
||||||
"${MAC_FRAME_COREVIDEO}"
|
"${MAC_FRAME_COREVIDEO}"
|
||||||
"${MAC_FRAME_VIDEOTOOLBOX}")
|
"${MAC_FRAME_VIDEOTOOLBOX}")
|
||||||
@@ -446,7 +442,7 @@ list(APPEND SM_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}
|
|||||||
if(APPLE)
|
if(APPLE)
|
||||||
list(APPEND SM_INCLUDE_DIRS "archutils/Unix")
|
list(APPEND SM_INCLUDE_DIRS "archutils/Unix")
|
||||||
|
|
||||||
add_dependencies("${SM_EXE_NAME}" "ffmpeg_arm64" "ffmpeg_x86_64")
|
add_dependencies("${SM_EXE_NAME}" "ffmpeg")
|
||||||
list(APPEND SM_INCLUDE_DIRS "${SM_FFMPEG_INCLUDE}")
|
list(APPEND SM_INCLUDE_DIRS "${SM_FFMPEG_INCLUDE}")
|
||||||
else()
|
else()
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
|||||||
Reference in New Issue
Block a user