diff options
author | Friedrich W. H. Kossebau <kossebau@kde.org> | 2019-03-06 13:43:56 +0100 |
---|---|---|
committer | Friedrich W. H. Kossebau <kossebau@kde.org> | 2019-03-15 06:55:13 +0100 |
commit | a3ed87ca7808363d8752f919617f88010ebf46b3 (patch) | |
tree | 8499bdc6b25490d84e71b4bee3f2be5b159df6f6 /src/kconfig_compiler/kconfig_compiler.cpp | |
parent | 516f558742dfa8da7a5e6def39309516d703bc1b (diff) | |
download | kconfig-a3ed87ca7808363d8752f919617f88010ebf46b3.tar.gz kconfig-a3ed87ca7808363d8752f919617f88010ebf46b3.tar.bz2 |
kconfig_compiler: new kcfgc args HeaderExtension & SourceExtension
Summary:
When using kconfig_compiler generated sources in projects where the used
file extensions for C++ files are not ".h" and/or ".cpp", the include for
the generated header looks a bit alien to the project, as well as the
generated source file if one looks closer at it.
This code adds new optional flags HeaderExtension & SourceExtension which
can be used to control the file extensions used for the generated files.
Test Plan:
All unit tests and the new test_fileextensions pass, existing projects using
kcfg without & with the new flags build fine.
Reviewers: #frameworks, apol
Reviewed By: apol
Subscribers: apol, kde-frameworks-devel
Tags: #frameworks
Differential Revision: https://phabricator.kde.org/D19565
Diffstat (limited to 'src/kconfig_compiler/kconfig_compiler.cpp')
-rw-r--r-- | src/kconfig_compiler/kconfig_compiler.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/kconfig_compiler/kconfig_compiler.cpp b/src/kconfig_compiler/kconfig_compiler.cpp index da75ad94..b467a20a 100644 --- a/src/kconfig_compiler/kconfig_compiler.cpp +++ b/src/kconfig_compiler/kconfig_compiler.cpp @@ -108,6 +108,8 @@ public: translationSystem = QtTranslation; } qCategoryLoggingName = codegenConfig.value(QStringLiteral("CategoryLoggingName"), QString()).toString(); + headerExtension = codegenConfig.value(QStringLiteral("HeaderExtension"), QStringLiteral("h")).toString(); + sourceExtension = codegenConfig.value(QStringLiteral("SourceExtension"), QStringLiteral("cpp")).toString(); } public: @@ -131,6 +133,8 @@ public: QStringList mutators; QStringList defaultGetters; QString qCategoryLoggingName; + QString headerExtension; + QString sourceExtension; bool allMutators; bool setUserTexts; bool allDefaultGetters; @@ -1742,8 +1746,8 @@ int main(int argc, char **argv) } #endif - QString headerFileName = baseName + ".h"; - QString implementationFileName = baseName + ".cpp"; + QString headerFileName = baseName + '.' + cfg.headerExtension; + QString implementationFileName = baseName + '.' + cfg.sourceExtension; QString mocFileName = baseName + ".moc"; QString cppPreamble; // code to be inserted at the beginnin of the cpp file, e.g. initialization of static values @@ -2199,7 +2203,7 @@ int main(int argc, char **argv) if (cfg.customAddons) { h << " // Include custom additions" << endl; - h << " #include \"" << filenameOnly(baseName) << "_addons.h\"" << endl; + h << " #include \"" << filenameOnly(baseName) << "_addons." << cfg.headerExtension << '"' << endl; } h << "};" << endl << endl; |