Merge pull request #30404 from j-hao/master

qt5: fix Darwin build for 5.9.2

authored by Daiderd Jordan and committed by GitHub 215f2cac 6c43d2a9

+44 -27
+3 -1
pkgs/development/libraries/qt-5/5.9/qtbase/default.nix
··· 86 86 '' 87 87 substituteInPlace configure --replace /bin/pwd pwd 88 88 substituteInPlace src/corelib/global/global.pri --replace /bin/ls ${coreutils}/bin/ls 89 - sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i config.tests/*/*.test -i mkspecs/*/*.conf 89 + sed -e 's@/\(usr\|opt\)/@/var/empty/@g' -i mkspecs/*/*.conf 90 90 91 91 sed -i '/PATHS.*NO_DEFAULT_PATH/ d' src/corelib/Qt5Config.cmake.in 92 92 sed -i '/PATHS.*NO_DEFAULT_PATH/ d' src/corelib/Qt5CoreMacros.cmake ··· 105 105 -e 's|! /usr/bin/xcode-select --print-path >/dev/null 2>&1;|false;|' \ 106 106 -e 's|! /usr/bin/xcrun -find xcodebuild >/dev/null 2>&1;|false;|' \ 107 107 -e 's|sysroot=$(/usr/bin/xcodebuild -sdk $sdk -version Path 2>/dev/null)|sysroot=/nonsense|' \ 108 + -e 's|sysroot=$(/usr/bin/xcrun --sdk $sdk --show-sdk-path 2>/dev/null)|sysroot=/nonsense|' \ 108 109 -e 's|QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`|QMAKE_CXX="clang++"\nQMAKE_CONF_COMPILER="clang++"|' \ 109 110 -e 's|XCRUN=`/usr/bin/xcrun -sdk macosx clang -v 2>&1`|XCRUN="clang -v 2>&1"|' \ 110 111 -e 's#sdk_val=$(/usr/bin/xcrun -sdk $sdk -find $(echo $val | cut -d \x27 \x27 -f 1))##' \ ··· 155 156 156 157 ++ lib.optionals stdenv.isDarwin 157 158 [ 159 + "-Wno-missing-sysroot" 158 160 "-D__MAC_OS_X_VERSION_MAX_ALLOWED=1090" 159 161 "-D__AVAILABILITY_INTERNAL__MAC_10_10=__attribute__((availability(macosx,introduced=10.10)))" 160 162 # Note that nixpkgs's objc4 is from macOS 10.11 while the SDK is
+39 -25
pkgs/development/libraries/qt-5/5.9/qtbase/mkspecs-features-mac.patch
··· 1 - diff -u qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_post.prf qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_post.prf 2 - --- qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_post.prf 2017-09-16 16:40:30.000000000 +0800 3 - +++ qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_post.prf 2017-09-16 16:41:03.000000000 +0800 4 - @@ -24,165 +24,3 @@ 1 + diff -u -r qtbase-opensource-src-5.9.2.orig/mkspecs/features/mac/default_post.prf qtbase-opensource-src-5.9.2/mkspecs/features/mac/default_post.prf 2 + --- qtbase-opensource-src-5.9.2.orig/mkspecs/features/mac/default_post.prf 2017-10-14 12:31:04.000000000 +0800 3 + +++ qtbase-opensource-src-5.9.2/mkspecs/features/mac/default_post.prf 2017-10-14 12:42:02.000000000 +0800 4 + @@ -24,166 +24,3 @@ 5 5 } 6 6 } 7 7 } ··· 164 164 -} 165 165 - 166 166 -cache(QMAKE_XCODE_DEVELOPER_PATH, stash) 167 - -cache(QMAKE_XCODE_VERSION, stash) 167 + -!isEmpty(QMAKE_XCODE_VERSION): \ 168 + - cache(QMAKE_XCODE_VERSION, stash) 168 169 - 169 170 -QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix() 170 - diff -u qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_pre.prf qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_pre.prf 171 - --- qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/default_pre.prf 2017-09-16 16:40:30.000000000 +0800 172 - +++ qtbase-opensource-src-5.9.1/mkspecs/features/mac/default_pre.prf 2017-09-16 16:40:45.000000000 +0800 173 - @@ -1,51 +1,2 @@ 171 + diff -u -r qtbase-opensource-src-5.9.2.orig/mkspecs/features/mac/default_pre.prf qtbase-opensource-src-5.9.2/mkspecs/features/mac/default_pre.prf 172 + --- qtbase-opensource-src-5.9.2.orig/mkspecs/features/mac/default_pre.prf 2017-10-14 12:31:04.000000000 +0800 173 + +++ qtbase-opensource-src-5.9.2/mkspecs/features/mac/default_pre.prf 2017-10-14 12:42:02.000000000 +0800 174 + @@ -1,56 +1,2 @@ 174 175 CONFIG = asset_catalogs rez $$CONFIG 175 176 load(default_pre) 176 177 - ··· 183 184 - # Make sure Xcode path is valid 184 185 - !exists($$QMAKE_XCODE_DEVELOPER_PATH): \ 185 186 - error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.") 187 + -} 186 188 - 189 + -isEmpty(QMAKE_XCODEBUILD_PATH): \ 190 + - QMAKE_XCODEBUILD_PATH = $$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null") 191 + - 192 + -!isEmpty(QMAKE_XCODEBUILD_PATH) { 187 193 - # Make sure Xcode is set up properly 188 - - isEmpty($$list($$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null"))): \ 189 - - error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.") 190 - -} 194 + - !system("/usr/bin/xcrun xcodebuild -license check 2>/dev/null"): \ 195 + - error("Xcode not set up properly. You need to confirm the license agreement by running 'sudo xcrun xcodebuild -license accept'.") 191 196 - 192 - -isEmpty(QMAKE_XCODE_VERSION) { 193 - - # Extract Xcode version using xcodebuild 194 - - xcode_version = $$system("/usr/bin/xcodebuild -version") 195 - - QMAKE_XCODE_VERSION = $$member(xcode_version, 1) 196 - - isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.") 197 - - unset(xcode_version) 197 + - isEmpty(QMAKE_XCODE_VERSION) { 198 + - # Extract Xcode version using xcodebuild 199 + - xcode_version = $$system("/usr/bin/xcrun xcodebuild -version") 200 + - QMAKE_XCODE_VERSION = $$member(xcode_version, 1) 201 + - isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.") 202 + - unset(xcode_version) 203 + - } 198 204 -} 199 205 - 200 206 -isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) { ··· 222 228 -# feature, which allows Xcode to choose the Qt libraries to link to 223 229 -# at build time, depending on the current Xcode SDK and configuration. 224 230 -QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX 225 - diff -u qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/sdk.prf qtbase-opensource-src-5.9.1/mkspecs/features/mac/sdk.prf 226 - --- qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/sdk.prf 2017-09-16 16:40:30.000000000 +0800 227 - +++ qtbase-opensource-src-5.9.1/mkspecs/features/mac/sdk.prf 2017-09-16 16:41:16.000000000 +0800 228 - @@ -1,49 +0,0 @@ 231 + diff -u -r qtbase-opensource-src-5.9.2.orig/mkspecs/features/mac/sdk.prf qtbase-opensource-src-5.9.2/mkspecs/features/mac/sdk.prf 232 + --- qtbase-opensource-src-5.9.2.orig/mkspecs/features/mac/sdk.prf 2017-10-14 12:31:04.000000000 +0800 233 + +++ qtbase-opensource-src-5.9.2/mkspecs/features/mac/sdk.prf 2017-10-14 12:42:10.000000000 +0800 234 + @@ -1,58 +0,0 @@ 229 235 - 230 236 -isEmpty(QMAKE_MAC_SDK): \ 231 237 - error("QMAKE_MAC_SDK must be set when using CONFIG += sdk.") ··· 235 241 - 236 242 -defineReplace(xcodeSDKInfo) { 237 243 - info = $$1 244 + - equals(info, "Path"): \ 245 + - info = --show-sdk-path 246 + - equals(info, "PlatformPath"): \ 247 + - info = --show-sdk-platform-path 248 + - equals(info, "SDKVersion"): \ 249 + - info = --show-sdk-version 238 250 - sdk = $$2 239 251 - isEmpty(sdk): \ 240 252 - sdk = $$QMAKE_MAC_SDK 241 253 - 242 254 - isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}) { 243 - - QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcodebuild -sdk $$sdk -version $$info 2>/dev/null") 244 - - isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}): error("Could not resolve SDK $$info for \'$$sdk\'") 255 + - QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcrun --sdk $$sdk $$info 2>/dev/null") 256 + - # --show-sdk-platform-path won't work for Command Line Tools; this is fine 257 + - # only used by the XCTest backend to testlib 258 + - isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}):if(!isEmpty(QMAKE_XCODEBUILD_PATH)|!equals(info, "--show-sdk-platform-path")): \ 259 + - error("Could not resolve SDK $$info for \'$$sdk\'") 245 260 - cache(QMAKE_MAC_SDK.$${sdk}.$${info}, set stash, QMAKE_MAC_SDK.$${sdk}.$${info}) 246 261 - } 247 262 - ··· 275 290 - $$tool = $$sysrooted $$member(value, 1, -1) 276 291 - cache($$tool_variable, set stash, $$tool) 277 292 -} 278 - Common subdirectories: qtbase-opensource-src-5.9.1.orig/mkspecs/features/mac/unsupported and qtbase-opensource-src-5.9.1/mkspecs/features/mac/unsupported
+2 -1
pkgs/development/libraries/qt-5/qtbase-setup-hook-darwin.sh
··· 182 182 find "${!outputLib}" -name "*.cmake" | while read file; do 183 183 substituteInPlace "$file" \ 184 184 --subst-var-by NIX_OUT "${!outputLib}" \ 185 - --subst-var-by NIX_DEV "${!outputDev}" 185 + --subst-var-by NIX_DEV "${!outputDev}" \ 186 + --subst-var-by NIX_BIN "${!outputBin}" 186 187 done 187 188 } 188 189