summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/macreplaceinstallnamesoperation.h
diff options
context:
space:
mode:
authorkh1 <karsten.heimrich@digia.com>2012-11-12 15:46:06 +0100
committerTim Jenssen <tim.jenssen@digia.com>2012-11-16 17:43:59 +0100
commit61726b95c9c83f469d8027bc191223c163cc0a24 (patch)
treea06ea5d0e65b502e412eb4e7a58ec2b35bf5d56d /src/libs/installer/macreplaceinstallnamesoperation.h
parent33591ba07a0d8b89c154ca8e807db1d058da105f (diff)
refactoring mac relocate operation used by qt patch
- improve the macreplaceinstallnamesoperation - remove unneeded macrelocateqt class and use the more generic macreplaceinstallnamesoperation Change-Id: I9d2c5bc5ea7ed56e09de8b327a9c8f9c02eb4f05 Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
Diffstat (limited to 'src/libs/installer/macreplaceinstallnamesoperation.h')
-rw-r--r--src/libs/installer/macreplaceinstallnamesoperation.h34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/libs/installer/macreplaceinstallnamesoperation.h b/src/libs/installer/macreplaceinstallnamesoperation.h
index cad556394..aeae7eefd 100644
--- a/src/libs/installer/macreplaceinstallnamesoperation.h
+++ b/src/libs/installer/macreplaceinstallnamesoperation.h
@@ -37,6 +37,24 @@
namespace QInstaller {
+struct MacBinaryInfo {
+ QString fileName;
+ QString dynamicLibId; // if that is empty, it is an executable
+ QStringList dependentDynamicLibs;
+
+ uint qHash(const MacBinaryInfo &info);
+ bool operator==(const MacBinaryInfo &rhs) const
+ {
+ return fileName == rhs.fileName;
+ }
+
+};
+
+inline uint qHash(const MacBinaryInfo &info)
+{
+ return qHash(info.fileName) ^ qHash(info.dynamicLibId);
+}
+
class INSTALLER_EXPORT MacReplaceInstallNamesOperation : public Operation
{
public:
@@ -48,20 +66,12 @@ public:
bool testOperation();
Operation *clone() const;
- bool apply(const QString &oldString, const QString &newString, const QString &frameworkDir);
- void setComponentRootPath(const QString &path);
-
private:
- void extractExecutableInfo(const QString &fileName, QString &frameworkId, QStringList &frameworks,
- QString &originalBuildDir);
- void relocateFramework(const QString &directoryName);
- void relocateBinary(const QString &fileName);
+ bool apply(const QString &searchString, const QString &replacement, const QString &searchDir);
+ QSet<MacBinaryInfo> collectPatchableBinaries(const QString &searchDir);
+ int updateExecutableInfo(MacBinaryInfo *binaryInfo);
+ void relocateBinary(const MacBinaryInfo &info, const QString &searchString, const QString &replacement);
bool execCommand(const QString &cmd, const QStringList &args);
-
-private:
- QString m_indicator;
- QString m_installationDir;
- QString m_componentRootPath;
};
} // namespace QInstaller