Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2020-03-26 11:14:22 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2020-03-26 13:35:51 +0300
commitf9590c8eaa1b35920c2bc4bd7e8e7e5af3951873 (patch)
tree0676015023ae388dd3d31282b584093efbf3e544 /build_files
parentc547d431eb87a78132af434e114eff82a70ba8c6 (diff)
CMake: Remove support of Xcode prior to 8.2
The specific goal of this change is to get rid of separate code paths for older and newer Xcode versions. The version 8.2 is picked since it's the latest version which runs on macOS 10.11 (which is our current deployment target). If that turns out too new for some reason the alternative would be to require Xcode version 5.
Diffstat (limited to 'build_files')
-rw-r--r--build_files/cmake/platform/platform_apple_xcode.cmake59
1 files changed, 20 insertions, 39 deletions
diff --git a/build_files/cmake/platform/platform_apple_xcode.cmake b/build_files/cmake/platform/platform_apple_xcode.cmake
index 56514edab4b..cc420b64268 100644
--- a/build_files/cmake/platform/platform_apple_xcode.cmake
+++ b/build_files/cmake/platform/platform_apple_xcode.cmake
@@ -41,30 +41,7 @@ execute_process(
OUTPUT_VARIABLE XCODE_CHECK OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REPLACE "/Contents/Developer" "" XCODE_BUNDLE ${XCODE_CHECK}) # truncate to bundlepath in any case
-if(${CMAKE_GENERATOR} MATCHES "Xcode")
-
- # earlier xcode has no bundled developer dir, no sense in getting xcode path from
- if(${XCODE_VERSION} VERSION_GREATER 4.2)
- # reduce to XCode name without dp extension
- string(SUBSTRING "${XCODE_CHECK}" 14 6 DP_NAME)
- if(${DP_NAME} MATCHES Xcode5)
- set(XCODE_VERSION 5)
- endif()
- endif()
-
- ##### cmake incompatibility with xcode 4.3 and higher #####
- if(${XCODE_VERSION} MATCHES '') # cmake fails due looking for xcode in the wrong path, thus will be empty var
- message(FATAL_ERROR "Xcode 4.3 and higher must be used with cmake 2.8-8 or higher")
- endif()
- ### end cmake incompatibility with xcode 4.3 and higher ###
-
- if(${XCODE_VERSION} VERSION_EQUAL 4 OR ${XCODE_VERSION} VERSION_GREATER 4 AND ${XCODE_VERSION} VERSION_LESS 4.3)
- # Xcode 4 defaults to the Apple LLVM Compiler.
- # Override the default compiler selection because Blender only compiles with gcc up to xcode 4.2
- set(CMAKE_XCODE_ATTRIBUTE_GCC_VERSION "com.apple.compilers.llvmgcc42")
- message(STATUS "Setting compiler to: " ${CMAKE_XCODE_ATTRIBUTE_GCC_VERSION})
- endif()
-else()
+if(NOT ${CMAKE_GENERATOR} MATCHES "Xcode")
# Unix makefile generator does not fill XCODE_VERSION var, so we get it with a command.
# Note that `xcodebuild -version` gives output in two lines: first line will include
# Xcode version, second one will include build number. We are only interested in the
@@ -88,21 +65,25 @@ endif()
message(STATUS "Detected OS X ${OSX_SYSTEM} and Xcode ${XCODE_VERSION} at ${XCODE_BUNDLE}")
-if(${XCODE_VERSION} VERSION_LESS 4.3)
- # use guaranteed existing sdk
- set(CMAKE_OSX_SYSROOT /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk CACHE PATH "" FORCE)
-else()
- # note: xcode-select path could be ambiguous,
- # cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
- # so i use a selfcomposed bundlepath here
- set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform)
- message(STATUS "OSX_SYSROOT_PREFIX: " ${OSX_SYSROOT_PREFIX})
- set(OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk) # use guaranteed existing sdk
- set(CMAKE_OSX_SYSROOT ${OSX_SYSROOT_PREFIX}/${OSX_DEVELOPER_PREFIX} CACHE PATH "" FORCE)
- if(${CMAKE_GENERATOR} MATCHES "Xcode")
- # to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT
- set(CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx${OSX_SYSTEM})
- endif()
+# Older Xcode versions had different approach to the directory hiearchy.
+# Require newer Xcode which is also have better chances of being able to compile with the
+# required deployment target.
+#
+# NOTE: Xcode version 8.2 is the latest one which runs on macOS 10.11.
+if(${XCODE_VERSION} VERSION_LESS 8.2)
+ message(FATAL_ERROR "Only Xcode version 8.2 and newer is supported")
+endif()
+
+# note: xcode-select path could be ambiguous,
+# cause /Applications/Xcode.app/Contents/Developer or /Applications/Xcode.app would be allowed
+# so i use a selfcomposed bundlepath here
+set(OSX_SYSROOT_PREFIX ${XCODE_BUNDLE}/Contents/Developer/Platforms/MacOSX.platform)
+message(STATUS "OSX_SYSROOT_PREFIX: " ${OSX_SYSROOT_PREFIX})
+set(OSX_DEVELOPER_PREFIX /Developer/SDKs/MacOSX${OSX_SYSTEM}.sdk) # use guaranteed existing sdk
+set(CMAKE_OSX_SYSROOT ${OSX_SYSROOT_PREFIX}/${OSX_DEVELOPER_PREFIX} CACHE PATH "" FORCE)
+if(${CMAKE_GENERATOR} MATCHES "Xcode")
+ # to silence sdk not found warning, just overrides CMAKE_OSX_SYSROOT
+ set(CMAKE_XCODE_ATTRIBUTE_SDKROOT macosx${OSX_SYSTEM})
endif()
# 10.11 is our min. target, if you use higher sdk, weak linking happens