* Port citra #3352 to yuzu This change allows non x86_64 architectures to compile yuzu by skipping the building of dynarmic * Fixed clang-format errors * fixes more clang-format errors
This commit is contained in:
		
				
					committed by
					
						 bunnei
						bunnei
					
				
			
			
				
	
			
			
			
						parent
						
							0b6da0c1ab
						
					
				
				
					commit
					c8a094e164
				
			| @@ -54,15 +54,18 @@ function(detect_architecture symbol arch) | |||||||
|     endif() |     endif() | ||||||
| endfunction() | endfunction() | ||||||
|  |  | ||||||
| if (MSVC) | if (NOT ENABLE_GENERIC) | ||||||
|     detect_architecture("_M_AMD64" x86_64) |     if (MSVC) | ||||||
|     detect_architecture("_M_IX86" x86) |         detect_architecture("_M_AMD64" x86_64) | ||||||
|     detect_architecture("_M_ARM" ARM) |         detect_architecture("_M_IX86" x86) | ||||||
| else() |         detect_architecture("_M_ARM" ARM) | ||||||
|     detect_architecture("__x86_64__" x86_64) |     else() | ||||||
|     detect_architecture("__i386__" x86) |         detect_architecture("__x86_64__" x86_64) | ||||||
|     detect_architecture("__arm__" ARM) |         detect_architecture("__i386__" x86) | ||||||
|  |         detect_architecture("__arm__" ARM) | ||||||
|  |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| if (NOT DEFINED ARCHITECTURE) | if (NOT DEFINED ARCHITECTURE) | ||||||
|     set(ARCHITECTURE "GENERIC") |     set(ARCHITECTURE "GENERIC") | ||||||
|     set(ARCHITECTURE_GENERIC 1) |     set(ARCHITECTURE_GENERIC 1) | ||||||
|   | |||||||
| @@ -1,7 +1,5 @@ | |||||||
| add_library(core STATIC | add_library(core STATIC | ||||||
|     arm/arm_interface.h |     arm/arm_interface.h | ||||||
|     arm/dynarmic/arm_dynarmic.cpp |  | ||||||
|     arm/dynarmic/arm_dynarmic.h |  | ||||||
|     arm/unicorn/arm_unicorn.cpp |     arm/unicorn/arm_unicorn.cpp | ||||||
|     arm/unicorn/arm_unicorn.h |     arm/unicorn/arm_unicorn.h | ||||||
|     core.cpp |     core.cpp | ||||||
| @@ -178,5 +176,13 @@ add_library(core STATIC | |||||||
|  |  | ||||||
| create_target_directory_groups(core) | create_target_directory_groups(core) | ||||||
|  |  | ||||||
| target_link_libraries(core PUBLIC common PRIVATE dynarmic video_core) | target_link_libraries(core PUBLIC common PRIVATE video_core) | ||||||
| target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static unicorn) | target_link_libraries(core PUBLIC Boost::boost PRIVATE fmt lz4_static unicorn) | ||||||
|  |  | ||||||
|  | if (ARCHITECTURE_x86_64) | ||||||
|  |     target_sources(core PRIVATE | ||||||
|  |         arm/dynarmic/arm_dynarmic.cpp | ||||||
|  |         arm/dynarmic/arm_dynarmic.h | ||||||
|  |     ) | ||||||
|  |     target_link_libraries(core PRIVATE dynarmic) | ||||||
|  | endif() | ||||||
|   | |||||||
| @@ -5,7 +5,9 @@ | |||||||
| #include <memory> | #include <memory> | ||||||
| #include <utility> | #include <utility> | ||||||
| #include "common/logging/log.h" | #include "common/logging/log.h" | ||||||
|  | #ifdef ARCHITECTURE_x86_64 | ||||||
| #include "core/arm/dynarmic/arm_dynarmic.h" | #include "core/arm/dynarmic/arm_dynarmic.h" | ||||||
|  | #endif | ||||||
| #include "core/arm/unicorn/arm_unicorn.h" | #include "core/arm/unicorn/arm_unicorn.h" | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
| #include "core/core_timing.h" | #include "core/core_timing.h" | ||||||
| @@ -144,7 +146,12 @@ System::ResultStatus System::Init(EmuWindow* emu_window, u32 system_mode) { | |||||||
|         break; |         break; | ||||||
|     case Settings::CpuCore::Dynarmic: |     case Settings::CpuCore::Dynarmic: | ||||||
|     default: |     default: | ||||||
|  | #ifdef ARCHITECTURE_x86_64 | ||||||
|         cpu_core = std::make_unique<ARM_Dynarmic>(); |         cpu_core = std::make_unique<ARM_Dynarmic>(); | ||||||
|  | #else | ||||||
|  |         cpu_core = std::make_unique<ARM_Unicorn>(); | ||||||
|  |         LOG_WARNING(Core, "CPU JIT requested, but Dynarmic not available"); | ||||||
|  | #endif | ||||||
|         break; |         break; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,13 +7,16 @@ | |||||||
| #include "common/assert.h" | #include "common/assert.h" | ||||||
| #include "common/file_util.h" | #include "common/file_util.h" | ||||||
| #include "common/scm_rev.h" | #include "common/scm_rev.h" | ||||||
|  | #ifdef ARCHITECTURE_x86_64 | ||||||
| #include "common/x64/cpu_detect.h" | #include "common/x64/cpu_detect.h" | ||||||
|  | #endif | ||||||
| #include "core/core.h" | #include "core/core.h" | ||||||
| #include "core/settings.h" | #include "core/settings.h" | ||||||
| #include "core/telemetry_session.h" | #include "core/telemetry_session.h" | ||||||
|  |  | ||||||
| namespace Core { | namespace Core { | ||||||
|  |  | ||||||
|  | #ifdef ARCHITECTURE_x86_64 | ||||||
| static const char* CpuVendorToStr(Common::CPUVendor vendor) { | static const char* CpuVendorToStr(Common::CPUVendor vendor) { | ||||||
|     switch (vendor) { |     switch (vendor) { | ||||||
|     case Common::CPUVendor::INTEL: |     case Common::CPUVendor::INTEL: | ||||||
| @@ -25,6 +28,7 @@ static const char* CpuVendorToStr(Common::CPUVendor vendor) { | |||||||
|     } |     } | ||||||
|     UNREACHABLE(); |     UNREACHABLE(); | ||||||
| } | } | ||||||
|  | #endif | ||||||
|  |  | ||||||
| static u64 GenerateTelemetryId() { | static u64 GenerateTelemetryId() { | ||||||
|     u64 telemetry_id{}; |     u64 telemetry_id{}; | ||||||
| @@ -113,7 +117,8 @@ TelemetrySession::TelemetrySession() { | |||||||
|     AddField(Telemetry::FieldType::App, "BuildDate", Common::g_build_date); |     AddField(Telemetry::FieldType::App, "BuildDate", Common::g_build_date); | ||||||
|     AddField(Telemetry::FieldType::App, "BuildName", Common::g_build_name); |     AddField(Telemetry::FieldType::App, "BuildName", Common::g_build_name); | ||||||
|  |  | ||||||
|     // Log user system information | // Log user system information | ||||||
|  | #ifdef ARCHITECTURE_x86_64 | ||||||
|     AddField(Telemetry::FieldType::UserSystem, "CPU_Model", Common::GetCPUCaps().cpu_string); |     AddField(Telemetry::FieldType::UserSystem, "CPU_Model", Common::GetCPUCaps().cpu_string); | ||||||
|     AddField(Telemetry::FieldType::UserSystem, "CPU_BrandString", |     AddField(Telemetry::FieldType::UserSystem, "CPU_BrandString", | ||||||
|              Common::GetCPUCaps().brand_string); |              Common::GetCPUCaps().brand_string); | ||||||
| @@ -135,6 +140,9 @@ TelemetrySession::TelemetrySession() { | |||||||
|              Common::GetCPUCaps().sse4_1); |              Common::GetCPUCaps().sse4_1); | ||||||
|     AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSE42", |     AddField(Telemetry::FieldType::UserSystem, "CPU_Extension_x64_SSE42", | ||||||
|              Common::GetCPUCaps().sse4_2); |              Common::GetCPUCaps().sse4_2); | ||||||
|  | #else | ||||||
|  |     AddField(Telemetry::FieldType::UserSystem, "CPU_Model", "Other"); | ||||||
|  | #endif | ||||||
| #ifdef __APPLE__ | #ifdef __APPLE__ | ||||||
|     AddField(Telemetry::FieldType::UserSystem, "OsPlatform", "Apple"); |     AddField(Telemetry::FieldType::UserSystem, "OsPlatform", "Apple"); | ||||||
| #elif defined(_WIN32) | #elif defined(_WIN32) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user