83 lines
1.8 KiB
C
Raw Normal View History

2019-09-04 21:27:29 +03:00
#ifndef CQT_H
#define CQT_H
2019-09-07 12:36:20 +03:00
#include "envirement.h"
2019-09-04 21:27:29 +03:00
#include <QJsonObject>
#include <QJsonDocument>
#include <QJsonArray>
2019-09-07 12:01:20 +03:00
#include <QStringList>
#include <QMap>
#include <QDir>
2019-09-04 21:27:29 +03:00
2019-09-08 13:37:33 +03:00
class FileManager;
2019-09-04 21:27:29 +03:00
2019-09-07 12:01:20 +03:00
struct DeployConfig {
QString qmake = "";
QString targetDir = "";
QString qmlDir = "";
QString translationDir = "";
QString externQmlScaner = "";
int depchLimit = 0;
bool deployQml = false;
QStringList ignoreList;
QStringList extraPlugins;
QString appDir;
QString qtDir;
QStringList extraPaths;
/**
* @brief targets
* key - path
* value - create wrapper
*/
QMap<QString, bool> targets;
2019-09-07 12:36:20 +03:00
Envirement envirement;
2019-09-07 12:01:20 +03:00
};
2019-09-04 21:27:29 +03:00
/**
* @brief The CQT class - it is wrapper for cqt file. qcn it is configuration file of deploying project.
*/
class CQT
{
private:
2019-09-07 12:01:20 +03:00
DeployConfig _config;
2019-09-08 13:37:33 +03:00
FileManager *_fileManager;
2019-09-04 21:27:29 +03:00
bool createFromDeploy() const;
bool loadFromFile();
2019-09-07 12:01:20 +03:00
bool parseQtDeployMode();
bool parseQtInfoMode();
bool parseQtClearMode();
2019-09-07 12:36:20 +03:00
void setTargetDir(const QString &target = "");
2019-09-07 12:01:20 +03:00
bool setTargets(const QStringList &value);
bool setTargetsRecursive(const QString &dir);
2019-09-07 12:36:20 +03:00
bool setBinDir(const QString &dir, bool recursive = false);
2019-09-07 12:01:20 +03:00
void initIgnoreList();
void initIgnoreEnvList();
void setQmlScaner(const QString &value);
void setQmake(const QString &value);
void setQtDir(const QString &value);
void setExtraPath(const QStringList &value);
void setExtraPlugins(const QStringList &value);
QString recursiveInvairement(int depch, QDir &dir);
void initEnvirement();
2019-09-04 21:27:29 +03:00
2019-09-07 12:01:20 +03:00
QStringList getDirsRecursive(const QString &path);
2019-09-08 13:37:33 +03:00
bool smartMoveTargets();
2019-09-04 21:27:29 +03:00
public:
2019-09-08 13:37:33 +03:00
CQT(FileManager *filemanager);
2019-09-07 12:01:20 +03:00
bool parseParams();
2019-09-04 21:27:29 +03:00
2019-09-08 13:37:33 +03:00
const DeployConfig* config() const;
2019-09-04 21:27:29 +03:00
};
#endif // CQT_H