libobs: Enable compilation on aarch64

Add arch checks to enable aarch-compat layer on aarch64, retain normal
gcc intrinsics on x86 and ppc64.
master
Peter Geis 2019-10-09 16:13:23 +00:00
parent f96545acf3
commit 64d0b7fcb4
9 changed files with 33 additions and 11 deletions

View File

@ -28,6 +28,9 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64le")
PUBLIC
-mvsx)
add_compile_definitions(NO_WARN_X86_INTRINSICS)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
target_compile_options(media-playback
PUBLIC)
elseif(NOT MSVC)
target_compile_options(media-playback
PUBLIC

View File

@ -174,9 +174,20 @@ elseif(UNIX)
util/pipe-posix.c
util/platform-nix.c)
set(libobs_PLATFORM_HEADERS
util/threading-posix.h)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
set(libobs_PLATFORM_HEADERS
util/aarch/check.h
util/aarch/hedley.h
util/aarch/mmx.h
util/aarch/simde-arch.h
util/aarch/simde-common.h
util/aarch/sse.h
util/aarch/sse2.h
util/threading-posix.h)
else()
set(libobs_PLATFORM_HEADERS
util/threading-posix.h)
endif()
if(HAVE_PULSEAUDIO)
set(libobs_audio_monitoring_HEADERS
audio-monitoring/pulse/pulseaudio-wrapper.h)
@ -337,6 +348,7 @@ set(libobs_util_SOURCES
util/cf-parser.c
util/profiler.c)
set(libobs_util_HEADERS
util/sse-intrin.h
util/array-serializer.h
util/file-serializer.h
util/utf8.h
@ -470,6 +482,9 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64le")
PUBLIC
-mvsx)
add_compile_definitions(NO_WARN_X86_INTRINSICS)
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64")
target_compile_options(libobs
PUBLIC)
elseif(NOT MSVC)
target_compile_options(libobs
PUBLIC

View File

@ -20,7 +20,8 @@
#include "../util/c99defs.h"
#include "math-defs.h"
#include "vec3.h"
#include <xmmintrin.h>
#include <util/sse-intrin.h>
/*
* Quaternion math

View File

@ -19,7 +19,8 @@
#include "math-defs.h"
#include "vec4.h"
#include <xmmintrin.h>
#include <util/sse-intrin.h>
#ifdef __cplusplus
extern "C" {

View File

@ -18,7 +18,8 @@
#pragma once
#include "math-defs.h"
#include <xmmintrin.h>
#include <util/sse-intrin.h>
#ifdef __cplusplus
extern "C" {

View File

@ -16,8 +16,8 @@
******************************************************************************/
#include "format-conversion.h"
#include <xmmintrin.h>
#include <emmintrin.h>
#include <util/sse-intrin.h>
/* ...surprisingly, if I don't use a macro to force inlining, it causes the
* CPU usage to boost by a tremendous amount in debug builds. */

View File

@ -16,7 +16,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <math.h>
#include <xmmintrin.h>
#include <util/sse-intrin.h>
#include "util/threading.h"
#include "util/bmem.h"

View File

@ -1,6 +1,6 @@
#include "audio-repack.h"
#include <emmintrin.h>
#include <util/sse-intrin.h>
int check_buffer(struct audio_repack *repack, uint32_t frame_count)
{

View File

@ -5,7 +5,7 @@
#include <util/threading.h>
#include <windows.h>
#include <dxgi.h>
#include <emmintrin.h>
#include <util/sse-intrin.h>
#include <ipc-util/pipe.h>
#include "obfuscate.h"
#include "inject-library.h"