Ios: Move tools to <libexec>/ios, make them lowercase, fix deployment

They can't be directly in libexec path, because then they couldn't have
their own qt.conf for resolving the Cocoa platform plugin.

Change-Id: I8f3fae85c548747a7d826c078c7ac1fb0a836b43
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
This commit is contained in:
Eike Ziller
2013-10-02 16:09:23 +02:00
parent 810274d038
commit c05e9d52b2
12 changed files with 39 additions and 16 deletions

5
dist/installer/mac/ios_qt.conf vendored Normal file
View File

@@ -0,0 +1,5 @@
[Paths]
# prefix must be one up because Qt makes it relative to the app's Contents/ path,
# even if that doesn't exist!
Prefix = ..
Plugins = ../../PlugIns

View File

@@ -41,10 +41,16 @@ fi
macdeployqt "$1" \ macdeployqt "$1" \
"-executable=$1/Contents/Resources/qtpromaker" \ "-executable=$1/Contents/Resources/qtpromaker" \
"-executable=$1/Contents/Resources/sdktool" "$qmlpuppetArgument" "$qml2puppetArgument" || exit 1 "-executable=$1/Contents/Resources/sdktool" \
"-executable=$1/Contents/Resources/ios/iostool" \
"-executable=$1/Contents/Resources/ios/iossim" \
"$qmlpuppetArgument" "$qml2puppetArgument" || exit 1
# copy qt creator qt.conf # copy qt creator qt.conf
cp -f "$(dirname "${BASH_SOURCE[0]}")/../dist/installer/mac/qt.conf" "$1/Contents/Resources/qt.conf" || exit 1 cp -f "$(dirname "${BASH_SOURCE[0]}")/../dist/installer/mac/qt.conf" "$1/Contents/Resources/qt.conf" || exit 1
# copy ios tools' qt.conf
cp -f "$(dirname "${BASH_SOURCE[0]}")/../dist/installer/mac/ios_qt.conf" "$1/Contents/Resources/ios/qt.conf" || exit 1
# copy Qt translations # copy Qt translations
cp "$2"/*.qm "$1/Contents/Resources/translations/" || exit 1 cp "$2"/*.qm "$1/Contents/Resources/translations/" || exit 1

View File

@@ -392,6 +392,17 @@ QString ICore::documentationPath()
return QDir::cleanPath(QCoreApplication::applicationDirPath() + docPath); return QDir::cleanPath(QCoreApplication::applicationDirPath() + docPath);
} }
/*!
Returns the path to the command line tools that are shipped with \QC (corresponding
to the IDE_LIBEXEC_PATH qmake variable).
*/
QString ICore::libexecPath()
{
const QString libexecPath = QLatin1String(Utils::HostOsInfo::isMacHost()
? "/../Resources" : "");
return QDir::cleanPath(QCoreApplication::applicationDirPath() + libexecPath);
}
static QString compilerString() static QString compilerString()
{ {
#if defined(Q_CC_CLANG) // must be before GNU, because clang claims to be GNU too #if defined(Q_CC_CLANG) // must be before GNU, because clang claims to be GNU too

View File

@@ -88,6 +88,7 @@ public:
static QString resourcePath(); static QString resourcePath();
static QString userResourcePath(); static QString userResourcePath();
static QString documentationPath(); static QString documentationPath();
static QString libexecPath();
static QString versionString(); static QString versionString();
static QString buildCompatibilityString(); static QString buildCompatibilityString();

View File

@@ -103,14 +103,6 @@ void IosConfigurations::setConfig(const IosConfig &devConfigs)
emit updated(); emit updated();
} }
FileName IosConfigurations::iosToolPath() const
{
FileName res = FileName::fromString(QCoreApplication::applicationDirPath()
+ QLatin1String("/iosTool"));
return res;
}
bool equalKits(Kit *a, Kit *b) bool equalKits(Kit *a, Kit *b)
{ {
return ToolChainKitInformation::toolChain(a) == ToolChainKitInformation::toolChain(b) return ToolChainKitInformation::toolChain(a) == ToolChainKitInformation::toolChain(b)

View File

@@ -64,7 +64,6 @@ public:
static IosConfigurations &instance(); static IosConfigurations &instance();
IosConfig config() const { return m_config; } IosConfig config() const { return m_config; }
void setConfig(const IosConfig &config); void setConfig(const IosConfig &config);
Utils::FileName iosToolPath() const;
QStringList sdkTargets(); QStringList sdkTargets();
void updateSimulators(); void updateSimulators();

View File

@@ -30,6 +30,7 @@
#include "iostoolhandler.h" #include "iostoolhandler.h"
#include "iosconfigurations.h" #include "iosconfigurations.h"
#include <coreplugin/icore.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
#include <utils/fileutils.h> #include <utils/fileutils.h>
@@ -924,13 +925,13 @@ void IosSimulatorToolHandlerPrivate::addDeviceArguments(QStringList &args) const
QString IosToolHandler::iosDeviceToolPath() QString IosToolHandler::iosDeviceToolPath()
{ {
QString res = QCoreApplication::applicationDirPath() + QLatin1String("/iosTool"); QString res = Core::ICore::libexecPath() + QLatin1String("/ios/iostool");
return res; return res;
} }
QString IosToolHandler::iosSimulatorToolPath() QString IosToolHandler::iosSimulatorToolPath()
{ {
QString res = QCoreApplication::applicationDirPath() + QLatin1String("/iossim"); QString res = Core::ICore::libexecPath() + QLatin1String("/ios/iossim");
return res; return res;
} }

View File

@@ -34,7 +34,8 @@ iPhoneSimulatorRemoteClientDirectLinking {
TEMPLATE = app TEMPLATE = app
DESTDIR = $$IDE_BIN_PATH # put into a subdir, so we can deploy a separate qt.conf for it
DESTDIR = $$IDE_LIBEXEC_PATH/ios
include(../../../rpath.pri) include(../../../rpath.pri)
OBJECTIVE_SOURCES += \ OBJECTIVE_SOURCES += \

View File

@@ -24,4 +24,6 @@ QtcTool {
"-fobjc-link-runtime"]) "-fobjc-link-runtime"])
cpp.frameworks: base.concat(["Foundation", "CoreServices", "ApplicationServices", "IOKit"]) cpp.frameworks: base.concat(["Foundation", "CoreServices", "ApplicationServices", "IOKit"])
cpp.frameworkPaths: base.concat("/System/Library/PrivateFrameworks") cpp.frameworkPaths: base.concat("/System/Library/PrivateFrameworks")
toolInstallDir: project.ide_libexec_path + "/ios"
} }

View File

@@ -9,9 +9,11 @@ Application {
return ["-Wl,-s"] return ["-Wl,-s"]
} }
property string toolInstallDir: project.ide_libexec_path
Group { Group {
fileTagsFilter: product.type fileTagsFilter: product.type
qbs.install: true qbs.install: true
qbs.installDir: project.ide_libexec_path qbs.installDir: toolInstallDir
} }
} }

View File

@@ -1,4 +1,4 @@
TARGET = iosTool TARGET = iostool
QT += core QT += core
QT += gui xml QT += gui xml
@@ -17,7 +17,8 @@ TEMPLATE = app
include(../../../qtcreator.pri) include(../../../qtcreator.pri)
DESTDIR = $$IDE_BIN_PATH # put into a subdir, so we can deploy a separate qt.conf for it
DESTDIR = $$IDE_LIBEXEC_PATH/ios
include(../../rpath.pri) include(../../rpath.pri)
SOURCES += main.cpp \ SOURCES += main.cpp \

View File

@@ -18,4 +18,6 @@ QtcTool {
cpp.frameworks: base.concat(["CoreFoundation", "CoreServices", "IOKit", "Security", cpp.frameworks: base.concat(["CoreFoundation", "CoreServices", "IOKit", "Security",
"SystemConfiguration"]) "SystemConfiguration"])
cpp.libraries: base.concat(["ssl", "bz2"]) cpp.libraries: base.concat(["ssl", "bz2"])
toolInstallDir: project.ide_libexec_path + "/ios"
} }