summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshuffle2 <godisgovernment@gmail.com>2014-05-26 13:36:05 -0700
committershuffle2 <godisgovernment@gmail.com>2014-05-26 13:36:05 -0700
commite25c9fef46f3c10f169825d596fb993eefd960d6 (patch)
tree17d05f03ff8b1cd165da1aa243061dc372003fe9
parent4758b362c3c59f876f8db56bd4dad9243dc41ba9 (diff)
parent28e643c384fd7f978fb7a6fcc10b30b106b18c68 (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.txt61
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)