Universal binaries break input monitoriing on M1
Let's build two separate apps for arm64 and x86_64. Sigh
This commit is contained in:
+19
-38
@@ -36,6 +36,15 @@ if(MACOSX)
|
||||
list(APPEND FFMPEG_CONFIGURE "--enable-cross-compile")
|
||||
list(APPEND FFMPEG_CONFIGURE "--enable-videotoolbox")
|
||||
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()
|
||||
list(APPEND FFMPEG_CONFIGURE "--enable-vaapi")
|
||||
endif()
|
||||
@@ -50,42 +59,14 @@ if(WITH_FFMPEG_JOBS GREATER 0)
|
||||
endif()
|
||||
list(APPEND SM_FFMPEG_MAKE "&&" "make" "DESTDIR=./dest" "install")
|
||||
|
||||
if(MACOSX)
|
||||
externalproject_add("ffmpeg_arm64"
|
||||
SOURCE_DIR "${SM_FFMPEG_SRC_DIR}"
|
||||
CONFIGURE_COMMAND ${FFMPEG_CONFIGURE} "--arch=arm64" "--extra-cflags=-arch arm64" "--extra-ldflags=-arch arm64"
|
||||
BUILD_COMMAND "${SM_FFMPEG_MAKE}"
|
||||
UPDATE_COMMAND ""
|
||||
INSTALL_COMMAND ""
|
||||
TEST_COMMAND "")
|
||||
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_arm64" BINARY_DIR)
|
||||
set(SM_FFMPEG_LIB_ARM64 ${BINARY_DIR}/dest/lib)
|
||||
|
||||
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()
|
||||
externalproject_get_property("ffmpeg" BINARY_DIR)
|
||||
set(SM_FFMPEG_LIB ${BINARY_DIR}/dest/lib)
|
||||
set(SM_FFMPEG_INCLUDE ${BINARY_DIR}/dest/include)
|
||||
|
||||
Reference in New Issue
Block a user