Browse Source
[cmake, arm] fix windows/arm64 build
Signed-off-by: crueter <crueter@crueter.xyz>
pull/348/head
crueter
6 months ago
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
3 changed files with
20 additions and
3 deletions
-
CMakeLists.txt
-
CMakeModules/DownloadExternals.cmake
-
src/core/arm/dynarmic/dynarmic_cp15.cpp
|
|
|
@ -366,6 +366,12 @@ if (YUZU_USE_CPM) |
|
|
|
|
|
|
|
# boost |
|
|
|
set(BOOST_INCLUDE_LIBRARIES algorithm icl pool container heap asio headers process filesystem crc variant) |
|
|
|
if (MSVC AND ARCHITECURE_arm64) |
|
|
|
set(BOOST_USE_PREBUILT OFF) |
|
|
|
set(BOOST_CONTEXT_ASM OFF) |
|
|
|
set(BOOST_B2_OPTIONS=address-model=64 architecture=arm target-os=windows toolset=msvc) |
|
|
|
endif() |
|
|
|
|
|
|
|
AddJsonPackage(boost) |
|
|
|
|
|
|
|
# really annoying thing where boost::headers doesn't work with cpm |
|
|
|
|
|
|
|
@ -11,10 +11,17 @@ function(download_bundled_external remote_path lib_name cpm_key prefix_var versi |
|
|
|
set(package_repo "no_platform") |
|
|
|
set(package_extension "no_platform") |
|
|
|
|
|
|
|
# TODO(crueter): Need to convert ffmpeg to a CI. |
|
|
|
if (WIN32 OR FORCE_WIN_ARCHIVES) |
|
|
|
set(CACHE_KEY "windows") |
|
|
|
set(package_repo "ext-windows-bin/raw/master/") |
|
|
|
set(package_extension ".7z") |
|
|
|
if (ARCHITECTURE_arm64) |
|
|
|
set(CACHE_KEY "windows") |
|
|
|
set(package_repo "ext-windows-arm64-bin/raw/master/") |
|
|
|
set(package_extension ".zip") |
|
|
|
elseif(ARCHITECTURE_x86_64) |
|
|
|
set(CACHE_KEY "windows") |
|
|
|
set(package_repo "ext-windows-bin/raw/master/") |
|
|
|
set(package_extension ".7z") |
|
|
|
endif() |
|
|
|
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") |
|
|
|
set(CACHE_KEY "linux") |
|
|
|
set(package_repo "ext-linux-bin/raw/master/") |
|
|
|
|
|
|
|
@ -58,6 +58,8 @@ CallbackOrAccessOneWord DynarmicCP15::CompileSendOneWord(bool two, unsigned opc1 |
|
|
|
_mm_lfence(); |
|
|
|
#elif defined(ARCHITECTURE_x86_64)
|
|
|
|
asm volatile("mfence\n\tlfence\n\t" : : : "memory"); |
|
|
|
#elif defined(_MSC_VER) && defined(ARCHITECTURE_arm64)
|
|
|
|
_Memory_barrier(); |
|
|
|
#elif defined(ARCHITECTURE_arm64)
|
|
|
|
asm volatile("dsb sy\n\t" : : : "memory"); |
|
|
|
#else
|
|
|
|
@ -75,6 +77,8 @@ CallbackOrAccessOneWord DynarmicCP15::CompileSendOneWord(bool two, unsigned opc1 |
|
|
|
_mm_mfence(); |
|
|
|
#elif defined(ARCHITECTURE_x86_64)
|
|
|
|
asm volatile("mfence\n\t" : : : "memory"); |
|
|
|
#elif defined(_MSC_VER) && defined(ARCHITECTURE_arm64)
|
|
|
|
_Memory_barrier(); |
|
|
|
#elif defined(ARCHITECTURE_arm64)
|
|
|
|
asm volatile("dmb sy\n\t" : : : "memory"); |
|
|
|
#else
|
|
|
|
|