Эх сурвалжийг харах

Added ARCHS_OVERRIDE option which allows custom architecture targets to be selected instead of the native defaults, currently only applies to OS X and iOS builds

David Wimsey 11 жил өмнө
parent
commit
e5cb5433c0
1 өөрчлөгдсөн 22 нэмэгдсэн , 13 устгасан
  1. 22 13
      Build/CMakeLists.txt

+ 22 - 13
Build/CMakeLists.txt

@@ -96,6 +96,7 @@ if(NOT CMAKE_BUILD_TYPE)
         FORCE)
         FORCE)
 endif()
 endif()
 
 
+option(ARCHS_OVERRIDE "Override default processor architecture targets.  Currently only supported on OS X or iOS, ignored on other systems." OFF)
 if(NOT IOS)
 if(NOT IOS)
 	option(BUILD_SHARED_LIBS "Build shared libraries" ON)
 	option(BUILD_SHARED_LIBS "Build shared libraries" ON)
 endif(NOT IOS)
 endif(NOT IOS)
@@ -119,20 +120,28 @@ if(APPLE)
 		endif(BUILD_SHARED_LIBS)
 		endif(BUILD_SHARED_LIBS)
 
 
 		# make doesn't deal with $() project variables, so we use ${} and let cmake handle it instead
 		# make doesn't deal with $() project variables, so we use ${} and let cmake handle it instead
-		if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
-			set(CMAKE_OSX_ARCHITECTURES "${ARCHS_STANDARD}")
-		else()
-			set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)")
-		endif()
+		if(ARCHS_OVERRIDE)
+				set(CMAKE_OSX_ARCHITECTURES "${ARCHS_OVERRIDE}")
+		else(ARCHS_OVERRIDE)
+			if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
+				set(CMAKE_OSX_ARCHITECTURES "${ARCHS_STANDARD}")
+			else()
+				set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD)")
+			endif()
+		endif(ARCHS_OVERRIDE)
 	else(IOS)
 	else(IOS)
-		if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
-			# ARCHS_STANDARD_32_64_BIT environment variable is no longer present in xcode 6 for Makefile builds, we pass our own values in its place
-			# you can also add ppc or ppc64 here for older PPC builds
-#			set(CMAKE_OSX_ARCHITECTURES "${ARCHS_STANDARD_32_64_BIT}")
-			set(CMAKE_OSX_ARCHITECTURES "i386;x86_64;")
-		else()
-			set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)")
-		endif()
+		if(ARCHS_OVERRIDE)
+				set(CMAKE_OSX_ARCHITECTURES "${ARCHS_OVERRIDE}")
+		else(ARCHS_OVERRIDE)
+			if(CMAKE_GENERATOR STREQUAL "Unix Makefiles")
+				# ARCHS_STANDARD_32_64_BIT environment variable is no longer present in xcode 6 for Makefile builds, we pass our own values in its place
+				# you can also add ppc or ppc64 here for older PPC builds
+#				set(CMAKE_OSX_ARCHITECTURES "${ARCHS_STANDARD_32_64_BIT}")
+				set(CMAKE_OSX_ARCHITECTURES "i386;x86_64;")
+			else()
+				set(CMAKE_OSX_ARCHITECTURES "$(ARCHS_STANDARD_32_64_BIT)")
+			endif()
+		endif(ARCHS_OVERRIDE)
 	endif(IOS)
 	endif(IOS)
 
 
 	if(BUILD_FRAMEWORK)
 	if(BUILD_FRAMEWORK)