未验证 提交 b88ea35c 编写于 作者: J Jim 提交者: GitHub

Merge pull request #2341 from FlyGoat/cross-plat

Add support for MIPS architecture
...@@ -78,8 +78,26 @@ if(${CMAKE_C_COMPILER_ID} MATCHES "Clang" OR ${CMAKE_CXX_COMPILER_ID} MATCHES "C ...@@ -78,8 +78,26 @@ if(${CMAKE_C_COMPILER_ID} MATCHES "Clang" OR ${CMAKE_CXX_COMPILER_ID} MATCHES "C
set(CMAKE_COMPILER_IS_CLANG TRUE) set(CMAKE_COMPILER_IS_CLANG TRUE)
endif() endif()
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64(le)?") if (MSVC_CXX_ARCHITECTURE_ID)
string(TOLOWER ${MSVC_CXX_ARCHITECTURE_ID} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
else ()
string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
endif ()
if(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86|x64|x86_64|amd64)")
set(NEEDS_SIMDE "0")
if(NOT MSVC)
set(ARCH_SIMD_FLAGS "-mmmx" "-msse" "-msse2")
endif()
elseif(LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64(le)?")
set(NEEDS_SIMDE "0")
set(ARCH_SIMD_FLAGS "-mvsx")
add_compile_definitions(NO_WARN_X86_INTRINSICS) add_compile_definitions(NO_WARN_X86_INTRINSICS)
else()
set(NEEDS_SIMDE "1")
add_definitions(-DNEEDS_SIMDE=1)
set(ARCH_SIMD_FLAGS "")
message(STATUS "No Native SSE2 SIMD Support - Using SIMDE")
endif() endif()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG)
......
...@@ -23,26 +23,15 @@ add_library(media-playback STATIC ...@@ -23,26 +23,15 @@ add_library(media-playback STATIC
${media-playback_SOURCES} ${media-playback_SOURCES}
) )
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64(le)?") target_compile_options(media-playback
target_compile_options(media-playback PUBLIC
PUBLIC ${ARCH_SIMD_FLAGS})
-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
-mmmx
-msse
-msse2)
endif()
target_include_directories(media-playback target_include_directories(media-playback
PUBLIC . PUBLIC .
) )
if(NOT MSVC) if(NOT MSVC)
if(NOT MINGW) if(NOT MINGW)
target_compile_options(media-playback PRIVATE -fPIC) target_compile_options(media-playback PRIVATE -fPIC)
......
...@@ -174,20 +174,21 @@ elseif(UNIX) ...@@ -174,20 +174,21 @@ elseif(UNIX)
util/pipe-posix.c util/pipe-posix.c
util/platform-nix.c) util/platform-nix.c)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") if(NEEDS_SIMDE)
set(libobs_PLATFORM_HEADERS set(libobs_PLATFORM_HEADERS
util/aarch/check.h util/simde/check.h
util/aarch/hedley.h util/simde/hedley.h
util/aarch/mmx.h util/simde/mmx.h
util/aarch/simde-arch.h util/simde/simde-arch.h
util/aarch/simde-common.h util/simde/simde-common.h
util/aarch/sse.h util/simde/sse.h
util/aarch/sse2.h util/simde/sse2.h
util/threading-posix.h) util/threading-posix.h)
else() else()
set(libobs_PLATFORM_HEADERS set(libobs_PLATFORM_HEADERS
util/threading-posix.h) util/threading-posix.h)
endif() endif()
if(HAVE_PULSEAUDIO) if(HAVE_PULSEAUDIO)
set(libobs_audio_monitoring_HEADERS set(libobs_audio_monitoring_HEADERS
audio-monitoring/pulse/pulseaudio-wrapper.h) audio-monitoring/pulse/pulseaudio-wrapper.h)
...@@ -475,22 +476,9 @@ target_compile_definitions(libobs ...@@ -475,22 +476,9 @@ target_compile_definitions(libobs
PUBLIC PUBLIC
HAVE_OBSCONFIG_H) HAVE_OBSCONFIG_H)
if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)64(le)?") target_compile_options(libobs
target_compile_options(libobs PUBLIC
PUBLIC ${ARCH_SIMD_FLAGS})
-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
-mmmx
-msse
-msse2)
endif()
target_compile_options(libobs target_compile_options(libobs
PUBLIC PUBLIC
......
...@@ -19,6 +19,7 @@ ...@@ -19,6 +19,7 @@
#define HAVE_DBUS @HAVE_DBUS@ #define HAVE_DBUS @HAVE_DBUS@
#define HAVE_PULSEAUDIO @HAVE_PULSEAUDIO@ #define HAVE_PULSEAUDIO @HAVE_PULSEAUDIO@
#define USE_XINPUT @USE_XINPUT@ #define USE_XINPUT @USE_XINPUT@
#define NEEDS_SIMDE @NEEDS_SIMDE@
#define LIBOBS_IMAGEMAGICK_DIR_STYLE_6L 6 #define LIBOBS_IMAGEMAGICK_DIR_STYLE_6L 6
#define LIBOBS_IMAGEMAGICK_DIR_STYLE_7GE 7 #define LIBOBS_IMAGEMAGICK_DIR_STYLE_7GE 7
#define LIBOBS_IMAGEMAGICK_DIR_STYLE @LIBOBS_IMAGEMAGICK_DIR_STYLE@ #define LIBOBS_IMAGEMAGICK_DIR_STYLE @LIBOBS_IMAGEMAGICK_DIR_STYLE@
......
...@@ -17,9 +17,9 @@ ...@@ -17,9 +17,9 @@
#pragma once #pragma once
#ifdef __aarch64__ #if NEEDS_SIMDE
#include "aarch/sse2.h" #include "simde/sse2.h"
#define __m128 simde__m128 #define __m128 simde__m128
#define _mm_setzero_ps simde_mm_setzero_ps #define _mm_setzero_ps simde_mm_setzero_ps
......
...@@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. ...@@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#if defined(__i386__) #if defined(__i386__)
#define UINT_TO_POINTER(val) ((void *)(unsigned int)(val)) #define UINT_TO_POINTER(val) ((void *)(unsigned int)(val))
#define POINTER_TO_UINT(p) ((unsigned int)(unsigned int)(p)) #define POINTER_TO_UINT(p) ((unsigned int)(unsigned int)(p))
#elif defined(__x86_64__) #elif defined(__x86_64__) || defined(__aarch64__) || (_MIPS_SIM == _ABI64)
#define UINT_TO_POINTER(val) ((void *)(unsigned long)(val)) #define UINT_TO_POINTER(val) ((void *)(unsigned long)(val))
#define POINTER_TO_UINT(p) ((unsigned int)(unsigned long)(p)) #define POINTER_TO_UINT(p) ((unsigned int)(unsigned long)(p))
#else #else
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册