From a2a14db86dea6033de79b561f703322bd6495c06 Mon Sep 17 00:00:00 2001 From: EndrII Date: Thu, 16 Aug 2018 19:20:04 +0300 Subject: [PATCH] fix build from pro file --- snap/snapcraft.yaml | 2 +- source/CPP/baseclass.cpp | 2 +- source/CPP/baseclass.h | 2 +- source/CPP/buildmanager.cpp | 34 +++++++++++++++++----------------- source/CPP/mainmanager.cpp | 2 +- source/CPP/mainmanager.h | 2 -- source/CPP/pluginmanager.cpp | 6 ++++-- source/CPP/qmlmanager.cpp | 2 +- source/QML/About.qml | 2 +- source/QML/PathChooser.qml | 2 +- source/QML/StartPage.qml | 10 ++++++---- 11 files changed, 34 insertions(+), 32 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index c13c892..fbd345e 100755 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,5 +1,5 @@ name: qt-deployer -version: '1.1.0' +version: '1.1.1' summary: Deploy Qt Project description: | Deploy Qt Projects. this application extract all depends library of executable and create launch script for your application. | diff --git a/source/CPP/baseclass.cpp b/source/CPP/baseclass.cpp index ea09d03..c66f956 100755 --- a/source/CPP/baseclass.cpp +++ b/source/CPP/baseclass.cpp @@ -3,7 +3,7 @@ QString BaseClass::m_qtdir = QString(); QString BaseClass::m_outputdir = QString(); -QString BaseClass::m_projectdir = QString(); +QString BaseClass::m_projectfile = QString(); QString BaseClass::m_executablepath = QString(); QString BaseClass::m_binarycreator = QString(); QString BaseClass::projectName = QString(); diff --git a/source/CPP/baseclass.h b/source/CPP/baseclass.h index 004f11e..a496afd 100755 --- a/source/CPP/baseclass.h +++ b/source/CPP/baseclass.h @@ -18,7 +18,7 @@ protected: static QString m_qtdir; static QString m_outputdir; static QString m_binarycreator; - static QString m_projectdir; + static QString m_projectfile; static QString m_executablepath; static QString projectName; static QString appIcon; diff --git a/source/CPP/buildmanager.cpp b/source/CPP/buildmanager.cpp index 7c20122..2660dc7 100644 --- a/source/CPP/buildmanager.cpp +++ b/source/CPP/buildmanager.cpp @@ -56,17 +56,14 @@ bool BuildManager::createFulder(QDir& dir, QString &path, const QString &name) c } bool BuildManager::initFolders() { - QDir dir(m_projectdir); + + QFileInfo pro(m_projectfile); + QDir dir = pro.absoluteDir(); if(!dir.cd("..")) { return false; } - QStringList filesList = findFilesInsideDir("*.pro", m_projectdir); - if(filesList.size() < 1){ - return false; - } - - QFile f(filesList.first()); + QFile f(m_projectfile); if(!f.open(QIODevice::ReadOnly | QIODevice::Text)){ return false; } @@ -76,18 +73,21 @@ bool BuildManager::initFolders() { proFile.replace(" ", ""); int tempIndex = proFile.indexOf(QRegExp("TARGET=") ); - if(tempIndex < 0){ - return false; - } - int beginTarget = tempIndex + 7; + if(tempIndex < 0) { - tempIndex = proFile.indexOf("\n", beginTarget); - int longTraget = -1; + projectName = pro.baseName(); + } else { + int beginTarget = tempIndex + 7; - if(tempIndex >= 0){ - longTraget = tempIndex - beginTarget; + tempIndex = proFile.indexOf("\n", beginTarget); + int longTraget = -1; + + if(tempIndex >= 0){ + longTraget = tempIndex - beginTarget; + } + projectName = proFile.mid(beginTarget, longTraget); } - projectName = proFile.mid(beginTarget, longTraget); + if(!createFulder(dir, tempBuildFolder, "Build-" + projectName)){ return false; @@ -113,7 +113,7 @@ bool BuildManager::build(){ pQMake.setProgram(qmake); pQMake.setWorkingDirectory(tempBuildFolder); - pQMake.setArguments(QStringList() << m_projectdir); + pQMake.setArguments(QStringList() << m_projectfile); QProcessEnvironment env = QProcessEnvironment::systemEnvironment(); env.insert("LD_LIBRARY_PATH", m_qtdir + "/lib"); diff --git a/source/CPP/mainmanager.cpp b/source/CPP/mainmanager.cpp index 08031c4..0c2c58b 100755 --- a/source/CPP/mainmanager.cpp +++ b/source/CPP/mainmanager.cpp @@ -52,7 +52,7 @@ void MainManager::prepare(const QString &qtdir, const QString &projectdir, const if (S[S.count() - 1] == '/') S.remove(S.count() - 1, 1); m_qtdir = list[0]; - m_projectdir = list[1]; + m_projectfile = list[1]; if(QFileInfo(icon).exists()){ appIcon = icon; diff --git a/source/CPP/mainmanager.h b/source/CPP/mainmanager.h index 199b392..508412a 100755 --- a/source/CPP/mainmanager.h +++ b/source/CPP/mainmanager.h @@ -15,8 +15,6 @@ class MainManager : public BaseClass Q_PROPERTY(int state READ state WRITE setState NOTIFY stateChanged) Q_PROPERTY(QString outDir READ outDir NOTIFY outDirChanged) - Q_PROPERTY(QString appVer READ appVer) - CppManager *m_cpp; QmlManager *m_qml; diff --git a/source/CPP/pluginmanager.cpp b/source/CPP/pluginmanager.cpp index d7c9976..abaa074 100755 --- a/source/CPP/pluginmanager.cpp +++ b/source/CPP/pluginmanager.cpp @@ -62,8 +62,10 @@ QStringList PluginManager::findPluginsFromModules() QStringList PluginManager::extractModules() { - QStringList proandprifiles = findFilesInsideDir("*.pro", m_projectdir); - proandprifiles << findFilesInsideDir("*.pri", m_projectdir); + QStringList proandprifiles = + findFilesInsideDir("*.pro", QFileInfo(m_projectfile).absoluteDir().path()); + proandprifiles << findFilesInsideDir("*.pri", + QFileInfo(m_projectfile).absoluteDir().path()); QStringList modules; for (const QString &file : proandprifiles) diff --git a/source/CPP/qmlmanager.cpp b/source/CPP/qmlmanager.cpp index 5a2c8d5..42924b3 100755 --- a/source/CPP/qmlmanager.cpp +++ b/source/CPP/qmlmanager.cpp @@ -119,7 +119,7 @@ void QmlManager::start() m_foundImports.clear(); m_notFoundImports.clear(); - extractImportsFromDir(m_projectdir); + extractImportsFromDir(QFileInfo(m_projectfile).absoluteDir().path()); removeInnerImports(); divideFoundAndNotFound(); diff --git a/source/QML/About.qml b/source/QML/About.qml index 95d6f13..d0a0674 100644 --- a/source/QML/About.qml +++ b/source/QML/About.qml @@ -30,7 +30,7 @@ Item { text: qsTr("This application forked by ShahriarSS Page of original soft: https://github.com/ShahriarSS/QtLinuxDeployer -version: "+MainManager.appVer+" +version: "+MainManager.appVer()+" Developers of fork: * Programmer: Yankovich Andrei. diff --git a/source/QML/PathChooser.qml b/source/QML/PathChooser.qml index 128ede1..f13849a 100755 --- a/source/QML/PathChooser.qml +++ b/source/QML/PathChooser.qml @@ -48,7 +48,7 @@ ColumnLayout { } Button { - text: "Browse" + text: qsTr("Browse") onClicked: fd.open() Material.background: buttonColor } diff --git a/source/QML/StartPage.qml b/source/QML/StartPage.qml index 4b40165..3d63793 100755 --- a/source/QML/StartPage.qml +++ b/source/QML/StartPage.qml @@ -25,8 +25,10 @@ Page { } PathChooser { - id: projectdir - title: qsTr("Project Directory") + id: projectfile + title: qsTr("Project File") + isdir: false + } PathChooser { @@ -44,10 +46,10 @@ Page { text: qsTr("Next") Material.background: buttonColor Layout.alignment: Qt.AlignRight - enabled: qtdir.confirmed && projectdir.confirmed + enabled: qtdir.confirmed && projectfile.confirmed onClicked: { - MainManager.prepare(qtdir.content, projectdir.content, icon.content) + MainManager.prepare(qtdir.content, projectfile.content, icon.content) prp.outdir = MainManager.outDir swipeview.currentIndex = 1