OSDN Git Service

Maemo: Deduce correct target file name for library template.
authorck <qt-info@nokia.com>
Wed, 5 May 2010 07:12:25 +0000 (09:12 +0200)
committerck <qt-info@nokia.com>
Wed, 5 May 2010 07:14:11 +0000 (09:14 +0200)
src/plugins/qt4projectmanager/qt-maemo/maemopackagecontents.cpp
src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.cpp
src/plugins/qt4projectmanager/qt-maemo/maemopackagecreationstep.h

index 583552a..1185eaf 100644 (file)
@@ -33,6 +33,8 @@
 #include "maemotoolchain.h"
 
 #include <qt4projectmanager/qt4buildconfiguration.h>
+#include <qt4projectmanager/qt4project.h>
+#include <qt4projectmanager/qt4target.h>
 
 #include <QtCore/QDir>
 #include <QtCore/QFileInfo>
@@ -176,8 +178,14 @@ void MaemoPackageContents::fromMap(const QVariantMap &map)
 QString MaemoPackageContents::remoteExecutableFilePath() const
 {
     if (m_remoteExecutableFilePath.isEmpty()) {
-        m_remoteExecutableFilePath = QLatin1String("/usr/local/bin/")
-                                     + m_packageStep->executableFileName();
+        const Qt4ProjectType projectType
+            = m_packageStep->qt4BuildConfiguration()->qt4Target()->qt4Project()
+              ->rootProjectNode()->projectType();
+        const QString remoteDir = projectType == LibraryTemplate
+            ? QLatin1String("/usr/local/lib/")
+            : QLatin1String("/usr/local/bin/");
+        m_remoteExecutableFilePath
+            = remoteDir + m_packageStep->executableFileName();
     }
     return m_remoteExecutableFilePath;
 }
index 47a4389..61ca0ed 100644 (file)
@@ -254,14 +254,22 @@ QString MaemoPackageCreationStep::localExecutableFilePath() const
         ->qt4Project()->rootProjectNode()->targetInformation();
     if (!ti.valid)
         return QString();
-
     return QDir::toNativeSeparators(QDir::cleanPath(ti.workingDir
-        + QLatin1Char('/') + ti.target));
+        + QLatin1Char('/') + executableFileName()));
 }
 
 QString MaemoPackageCreationStep::executableFileName() const
 {
-    return QFileInfo(localExecutableFilePath()).fileName();
+    const Qt4Project * const project
+        = qt4BuildConfiguration()->qt4Target()->qt4Project();
+    const TargetInformation &ti
+        = project->rootProjectNode()->targetInformation();
+    if (!ti.valid)
+        return QString();
+
+    return project->rootProjectNode()->projectType() == LibraryTemplate
+        ? QLatin1String("lib") + ti.target + QLatin1String(".so")
+        : ti.target;
 }
 
 const MaemoToolChain *MaemoPackageCreationStep::maemoToolChain() const
index 60f2bbc..f0945db 100644 (file)
@@ -67,6 +67,7 @@ public:
     QString localExecutableFilePath() const;
     QString executableFileName() const;
     MaemoPackageContents *packageContents() const { return m_packageContents; }
+    const Qt4BuildConfiguration *qt4BuildConfiguration() const;
 
 private:
     MaemoPackageCreationStep(ProjectExplorer::BuildConfiguration *buildConfig,
@@ -81,7 +82,6 @@ private:
 
     bool createPackage();
     bool runCommand(QProcess &proc, const QString &command);
-    const Qt4BuildConfiguration *qt4BuildConfiguration() const;
     const MaemoToolChain *maemoToolChain() const;
     QString maddeRoot() const;
     QString targetRoot() const;