40 lines
1.1 KiB
C++
40 lines
1.1 KiB
C++
#ifndef CMAKEGENERATOR_H
|
|
#define CMAKEGENERATOR_H
|
|
|
|
#include <QObject>
|
|
#include <QString>
|
|
#include "projectconfig.h"
|
|
|
|
class CMakeGenerator : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit CMakeGenerator(QObject *parent = nullptr);
|
|
|
|
// 生成 CMakeLists.txt
|
|
bool generate(const ProjectConfig *config, const QString &outputPath);
|
|
|
|
// 获取最后生成的路径
|
|
QString getLastGeneratedPath() const;
|
|
|
|
signals:
|
|
void cmakeGenerated(const QString &path);
|
|
void errorOccurred(const QString &error);
|
|
|
|
private:
|
|
QString generateContent(const ProjectConfig *config);
|
|
QString generateHeader(const ProjectConfig *config);
|
|
QString generateProjectConfig(const ProjectConfig *config);
|
|
QString generateSourceFiles(const ProjectConfig *config);
|
|
QString generateIncludeDirs(const ProjectConfig *config);
|
|
QString generateLibraries(const ProjectConfig *config);
|
|
QString generateDefines(const ProjectConfig *config);
|
|
QString generateCompilerOptions(const ProjectConfig *config);
|
|
QString generateBuildTargets(const ProjectConfig *config);
|
|
|
|
QString m_lastGeneratedPath;
|
|
};
|
|
|
|
#endif // CMAKEGENERATOR_H
|