CQtDeployer/Deploy/configparser.h

105 lines
3.0 KiB
C
Raw Normal View History

2019-09-23 16:46:57 +03:00
//#
2019-12-08 13:57:20 +03:00
//# Copyright (C) 2018-2020 QuasarApp.
2019-09-23 16:46:57 +03:00
//# Distributed under the lgplv3 software license, see the accompanying
//# Everyone is permitted to copy and distribute verbatim copies
//# of this license document, but changing it is not allowed.
//#
2019-09-04 21:27:29 +03:00
#ifndef CQT_H
#define CQT_H
2019-12-11 18:06:54 +03:00
#include "deployconfig.h"
2019-09-15 17:38:47 +03:00
#include "distrostruct.h"
2019-09-07 12:36:20 +03:00
#include "envirement.h"
2019-09-23 10:06:22 +03:00
#include "ignorerule.h"
2019-12-08 13:57:20 +03:00
#include "targetinfo.h"
2019-09-07 12:36:20 +03:00
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-09 21:19:44 +03:00
#include "deploy_global.h"
2019-09-04 21:27:29 +03:00
2020-01-04 16:39:25 +03:00
class FileManager;
class DependenciesScanner;
class Packing;
class iDistribution;
2019-09-04 21:27:29 +03:00
2019-09-14 13:59:11 +03:00
class DEPLOYSHARED_EXPORT ConfigParser
2019-09-04 21:27:29 +03:00
{
private:
2019-09-07 12:01:20 +03:00
DeployConfig _config;
2019-09-08 13:37:33 +03:00
FileManager *_fileManager;
2019-11-13 18:18:44 +03:00
DependenciesScanner *_scaner;
2020-01-04 16:39:25 +03:00
Packing * _packing;
2019-12-10 18:43:01 +03:00
2020-01-27 20:02:25 +03:00
QHash<QString, QString> _Targetpackages;
2019-12-10 18:43:01 +03:00
2019-09-10 15:40:12 +03:00
bool createFromDeploy(const QString& file) const;
bool loadFromFile(const QString& file);
2019-12-27 20:23:55 +03:00
bool initDistroStruct();
2020-01-27 20:02:25 +03:00
bool initPackages();
2020-01-24 13:57:55 +03:00
bool parseDeployMode();
bool parseInfoMode();
bool parseInitMode();
bool parseClearMode();
2019-09-07 12:01:20 +03:00
2019-11-14 17:35:21 +03:00
QSet<QString> getQtPathesFromTargets();
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();
2019-11-02 01:00:05 +03:00
QString getPathFrmoQmakeLine(const QString& in) const;
2019-11-14 17:35:21 +03:00
bool initQmakePrivate(const QString& qmake);
bool initQmake();
2019-12-15 18:30:24 +03:00
bool initQmlInput();
2019-11-01 15:12:03 +03:00
bool setQmake(const QString &value);
bool setQtDir(const QString &value);
2019-09-07 12:01:20 +03:00
void setExtraPath(const QStringList &value);
2019-11-05 13:17:52 +03:00
void setExtraNames(const QStringList &value);
2019-09-07 12:01:20 +03:00
void setExtraPlugins(const QStringList &value);
void initEnvirement();
2019-09-04 21:27:29 +03:00
2019-09-14 15:51:23 +03:00
QStringList getDirsRecursive(const QString &path, int maxDepch = -1, int depch = 0);
2019-11-05 13:17:52 +03:00
QSet<QString> getSetDirsRecursive(const QString &path, int maxDepch = -1, int depch = 0);
2019-09-08 13:37:33 +03:00
QString getRelativeLink(const QString& from, const QString& to);
void writeKey(const QString &key, QJsonObject &, const QString &confFileDir) const;
void readKey(const QString &key, const QJsonObject &obj, const QString &confFileDir) const;
2020-03-15 12:48:38 +03:00
void readString(const QString &key, const QString &val, const QString &confFileDir) const;
2020-01-01 23:44:16 +03:00
QHash<QString, TargetInfo> createTarget(const QString &target);
QHash<QString, TargetInfo> moveTarget(TargetInfo target, const QString &newLocation);
2019-12-11 18:06:54 +03:00
QString readKeyArray(int separatorLvl, const QJsonArray &array, const QString &confFileDir) const;
QJsonValue writeKeyArray(int separatorLvl, const QString &parameter, const QString &confFileDir) const;
2019-12-18 13:49:07 +03:00
QString findWindowsPath(const QString &path) const;
2020-01-04 16:39:25 +03:00
iDistribution* getDistribution();
2020-01-28 13:51:00 +03:00
bool isNeededQt() const;
2019-09-04 21:27:29 +03:00
public:
2020-01-04 16:39:25 +03:00
ConfigParser(FileManager *filemanager, DependenciesScanner *scaner, Packing* pac);
2019-09-07 12:01:20 +03:00
bool parseParams();
bool smartMoveTargets();
2019-09-04 21:27:29 +03:00
2019-09-08 13:37:33 +03:00
const DeployConfig* config() const;
2019-09-08 19:30:01 +03:00
friend class deploytest;
2019-09-04 21:27:29 +03:00
};
#endif // CQT_H