#ifndef CMAKEGENERATOR_H #define CMAKEGENERATOR_H #include #include #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