diff options
| author | shuffle2 <godisgovernment@gmail.com> | 2014-05-26 13:36:05 -0700 |
|---|---|---|
| committer | shuffle2 <godisgovernment@gmail.com> | 2014-05-26 13:36:05 -0700 |
| commit | e25c9fef46f3c10f169825d596fb993eefd960d6 (patch) | |
| tree | 17d05f03ff8b1cd165da1aa243061dc372003fe9 | |
| parent | 4758b362c3c59f876f8db56bd4dad9243dc41ba9 (diff) | |
| parent | 28e643c384fd7f978fb7a6fcc10b30b106b18c68 (diff) | |
Merge pull request #418 from Sonicadvance1/x86_32-cmake-removal
Add a Cmake generic build option and remove x86_32 build capabilities.
| -rw-r--r-- | CMakeLists.txt | 61 |
1 files changed, 32 insertions, 29 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 3c9d7a8327..185a3e8097 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,6 +11,7 @@ option(USE_UPNP "Enables UPnP port mapping support" ON) option(DISABLE_WX "Disable wxWidgets (use CLI interface)" OFF) option(ENABLE_PCH "Use PCH to speed up compilation" ON) option(ENABLE_LTO "Enables Link Time Optimization" OFF) +option(ENABLE_GENERIC "Enables generic build that should run on any little-endian host" OFF) option(OPENMP "Enable OpenMP parallelization" ON) option(ENCODE_FRAMEDUMPS "Encode framedumps in AVI format" ON) @@ -134,37 +135,39 @@ else() add_definitions(-D_ARCH_32=1) endif() -if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^x86" OR - ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i.86" OR - ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - add_definitions(-msse2) - set(_M_X86 1) - add_definitions(-D_M_X86=1) - if(_ARCH_64) - set(_M_X86_64 1) - add_definitions(-D_M_X86_64=1) +if(NOT ENABLE_GENERIC) + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^x86" OR + ${CMAKE_SYSTEM_PROCESSOR} MATCHES "i.86" OR + ${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + if(_ARCH_64) + set(_M_X86 1) + set(_M_X86_64 1) + add_definitions(-D_M_X86=1 -D_M_X86_64=1 -msse2) + else() + message(FATAL_ERROR "x86_32 is an unsupported platform. Enable generic build if you really want a JIT-less binary.") + endif() + elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm") + # This option only applies to 32bit ARM + set(_M_ARM 1) + set(_M_ARM_32 1) + add_definitions(-D_M_ARM=1 -D_M_ARM_32=1) + # ARMv7 isn't a generic build anymore, this shouldn't need to be defined + set(ENABLE_GENERIC 1) + if(${ANDROID_NDK_ABI_NAME} MATCHES "armeabi-v7a") + add_definitions(-marm -march=armv7-a) + endif() + elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") + # This option only applies to 64bit ARM + set(_M_ARM 1) + set(_M_ARM_64 1) + add_definitions(-D_M_ARM=1 -D_M_ARM_64=1) + set(ENABLE_GENERIC 1) else() - set(_M_X86_32 1) - add_definitions(-D_M_X86_32=1) - endif() -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^arm") - # This option only applies to 32bit ARM - set(_M_ARM 1) - set(_M_ARM_32 1) - add_definitions(-D_M_ARM=1 -D_M_ARM_32=1) - set(_M_GENERIC 1) - add_definitions(-D_M_GENERIC=1) - if(${ANDROID_NDK_ABI_NAME} MATCHES "armeabi-v7a") - add_definitions(-marm -march=armv7-a) + set(ENABLE_GENERIC 1) endif() -elseif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64") - # This option only applies to 64bit ARM - set(_M_ARM 1) - set(_M_ARM_64 1) - add_definitions(-D_M_ARM=1 -D_M_ARM_64=1) - set(_M_GENERIC 1) - add_definitions(-D_M_GENERIC=1) -else() +endif() + +if(ENABLE_GENERIC) message("Warning! Building generic build!") set(_M_GENERIC 1) add_definitions(-D_M_GENERIC=1) |
