From 0127adbe2c38ab50f87376ce05cbbb1ed92c2901 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Tue, 19 Mar 2013 17:35:35 +0100 Subject: ensure that each module has a .qmake.cache when properly qmake'd this makes properly configured modules (whose top-level project file was evaluated) uniformly recognizable. Change-Id: Ib127df2becb2ff7f51ee8cc5a194ff168b41c227 Reviewed-by: Joerg Bornemann --- mkspecs/features/qt_parts.prf | 3 +++ 1 file changed, 3 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/qt_parts.prf b/mkspecs/features/qt_parts.prf index 12ba312bcd..37dc849f83 100644 --- a/mkspecs/features/qt_parts.prf +++ b/mkspecs/features/qt_parts.prf @@ -9,6 +9,9 @@ # We mean it. # +# Ensure that each module has a .qmake.cache when properly qmake'd. +cache() + load(qt_build_config) TEMPLATE = subdirs -- cgit v1.2.3 From b2d7168313a5d64ff1cf0061e94f9b2eba074af4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 3 Apr 2013 15:27:27 +0200 Subject: Load sdk.prf first, if enabled, so that other features can use QMAKE_CXX Extra-compilers such as objective_c.prf may reference QMAKE_CXX, so we need to sysroot it before it's used. Change-Id: I1e367b3d0816096300a441786619f298134de0a6 Reviewed-by: Oswald Buddenhagen --- mkspecs/features/mac/default_post.prf | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf index 714b4c7d06..437e3d93e4 100644 --- a/mkspecs/features/mac/default_post.prf +++ b/mkspecs/features/mac/default_post.prf @@ -15,3 +15,7 @@ qt:!isEmpty(QT_CONFIG) { contains(QT_CONFIG, x86_64):!contains(QT_CONFIG, x86):CONFIG += x86_64 } } + +# Ensure that we process sdk.prf first, as it will update QMAKE_CXX +# and friends that other features/extra compilers may depend on. +sdk: load(sdk) -- cgit v1.2.3 From 05b0565e97f011cd26651654c29e295183344c30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 27 Mar 2013 16:31:50 +0100 Subject: Include PRECOMPILED_DIR in dirs fixed by fixExclusiveOutputDirs() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It's written to qmodule.pri by configure with a hard-coded path, and hence need fixing up or appending, depending on which exclusive builds are used. Change-Id: I069c04438dc303868a76349c9bdd385adc074c0a Reviewed-by: Tor Arne Vestbø --- mkspecs/features/exclusive_builds.prf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/exclusive_builds.prf b/mkspecs/features/exclusive_builds.prf index adcad79fe1..c45ff22c06 100644 --- a/mkspecs/features/exclusive_builds.prf +++ b/mkspecs/features/exclusive_builds.prf @@ -6,7 +6,7 @@ defineTest(fixExclusiveOutputDirs) { count(ARGS, 2, greaterThan):isEqual($$list($$lower($$3)), false):appendFirstBuild = false else:appendFirstBuild = true - isEmpty(QMAKE_DIR_REPLACE):QMAKE_DIR_REPLACE += OBJECTS_DIR MOC_DIR RCC_DIR + isEmpty(QMAKE_DIR_REPLACE):QMAKE_DIR_REPLACE += OBJECTS_DIR MOC_DIR RCC_DIR PRECOMPILED_DIR lessThan(firstBuild, $$secondBuild):eval($${firstBuild}_and_$${secondBuild}_target:QMAKE_DIR_REPLACE += DESTDIR) else:eval($${secondBuild}_and_$${firstBuild}_target:QMAKE_DIR_REPLACE += DESTDIR) for(fix, QMAKE_DIR_REPLACE) { -- cgit v1.2.3 From 239252d91740ec78a87926698800d13b3a849c55 Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Thu, 4 Apr 2013 22:04:34 +0100 Subject: Fix pathing problem with our dx.bat Need to look in /platform-tools/lib for dx.jar Change-Id: I104cf157ce1795e907cca31b37c62163248b8d77 Reviewed-by: Eskil Abrahamsen Blomfeldt --- mkspecs/features/data/android/dx.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/data/android/dx.bat b/mkspecs/features/data/android/dx.bat index a60a1b4cbe..af143c52b5 100644 --- a/mkspecs/features/data/android/dx.bat +++ b/mkspecs/features/data/android/dx.bat @@ -41,7 +41,7 @@ set jarfile=dx.jar set "frameworkdir=%androidsdk%\platform-tools" if exist "%frameworkdir%\%jarfile%" goto JarFileOk - set "frameworkdir=%androidsdk%\lib" + set "frameworkdir=%frameworkdir%\lib" if exist "%frameworkdir%\%jarfile%" goto JarFileOk set "frameworkdir=%androidsdk%\framework" -- cgit v1.2.3 From 70420ec3e711e2efb111f56f30a59d3b08e4b2e7 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Tue, 2 Apr 2013 22:11:35 +0200 Subject: Look for cmake package dependents only in the parent directory. Fedora uses configure options to set the install prefix to a location which does not contain the cmake config files. Rather than finding dependencies from the installation prefix, find them in sibling directories instead. Change-Id: I06974e9655d0dda2a18064d0f9a33997cf2cb2d3 Reviewed-by: Stephen Kelly --- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index e5bbc97161..4d1d5febf9 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -88,7 +88,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) ${Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING} ${_Qt5$${CMAKE_MODULE_NAME}_FIND_VERSION_EXACT} ${_Qt5$${CMAKE_MODULE_NAME}_DEPENDENCIES_FIND_QUIET} ${_Qt5$${CMAKE_MODULE_NAME}_FIND_DEPENDENCIES_REQUIRED} - PATHS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}\" NO_DEFAULT_PATH + PATHS \"${CMAKE_CURRENT_LIST_DIR}/..\" NO_DEFAULT_PATH ) endif() -- cgit v1.2.3 From f8ff5263ac85bbad6d5073c12211cd089a489480 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 28 Mar 2013 13:41:30 +0100 Subject: Don't redundantly define cmake package *_VERSION variables These variables are set by the ConfigVersion.cmake file already, so no need to maintain them manually in the Config file too. Change-Id: I73d949fb22052f4f6acbc1f70518e73f8fbf7c9c Reviewed-by: Stephen Kelly --- mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index 4d1d5febf9..65ba03d44c 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -9,9 +9,7 @@ get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURREN set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\") !!ENDIF -set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MAJOR "$$eval(QT.$${MODULE}.MAJOR_VERSION)") -set(Qt5$${CMAKE_MODULE_NAME}_VERSION_MINOR "$$eval(QT.$${MODULE}.MINOR_VERSION)") -set(Qt5$${CMAKE_MODULE_NAME}_VERSION_PATCH "$$eval(QT.$${MODULE}.PATCH_VERSION)") +# For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead. set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.MAJOR_VERSION).$$eval(QT.$${MODULE}.MINOR_VERSION).$$eval(QT.$${MODULE}.PATCH_VERSION)") set(Qt5$${CMAKE_MODULE_NAME}_LIBRARIES Qt5::$${CMAKE_MODULE_NAME}) -- cgit v1.2.3 From 30d01db3a59f40af2352aeea0c4ce3cc79721975 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 27 Mar 2013 17:47:40 +0100 Subject: Test that the CMake files create appropriate version variables. Change-Id: I1d8061302fbb8494b5ae31e20a644745fe969f10 Reviewed-by: Oswald Buddenhagen Reviewed-by: Brad King Reviewed-by: Stephen Kelly --- mkspecs/features/ctest_testcase.prf | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/ctest_testcase.prf b/mkspecs/features/ctest_testcase.prf index 79adde3446..7faf738d6e 100644 --- a/mkspecs/features/ctest_testcase.prf +++ b/mkspecs/features/ctest_testcase.prf @@ -56,9 +56,27 @@ isEmpty(CMAKE_VERSION) { SET = set equals(QMAKE_DIR_SEP, "/"):SET = export + CMAKE_MODULE_VERSIONS = + CMAKE_MODULES_UNDER_TEST = + for (MODULE_UNDER_TEST, CMAKE_QT_MODULES_UNDER_TEST) { + CMAKE_NAME = $$cmakeModuleName($$MODULE_UNDER_TEST) + CMAKE_MODULE_VERSIONS += \ + -DCMAKE_$${CMAKE_NAME}_MODULE_MAJOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MAJOR_VERSION) \ + -DCMAKE_$${CMAKE_NAME}_MODULE_MINOR_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.MINOR_VERSION) \ + -DCMAKE_$${CMAKE_NAME}_MODULE_PATCH_VERSION=$$eval(QT.$${MODULE_UNDER_TEST}.PATCH_VERSION) + CMAKE_MODULES_UNDER_TEST += $$CMAKE_NAME + } + CMAKE_MODULES_UNDER_TEST = $$join(CMAKE_MODULES_UNDER_TEST, ;) + check.commands = \ $(MKDIR) $$BUILD_DIR && cd $$BUILD_DIR && $$SET VERBOSE=1 && \ - cmake $$_PRO_FILE_PWD_ $$CMAKE_GENERATOR $$CMAKE_MODULE_DEFINES -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" && \ + cmake $$_PRO_FILE_PWD_ $$CMAKE_GENERATOR \ + $$CMAKE_MODULE_DEFINES \ + -DCMAKE_BUILD_TYPE=$${CMAKE_BUILD_TYPE} \ + -DCMAKE_PREFIX_PATH=$$CMAKE_PREFIX_PATH \ + -DQt5_MODULE_TEST_DEPENDS=\"$${dependentmodules}\" \ + $${CMAKE_MODULE_VERSIONS} \ + -DCMAKE_MODULES_UNDER_TEST=\"$$CMAKE_MODULES_UNDER_TEST\" && \ $(TESTRUNNER) ctest --output-on-failure } -- cgit v1.2.3 From 3d0a60aaa4077a897d02ca5f3c0cc2d7da1007c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Wed, 3 Apr 2013 15:05:06 +0200 Subject: Enable C++11 on OSX when using Clang MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This means we have to bump the deployment target to Lion (10.7), as the LLVM 'libc++' C++ standard library does not support Snow Leopard (10.6). For iOS the deployment target has to be bumped from 4.3 to 5.0, but we don't enable C++11 by default yet as it's not tested enough on iOS. Users who wish to deploy to 10.6 need to build their own Qt, passing -no-c++11 to configure. Change-Id: I7b5d20ab002db889d1091a4b7ff600f62caa7f06 Reviewed-by: Morten Johan Sørvig --- mkspecs/common/clang-mac.conf | 3 +++ mkspecs/features/c++11.prf | 7 +++++++ mkspecs/features/mac/sdk.prf | 3 +++ 3 files changed, 13 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/common/clang-mac.conf b/mkspecs/common/clang-mac.conf index efe771d24d..3280274f36 100644 --- a/mkspecs/common/clang-mac.conf +++ b/mkspecs/common/clang-mac.conf @@ -5,3 +5,6 @@ QMAKE_OBJCXXFLAGS_PRECOMPILE = -x objective-c++-header -c ${QMAKE_PCH_INPUT} QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE QMAKE_XCODE_GCC_VERSION = com.apple.compilers.llvm.clang.1_0 + +QMAKE_CXXFLAGS_CXX11 += -stdlib=libc++ +QMAKE_LFLAGS_CXX11 += -stdlib=libc++ diff --git a/mkspecs/features/c++11.prf b/mkspecs/features/c++11.prf index 4b56fa9fd2..32eaca4a9b 100644 --- a/mkspecs/features/c++11.prf +++ b/mkspecs/features/c++11.prf @@ -1,3 +1,10 @@ QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11 QMAKE_OBJECTIVE_CFLAGS += $$QMAKE_CXXFLAGS_CXX11 QMAKE_LFLAGS += $$QMAKE_LFLAGS_CXX11 + +contains(QMAKE_LFLAGS, -stdlib=libc++) { + equals(QMAKE_MACOSX_DEPLOYMENT_TARGET, 10.6): \ + QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.7 + contains(QMAKE_IOS_DEPLOYMENT_TARGET, ^4.*): \ + QMAKE_IOS_DEPLOYMENT_TARGET = 5.0 +} diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index eaa3108a8b..10d94bed11 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -40,6 +40,9 @@ isEmpty(QMAKE_MAC_PLATFORM_NAME): error("Could not resolve platform name for SDK # FIXME: Get the version_min_flag out of the platform's 'Native Build System.xcspec' version_identifier = $$replace(QMAKE_MAC_PLATFORM_NAME, iphonesimulator, ios-simulator) + # C++11 support may affect the deployment target + c++11: load(c++11) + ios:!host_build: \ deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET else: \ -- cgit v1.2.3 From e6bade8f87f849c4c155d5f527c94ada596cf193 Mon Sep 17 00:00:00 2001 From: Volker Krause Date: Mon, 8 Apr 2013 13:44:21 +0200 Subject: mkspecs are installed to QT_HOST_DATA instead of QT_INSTALL_ARCHDATA. These are the same for normal builds, but differ when cross-compiling Qt. Change-Id: I75eccc6f4b67b440a08c4aba41aabb7df686c9f9 Reviewed-by: Stephen Kelly --- mkspecs/features/create_cmake.prf | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf index 9aef37472f..cf0acaf4b7 100644 --- a/mkspecs/features/create_cmake.prf +++ b/mkspecs/features/create_cmake.prf @@ -55,10 +55,10 @@ CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX]) CMAKE_BIN_DIR_IS_ABSOLUTE = True } -CMAKE_ARCHDATA_DIR = $$cmakeRelativePath($$[QT_INSTALL_ARCHDATA], $$[QT_INSTALL_PREFIX]) -!isEmpty(CMAKE_FORCE_ABSOLUTE_PATHS)|contains(CMAKE_ARCHDATA_DIR, "^\\.\\./.*") { # For the mkspecs - CMAKE_ARCHDATA_DIR = $$[QT_INSTALL_ARCHDATA]/ - CMAKE_ARCHDATA_DIR_IS_ABSOLUTE = True +CMAKE_HOST_DATA_DIR = $$cmakeRelativePath($$[QT_HOST_DATA], $$[QT_INSTALL_PREFIX]) +!isEmpty(CMAKE_FORCE_ABSOLUTE_PATHS)|contains(CMAKE_HOST_DATA_DIR, "^\\.\\./.*") { + CMAKE_HOST_DATA_DIR = $$[QT_HOST_DATA]/ + CMAKE_HOST_DATA_DIR_IS_ABSOLUTE = True } static|staticlib:CMAKE_STATIC_TYPE = true -- cgit v1.2.3 From ced5e2f0e8353a9caa8fbbaaa82d15f7eba3d159 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 8 Apr 2013 12:17:27 +0200 Subject: Handle errors when sysrooting tools on Mac xcrun will spit out errors to stderr and nothing to stdout if it fails to find the tool in question. By checking for an empty return value and skipping the sysrooting we guard against mangling the tool variable. Change-Id: I68f59a6c8116696dd75cceed7b33ac666f3468b2 Reviewed-by: Eike Ziller Reviewed-by: Oswald Buddenhagen --- mkspecs/features/mac/sdk.prf | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'mkspecs') diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index 10d94bed11..db33291b99 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -24,7 +24,9 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ value = $$eval($$tool) isEmpty(value): next() - sysrooted = $$system("xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value)") + sysrooted = $$system("xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null") + isEmpty(sysrooted): next() + $$tool = $$sysrooted $$member(value, 1, -1) } -- cgit v1.2.3 From 4f002f325614ef2c5f893c6fffffd76ec4796bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 8 Apr 2013 16:34:33 +0200 Subject: Use absolute paths for Xcode helpers such as xcodebuild/xcrun/xcode-select We always use the xcodebuild/xcrun/xcode-select binaries in /usr/bin, as these will dispatch to the right binary based on what Xcode version has been chosen using xcode-select -switch. This fixes an issue where a tool was in the path from another Xcode installation. We can rely on the tools as they are present on a clean Mac OS install. Change-Id: I1d3cc1e92604f9be6d6f14639cb6322234edd696 Reviewed-by: Oswald Buddenhagen --- mkspecs/common/xcode.conf | 4 ++-- mkspecs/features/mac/sdk.prf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/common/xcode.conf b/mkspecs/common/xcode.conf index 9da6406f7f..0095469421 100644 --- a/mkspecs/common/xcode.conf +++ b/mkspecs/common/xcode.conf @@ -3,7 +3,7 @@ # # Get path of Xcode's Developer directory -QMAKE_XCODE_DEVELOPER_PATH = $$system("xcode-select --print-path") +QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path") isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \ error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.") @@ -12,6 +12,6 @@ isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \ error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.") # Extract Xcode version using xcodebuild -xcode_version = $$system("xcodebuild -version") +xcode_version = $$system("/usr/bin/xcodebuild -version") QMAKE_XCODE_VERSION = $$member(xcode_version, 1) unset(xcode_version) diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf index db33291b99..ece0e27536 100644 --- a/mkspecs/features/mac/sdk.prf +++ b/mkspecs/features/mac/sdk.prf @@ -5,7 +5,7 @@ isEmpty(QMAKE_MAC_SDK): \ contains(QMAKE_MAC_SDK, .*/.*): \ error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)") -QMAKE_MAC_SDK_PATH = $$system("xcodebuild -sdk $$QMAKE_MAC_SDK -version Path 2>/dev/null") +QMAKE_MAC_SDK_PATH = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version Path 2>/dev/null") isEmpty(QMAKE_MAC_SDK_PATH): error("Could not resolve SDK path for \'$$QMAKE_MAC_SDK\'") !equals(MAKEFILE_GENERATOR, XCODE) { @@ -24,7 +24,7 @@ for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_ value = $$eval($$tool) isEmpty(value): next() - sysrooted = $$system("xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null") + sysrooted = $$system("/usr/bin/xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null") isEmpty(sysrooted): next() $$tool = $$sysrooted $$member(value, 1, -1) -- cgit v1.2.3 From f73a7ca46cb15d77608a4995921b4d501c21bdee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= Date: Mon, 8 Apr 2013 16:41:27 +0200 Subject: Verify Xcode installation more thoroughly before relying on it We depend on Xcode for building Qt itself and user application on Mac OS. The user may have an Xcode install that is not set up properly, in which case we would fail compilation in mysterious ways. Instead we try to detect misconfigured or missing Xcode installs as early as possible. We try to detect if an Xcode install has not been chosen yet, and if the user has not accepted the Xcode license agreement. We need to do these checks both in configure, as early as possible, and in mkspecs on Mac OS, as we need to error out if the user tries to build an app with the Qt SDK, but with a broken Xcode install. Change-Id: I4e3a11077a61dc5d4ee2c686d01044a9bb2c1c79 Reviewed-by: Oswald Buddenhagen --- mkspecs/common/mac.conf | 3 +++ mkspecs/common/xcode.conf | 6 +++++- mkspecs/unsupported/macx-ios-clang/qmake.conf | 5 ++--- 3 files changed, 10 insertions(+), 4 deletions(-) (limited to 'mkspecs') diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf index cf54f3f580..f31db3bb4b 100644 --- a/mkspecs/common/mac.conf +++ b/mkspecs/common/mac.conf @@ -26,4 +26,7 @@ QMAKE_LIBS_THREAD = QMAKE_AR = ar cq QMAKE_RANLIB = ranlib -s +# We rely on Xcode to build +include(xcode.conf) + include(unix.conf) diff --git a/mkspecs/common/xcode.conf b/mkspecs/common/xcode.conf index 0095469421..b15266b678 100644 --- a/mkspecs/common/xcode.conf +++ b/mkspecs/common/xcode.conf @@ -3,7 +3,7 @@ # # Get path of Xcode's Developer directory -QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path") +QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path 2>/dev/null") isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \ error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.") @@ -11,6 +11,10 @@ isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \ !exists($$QMAKE_XCODE_DEVELOPER_PATH): \ error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.") +# Make sure Xcode is set up properly +isEmpty($$list($$system("/usr/bin/xcrun -find xcrun 2>/dev/null"))): \ + error("Xcode not set up properly. You may need to confirm the license agreement by running /usr/bin/xcodebuild.") + # Extract Xcode version using xcodebuild xcode_version = $$system("/usr/bin/xcodebuild -version") QMAKE_XCODE_VERSION = $$member(xcode_version, 1) diff --git a/mkspecs/unsupported/macx-ios-clang/qmake.conf b/mkspecs/unsupported/macx-ios-clang/qmake.conf index 32d10a06ed..833e22e3bd 100644 --- a/mkspecs/unsupported/macx-ios-clang/qmake.conf +++ b/mkspecs/unsupported/macx-ios-clang/qmake.conf @@ -15,9 +15,6 @@ DEFINES += DARWIN_NO_CARBON QT_NO_CORESERVICES QT_NO_PRINTER QT_N # Universal target (iPhone and iPad) QMAKE_IOS_TARGETED_DEVICE_FAMILY = 1,2 -include(../../common/xcode.conf) -lessThan(QMAKE_XCODE_VERSION, "4.3"): error("This mkspec requires Xcode 4.3 or later") - include(../../common/ios.conf) include(../../common/gcc-base-mac.conf) include(../../common/clang.conf) @@ -25,4 +22,6 @@ include(../../common/clang-mac.conf) include(../../common/ios/clang.conf) include(../../common/ios/qmake.conf) +lessThan(QMAKE_XCODE_VERSION, "4.3"): error("This mkspec requires Xcode 4.3 or later") + load(qt_config) -- cgit v1.2.3 From 54d25d53fefff5425ff5bd9acd6e2f9b3d93c4df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= Date: Tue, 9 Apr 2013 07:52:58 +0200 Subject: Add keys required for ad-hoc distribution. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I3e52cc0105e8d9d5a38e59b1f6e1071fe302f61c Reviewed-by: Tor Arne Vestbø --- mkspecs/unsupported/macx-ios-clang/Info.plist.app | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'mkspecs') diff --git a/mkspecs/unsupported/macx-ios-clang/Info.plist.app b/mkspecs/unsupported/macx-ios-clang/Info.plist.app index bcf7f41f27..c7d660b8d1 100755 --- a/mkspecs/unsupported/macx-ios-clang/Info.plist.app +++ b/mkspecs/unsupported/macx-ios-clang/Info.plist.app @@ -14,6 +14,14 @@ @EXECUTABLE@ CFBundleIdentifier com.yourcompany.@BUNDLEIDENTIFIER@ + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleName + ${PRODUCT_NAME} + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 NOTE This file was generated by Qt/QMake. -- cgit v1.2.3