diff --git a/Telegram/SourceFiles/codegen/common/cpp_file.cpp b/Telegram/SourceFiles/codegen/common/cpp_file.cpp index b5f8ff386..1b3bb499c 100644 --- a/Telegram/SourceFiles/codegen/common/cpp_file.cpp +++ b/Telegram/SourceFiles/codegen/common/cpp_file.cpp @@ -74,8 +74,11 @@ CppFile::CppFile(const QString &path, const ProjectInfo &project) } } -CppFile &CppFile::include(const QString &header) { - stream() << "#include \"" << header << "\""; +CppFile &CppFile::include(const QString &header, bool global ) { + if (global) + stream() << QString("#include <%1>").arg(header); + else + stream() << QString("#include \"%1\"").arg(header); return newline(); } @@ -129,4 +132,4 @@ bool CppFile::finalize() { } } // namespace common -} // namespace codegen \ No newline at end of file +} // namespace codegen diff --git a/Telegram/SourceFiles/codegen/common/cpp_file.h b/Telegram/SourceFiles/codegen/common/cpp_file.h index 0d90ba463..283bbb42a 100644 --- a/Telegram/SourceFiles/codegen/common/cpp_file.h +++ b/Telegram/SourceFiles/codegen/common/cpp_file.h @@ -48,7 +48,7 @@ public: stream() << "\n"; return *this; } - CppFile &include(const QString &header); + CppFile &include(const QString &header, bool global = false); // Empty name adds anonymous namespace. CppFile &pushNamespace(const QString &name = QString()); diff --git a/Telegram/SourceFiles/codegen/emoji/generator.cpp b/Telegram/SourceFiles/codegen/emoji/generator.cpp index 8ad15093a..bd530ebf3 100644 --- a/Telegram/SourceFiles/codegen/emoji/generator.cpp +++ b/Telegram/SourceFiles/codegen/emoji/generator.cpp @@ -318,6 +318,7 @@ bool Generator::writeImages() { bool Generator::writeSource() { source_ = std::make_unique(outputPath_ + ".cpp", project_); + source_->include("ui/emoji_config.h").newline(); source_->include("emoji_suggestions_data.h").newline(); source_->pushNamespace("Ui").pushNamespace("Emoji").pushNamespace(); source_->stream() << "\ @@ -379,6 +380,9 @@ void Init() {\n\ bool Generator::writeHeader() { auto header = std::make_unique(outputPath_ + ".h", project_); + + header->include("QChar", true); + header->include("settings.h"); header->pushNamespace("Ui").pushNamespace("Emoji").pushNamespace("internal"); header->stream() << "\ \n\ diff --git a/Telegram/SourceFiles/codegen/lang/generator.cpp b/Telegram/SourceFiles/codegen/lang/generator.cpp index 5ae39611b..c8cf983d5 100644 --- a/Telegram/SourceFiles/codegen/lang/generator.cpp +++ b/Telegram/SourceFiles/codegen/lang/generator.cpp @@ -115,6 +115,11 @@ Generator::Generator(const LangPack &langpack, const QString &destBasePath, cons bool Generator::writeHeader() { header_ = std::make_unique(basePath_ + ".h", project_); + + header_->include("utility", true); + header_->include("QString", true); + header_->include("QLatin1String", true); + header_->include("lang/lang_tag.h").newline().pushNamespace("Lang").stream() << "\ \n\ constexpr auto kTagsCount = " << langpack_.tags.size() << ";\n\ diff --git a/Telegram/SourceFiles/codegen/numbers/generator.cpp b/Telegram/SourceFiles/codegen/numbers/generator.cpp index 2e5558b8a..6cfea5765 100644 --- a/Telegram/SourceFiles/codegen/numbers/generator.cpp +++ b/Telegram/SourceFiles/codegen/numbers/generator.cpp @@ -39,6 +39,7 @@ Generator::Generator(const Rules &rules, const QString &destBasePath, const comm bool Generator::writeHeader() { header_ = std::make_unique(basePath_ + ".h", project_); + header_->include("QString", true); header_->stream() << "QVector phoneNumberParse(const QString &number);\n"; return header_->finalize(); @@ -47,6 +48,7 @@ bool Generator::writeHeader() { bool Generator::writeSource() { source_ = std::make_unique(basePath_ + ".cpp", project_); + source_->include("QVector", true); source_->stream() << "\ QVector phoneNumberParse(const QString &number) {\n\ QVector result;\n\ diff --git a/Telegram/SourceFiles/codegen/scheme/codegen_scheme.py b/Telegram/SourceFiles/codegen/scheme/codegen_scheme.py index 168607898..bf789f317 100644 --- a/Telegram/SourceFiles/codegen/scheme/codegen_scheme.py +++ b/Telegram/SourceFiles/codegen/scheme/codegen_scheme.py @@ -989,6 +989,7 @@ GNU General Public License for more details.\n\ Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE\n\ Copyright (c) 2014 John Preston, https://desktop.telegram.org\n\ */\n\ +#include "base/assertion.h"\n\ #include "scheme.h"\n\ \n\ // Creator proxy class definition\n\ diff --git a/Telegram/SourceFiles/codegen/style/generator.cpp b/Telegram/SourceFiles/codegen/style/generator.cpp index faef6aeaa..e5cb9e9ca 100644 --- a/Telegram/SourceFiles/codegen/style/generator.cpp +++ b/Telegram/SourceFiles/codegen/style/generator.cpp @@ -216,6 +216,7 @@ Generator::Generator(const structure::Module &module, const QString &destBasePat bool Generator::writeHeader() { header_ = std::make_unique(basePath_ + ".h", project_); + header_->include("styles/style_basic.h").newline(); header_->include("ui/style/style_core.h").newline(); if (!writeHeaderStyleNamespace()) {