diff --git a/src/xenia/app/premake5.lua b/src/xenia/app/premake5.lua index 31aa50d79..3f5133d2d 100644 --- a/src/xenia/app/premake5.lua +++ b/src/xenia/app/premake5.lua @@ -15,7 +15,6 @@ project("xenia-app") "xenia-base", "xenia-core", "xenia-cpu", - "xenia-cpu-backend-x64", "xenia-debug-ui", "xenia-gpu", "xenia-gpu-null", @@ -58,6 +57,11 @@ project("xenia-app") project_root, }) + filter("architecture:x86_64") + links({ + "xenia-cpu-backend-x64", + }) + filter("platforms:Windows") files({ "main_resources.rc", diff --git a/src/xenia/cpu/backend/x64/x64_backend.h b/src/xenia/cpu/backend/x64/x64_backend.h index 4cb69e040..470988806 100644 --- a/src/xenia/cpu/backend/x64/x64_backend.h +++ b/src/xenia/cpu/backend/x64/x64_backend.h @@ -27,8 +27,6 @@ namespace x64 { class X64CodeCache; -#define XENIA_HAS_X64_BACKEND 1 - typedef void* (*HostToGuestThunk)(void* target, void* arg0, void* arg1); typedef void* (*GuestToHostThunk)(void* target, void* arg0, void* arg1); typedef void (*ResolveFunctionThunk)(); diff --git a/src/xenia/cpu/ppc/testing/ppc_testing_main.cc b/src/xenia/cpu/ppc/testing/ppc_testing_main.cc index a39c41bd1..0d54261c4 100644 --- a/src/xenia/cpu/ppc/testing/ppc_testing_main.cc +++ b/src/xenia/cpu/ppc/testing/ppc_testing_main.cc @@ -15,13 +15,16 @@ #include "xenia/base/math.h" #include "xenia/base/platform.h" #include "xenia/base/string_buffer.h" -#include "xenia/cpu/backend/x64/x64_backend.h" #include "xenia/cpu/cpu_flags.h" #include "xenia/cpu/ppc/ppc_context.h" #include "xenia/cpu/ppc/ppc_frontend.h" #include "xenia/cpu/processor.h" #include "xenia/cpu/raw_module.h" +#if XE_ARCH_AMD64 +#include "xenia/cpu/backend/x64/x64_backend.h" +#endif // XE_ARCH + #if XE_COMPILER_MSVC #include "xenia/base/platform_win.h" #endif // XE_COMPILER_MSVC @@ -196,17 +199,17 @@ class TestRunner { std::unique_ptr<xe::cpu::backend::Backend> backend; if (!backend) { -#if defined(XENIA_HAS_X64_BACKEND) && XENIA_HAS_X64_BACKEND +#if XE_ARCH_AMD64 if (cvars::cpu == "x64") { backend.reset(new xe::cpu::backend::x64::X64Backend()); } -#endif // XENIA_HAS_X64_BACKEND +#endif // XE_ARCH if (cvars::cpu == "any") { -#if defined(XENIA_HAS_X64_BACKEND) && XENIA_HAS_X64_BACKEND if (!backend) { +#if XE_ARCH_AMD64 backend.reset(new xe::cpu::backend::x64::X64Backend()); +#endif // XE_ARCH } -#endif // XENIA_HAS_X64_BACKEND } } diff --git a/src/xenia/cpu/ppc/testing/premake5.lua b/src/xenia/cpu/ppc/testing/premake5.lua index d91256460..bca2bb81e 100644 --- a/src/xenia/cpu/ppc/testing/premake5.lua +++ b/src/xenia/cpu/ppc/testing/premake5.lua @@ -11,7 +11,6 @@ project("xenia-cpu-ppc-tests") "fmt", "mspack", "xenia-core", - "xenia-cpu-backend-x64", "xenia-cpu", "xenia-base", }) @@ -24,6 +23,10 @@ project("xenia-cpu-ppc-tests") }) filter("files:*.s") flags({"ExcludeFromBuild"}) + filter("architecture:x86_64") + links({ + "xenia-cpu-backend-x64", + }) filter("platforms:Windows") debugdir(project_root) debugargs({ diff --git a/src/xenia/emulator.cc b/src/xenia/emulator.cc index 0fbf74d18..da9fb18d4 100644 --- a/src/xenia/emulator.cc +++ b/src/xenia/emulator.cc @@ -24,9 +24,9 @@ #include "xenia/base/literals.h" #include "xenia/base/logging.h" #include "xenia/base/mapped_memory.h" +#include "xenia/base/platform.h" #include "xenia/base/string.h" #include "xenia/cpu/backend/code_cache.h" -#include "xenia/cpu/backend/x64/x64_backend.h" #include "xenia/cpu/cpu_flags.h" #include "xenia/cpu/thread_state.h" #include "xenia/gpu/graphics_system.h" @@ -50,6 +50,10 @@ #include "xenia/vfs/devices/stfs_container_device.h" #include "xenia/vfs/virtual_file_system.h" +#if XE_ARCH_AMD64 +#include "xenia/cpu/backend/x64/x64_backend.h" +#endif // XE_ARCH + DEFINE_double(time_scalar, 1.0, "Scalar used to speed or slow time (1x, 2x, 1/2x, etc).", "General"); @@ -161,17 +165,17 @@ X_STATUS Emulator::Setup( std::unique_ptr<xe::cpu::backend::Backend> backend; if (!backend) { -#if defined(XENIA_HAS_X64_BACKEND) && XENIA_HAS_X64_BACKEND +#if XE_ARCH_AMD64 if (cvars::cpu == "x64") { backend.reset(new xe::cpu::backend::x64::X64Backend()); } -#endif // XENIA_HAS_X64_BACKEND +#endif // XE_ARCH if (cvars::cpu == "any") { -#if defined(XENIA_HAS_X64_BACKEND) && XENIA_HAS_X64_BACKEND if (!backend) { +#if XE_ARCH_AMD64 backend.reset(new xe::cpu::backend::x64::X64Backend()); +#endif // XE_ARCH } -#endif // XENIA_HAS_X64_BACKEND } } diff --git a/src/xenia/gpu/d3d12/premake5.lua b/src/xenia/gpu/d3d12/premake5.lua index bc6e95653..94c7f5b61 100644 --- a/src/xenia/gpu/d3d12/premake5.lua +++ b/src/xenia/gpu/d3d12/premake5.lua @@ -30,7 +30,6 @@ project("xenia-gpu-d3d12-trace-viewer") "xenia-base", "xenia-core", "xenia-cpu", - "xenia-cpu-backend-x64", "xenia-gpu", "xenia-gpu-d3d12", "xenia-hid", @@ -66,6 +65,11 @@ project("xenia-gpu-d3d12-trace-viewer") }) end + filter("architecture:x86_64") + links({ + "xenia-cpu-backend-x64", + }) + group("src") project("xenia-gpu-d3d12-trace-dump") uuid("686b859c-0046-44c4-a02c-41fc3fb75698") @@ -77,7 +81,6 @@ project("xenia-gpu-d3d12-trace-dump") "xenia-base", "xenia-core", "xenia-cpu", - "xenia-cpu-backend-x64", "xenia-gpu", "xenia-gpu-d3d12", "xenia-hid", @@ -112,3 +115,8 @@ project("xenia-gpu-d3d12-trace-dump") "1>scratch/stdout-trace-dump.txt", }) end + + filter("architecture:x86_64") + links({ + "xenia-cpu-backend-x64", + }) diff --git a/src/xenia/gpu/vulkan/premake5.lua b/src/xenia/gpu/vulkan/premake5.lua index f68b886a7..4d8fc4203 100644 --- a/src/xenia/gpu/vulkan/premake5.lua +++ b/src/xenia/gpu/vulkan/premake5.lua @@ -34,7 +34,6 @@ project("xenia-gpu-vulkan-trace-viewer") "xenia-base", "xenia-core", "xenia-cpu", - "xenia-cpu-backend-x64", "xenia-gpu", "xenia-gpu-vulkan", "xenia-hid", @@ -64,6 +63,11 @@ project("xenia-gpu-vulkan-trace-viewer") "../../ui/windowed_app_main_"..platform_suffix..".cc", }) + filter("architecture:x86_64") + links({ + "xenia-cpu-backend-x64", + }) + filter("platforms:Linux") links({ "X11", @@ -93,7 +97,6 @@ project("xenia-gpu-vulkan-trace-dump") "xenia-base", "xenia-core", "xenia-cpu", - "xenia-cpu-backend-x64", "xenia-gpu", "xenia-gpu-vulkan", "xenia-hid", @@ -123,6 +126,11 @@ project("xenia-gpu-vulkan-trace-dump") "../../base/console_app_main_"..platform_suffix..".cc", }) + filter("architecture:x86_64") + links({ + "xenia-cpu-backend-x64", + }) + filter("platforms:Linux") links({ "X11",