Files
2026-08-25 22:12:29 -04:00

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