mirror of https://github.com/PCSX2/pcsx2.git
Use TargetArch to correctly detect the target.
Currently crosscompiling was broken since we detected the cpu of the host not of the target. Building arm -> i386, i386->amd64, etc resulted in interesting stuff. . CMAKE_HOST_SYSTEM_PROCESSOR and CMAKE_SYSTEM_PROCESSOR should have done this but they are incredibly broken and unreliable. I use CMAKE_HOST_SYSTEM_PROCESSOR just to retain the format of the old message and is not used for critical stuff so it does not matter. . This code also allows scalability so that if one day in the very distant and unlikely future the x86/x86_64 specific code gets made portable by replacing asm/MMX/SSE*/AVX/etc code with generic/portable code then it also would work on all architectures. . For *BSD/OS X it probably would need to use POSIX AIO instead of linux specific libaio but that is a different issue. . Error out the x86_64 builds. Also the 64BIT_BUILD_DONT_WORK option became obsolete more info in following commit.
This commit is contained in:
parent
e548ada1e9
commit
8ea0766773
|
@ -70,11 +70,19 @@ option(64BIT_BUILD_DONT_WORK "Enable a x86_64 build instead of cross compiling (
|
|||
option(DISABLE_ADVANCE_SIMD "Disable advance use of SIMD (SSE2+ & AVX)" OFF)
|
||||
|
||||
# Architecture bitness detection
|
||||
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
include(TargetArch)
|
||||
target_architecture(PCSX2_TARGET_ARCHITECTURES)
|
||||
if(${PCSX2_TARGET_ARCHITECTURES} MATCHES "x86_64")
|
||||
set(_ARCH_64 1)
|
||||
else()
|
||||
if(CMAKE_BUILD_TYPE MATCHES "Release" OR PACKAGE_MODE)
|
||||
message(FATAL_ERROR "The ${PCSX2_TARGET_ARCHITECTURES} architecture is not ready yet.")
|
||||
endif()
|
||||
elseif(${PCSX2_TARGET_ARCHITECTURES} MATCHES "i386")
|
||||
set(_ARCH_32 1)
|
||||
else()
|
||||
message(FATAL_ERROR "Unsupported architecture: ${PCSX2_TARGET_ARCHITECTURES}")
|
||||
endif()
|
||||
message(STATUS "Compiling a ${PCSX2_TARGET_ARCHITECTURES} build on a ${CMAKE_HOST_SYSTEM_PROCESSOR} host.")
|
||||
|
||||
# Print a clear message that 64bits is not supported
|
||||
if(_ARCH_64)
|
||||
|
@ -87,7 +95,6 @@ endif()
|
|||
|
||||
# 64 bits cross-compile specific configuration
|
||||
if(_ARCH_64 AND 64BIT_BUILD_DONT_WORK)
|
||||
message("Compiling 64bit build on 64bit architecture")
|
||||
# Search library in /usr/lib64
|
||||
SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS ON)
|
||||
# Probably useless but it will not harm
|
||||
|
@ -114,7 +121,6 @@ if(_ARCH_64 AND 64BIT_BUILD_DONT_WORK)
|
|||
set(_M_X86 1)
|
||||
set(_M_X86_64 1)
|
||||
else()
|
||||
message("Compiling 32bit build on 32/64bit architecture")
|
||||
# Do not search library in /usr/lib64
|
||||
SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS OFF)
|
||||
# Probably useless but it will not harm
|
||||
|
|
Loading…
Reference in New Issue