diff --git a/cmake/BuildParameters.cmake b/cmake/BuildParameters.cmake index 80c44694b8ef0..a1f7b2a3267cc 100644 --- a/cmake/BuildParameters.cmake +++ b/cmake/BuildParameters.cmake @@ -78,8 +78,8 @@ mark_as_advanced(CMAKE_C_FLAGS_DEVEL CMAKE_CXX_FLAGS_DEVEL CMAKE_LINKER_FLAGS_DE #------------------------------------------------------------------------------- # Select the architecture #------------------------------------------------------------------------------- -if("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "amd64" OR - "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "AMD64" OR "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64") +if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "amd64" OR + "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "AMD64" OR "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "x86_64") # Multi-ISA only exists on x86. option(DISABLE_ADVANCE_SIMD "Disable advance use of SIMD (SSE2+ & AVX)" OFF) @@ -105,12 +105,12 @@ if("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR "${CMAKE_HOST_SYSTEM_PR add_compile_options("-msse" "-msse2" "-msse4.1" "-mfxsr") else() # Can't use march=native on Apple Silicon. - if(NOT APPLE OR "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "x86_64") + if(NOT APPLE OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64") add_compile_options("-march=native") endif() endif() endif() -elseif("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64" OR "${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR +elseif("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "arm64" OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64" OR "${CMAKE_OSX_ARCHITECTURES}" STREQUAL "arm64") message(STATUS "Building for Apple Silicon (ARM64).") set(ARCH_ARM64 TRUE) @@ -124,13 +124,13 @@ elseif("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64" OR "${CMAKE_HOST_SYSTEM # If we're running on Linux, we need to detect the page/cache line size. # It could be a virtual machine with 4K pages, or 16K with Asahi. - if(LINUX) + if(LINUX AND NOT CMAKE_CROSSCOMPILING) detect_page_size() list(APPEND PCSX2_DEFS OVERRIDE_HOST_PAGE_SIZE=${HOST_PAGE_SIZE}) detect_cache_line_size() list(APPEND PCSX2_DEFS OVERRIDE_HOST_CACHE_LINE_SIZE=${HOST_CACHE_LINE_SIZE}) endif() - + # Windows page/cache line size seems to match x68-64 if(WIN32) list(APPEND PCSX2_DEFS OVERRIDE_HOST_PAGE_SIZE=0x1000) @@ -138,7 +138,7 @@ elseif("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "arm64" OR "${CMAKE_HOST_SYSTEM list(APPEND PCSX2_DEFS OVERRIDE_HOST_CACHE_LINE_SIZE=64) endif() else() - message(FATAL_ERROR "Unsupported architecture: ${CMAKE_HOST_SYSTEM_PROCESSOR}") + message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}") endif() # Require C++20.