forked from qt-creator/qt-creator
CMakePM: Transform a few raw C strings into constant literals
This way you can have code completion for the constant literals and not do any accidental typos. Change-Id: I1f9dc36327052fcda9575dddec909db93c4b225c Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -97,6 +97,13 @@ const char USER_ENVIRONMENT_CHANGES_KEY[] = "CMake.Configure.UserEnvironmentChan
|
|||||||
const char BASE_ENVIRONMENT_KEY[] = "CMake.Configure.BaseEnvironment";
|
const char BASE_ENVIRONMENT_KEY[] = "CMake.Configure.BaseEnvironment";
|
||||||
const char GENERATE_QMLLS_INI_SETTING[] = "J.QtQuick/QmlJSEditor.GenerateQmllsIniFiles";
|
const char GENERATE_QMLLS_INI_SETTING[] = "J.QtQuick/QmlJSEditor.GenerateQmllsIniFiles";
|
||||||
|
|
||||||
|
const char CMAKE_TOOLCHAIN_FILE[] = "CMAKE_TOOLCHAIN_FILE";
|
||||||
|
const char CMAKE_C_FLAGS_INIT[] = "CMAKE_C_FLAGS_INIT";
|
||||||
|
const char CMAKE_CXX_FLAGS_INIT[] = "CMAKE_CXX_FLAGS_INIT";
|
||||||
|
const char CMAKE_CXX_FLAGS[] = "CMAKE_CXX_FLAGS";
|
||||||
|
const char CMAKE_CXX_FLAGS_DEBUG[] = "CMAKE_CXX_FLAGS_DEBUG";
|
||||||
|
const char CMAKE_CXX_FLAGS_RELWITHDEBINFO[] = "CMAKE_CXX_FLAGS_RELWITHDEBINFO";
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class CMakeBuildSettingsWidget : public NamedWidget
|
class CMakeBuildSettingsWidget : public NamedWidget
|
||||||
@@ -889,11 +896,11 @@ CMakeConfig CMakeBuildSettingsWidget::getQmlDebugCxxFlags()
|
|||||||
const bool enable = m_buildConfig->qmlDebugging() == TriState::Enabled;
|
const bool enable = m_buildConfig->qmlDebugging() == TriState::Enabled;
|
||||||
|
|
||||||
const CMakeConfig configList = m_buildConfig->cmakeBuildSystem()->configurationFromCMake();
|
const CMakeConfig configList = m_buildConfig->cmakeBuildSystem()->configurationFromCMake();
|
||||||
const QByteArrayList cxxFlagsPrev{"CMAKE_CXX_FLAGS",
|
const QByteArrayList cxxFlagsPrev{CMAKE_CXX_FLAGS,
|
||||||
"CMAKE_CXX_FLAGS_DEBUG",
|
CMAKE_CXX_FLAGS_DEBUG,
|
||||||
"CMAKE_CXX_FLAGS_RELWITHDEBINFO",
|
CMAKE_CXX_FLAGS_RELWITHDEBINFO,
|
||||||
"CMAKE_CXX_FLAGS_INIT"};
|
CMAKE_CXX_FLAGS_INIT};
|
||||||
const QByteArrayList cxxFlags{"CMAKE_CXX_FLAGS_INIT", "CMAKE_CXX_FLAGS"};
|
const QByteArrayList cxxFlags{CMAKE_CXX_FLAGS_INIT, CMAKE_CXX_FLAGS};
|
||||||
const QByteArray qmlDebug(QT_QML_DEBUG_PARAM);
|
const QByteArray qmlDebug(QT_QML_DEBUG_PARAM);
|
||||||
|
|
||||||
CMakeConfig changedConfig;
|
CMakeConfig changedConfig;
|
||||||
@@ -1182,14 +1189,14 @@ static CommandLine defaultInitialCMakeCommand(
|
|||||||
if (auto *gccTc = tc->asGccToolchain()) {
|
if (auto *gccTc = tc->asGccToolchain()) {
|
||||||
const QStringList compilerFlags = gccTc->platformCodeGenFlags();
|
const QStringList compilerFlags = gccTc->platformCodeGenFlags();
|
||||||
|
|
||||||
QString language;
|
QLatin1String languageFlagsInit;
|
||||||
if (gccTc->language() == ProjectExplorer::Constants::C_LANGUAGE_ID)
|
if (gccTc->language() == ProjectExplorer::Constants::C_LANGUAGE_ID)
|
||||||
language = "C";
|
languageFlagsInit = QLatin1String(CMAKE_C_FLAGS_INIT);
|
||||||
else if (gccTc->language() == ProjectExplorer::Constants::CXX_LANGUAGE_ID)
|
else if (gccTc->language() == ProjectExplorer::Constants::CXX_LANGUAGE_ID)
|
||||||
language = "CXX";
|
languageFlagsInit = QLatin1String(CMAKE_CXX_FLAGS_INIT);
|
||||||
|
|
||||||
if (!language.isEmpty() && !compilerFlags.isEmpty())
|
if (!languageFlagsInit.isEmpty() && !compilerFlags.isEmpty())
|
||||||
cmd.addArg("-DCMAKE_" + language + "_FLAGS_INIT:STRING=" + compilerFlags.join(" "));
|
cmd.addArg("-D" + languageFlagsInit + ":STRING=" + compilerFlags.join(" "));
|
||||||
|
|
||||||
const QStringList linkerFlags = gccTc->platformLinkerFlags();
|
const QStringList linkerFlags = gccTc->platformLinkerFlags();
|
||||||
if (!linkerFlags.isEmpty()) {
|
if (!linkerFlags.isEmpty()) {
|
||||||
@@ -1342,14 +1349,14 @@ static void addCMakeConfigurePresetToInitialArguments(QStringList &initialArgume
|
|||||||
}
|
}
|
||||||
|
|
||||||
arg = argItem.toArgument();
|
arg = argItem.toArgument();
|
||||||
} else if (argItem.key == "CMAKE_TOOLCHAIN_FILE") {
|
} else if (argItem.key == CMAKE_TOOLCHAIN_FILE) {
|
||||||
const FilePath argFilePath = FilePath::fromString(argItem.expandedValue(k));
|
const FilePath argFilePath = FilePath::fromString(argItem.expandedValue(k));
|
||||||
const FilePath presetFilePath = FilePath::fromUserInput(
|
const FilePath presetFilePath = FilePath::fromUserInput(
|
||||||
QString::fromUtf8(presetItem.value));
|
QString::fromUtf8(presetItem.value));
|
||||||
|
|
||||||
if (argFilePath != presetFilePath)
|
if (argFilePath != presetFilePath)
|
||||||
arg = presetItem.toArgument();
|
arg = presetItem.toArgument();
|
||||||
} else if (argItem.key == "CMAKE_CXX_FLAGS_INIT") {
|
} else if (argItem.key == CMAKE_CXX_FLAGS_INIT) {
|
||||||
// Append the preset value with at the initial parameters value (e.g. QML Debugging)
|
// Append the preset value with at the initial parameters value (e.g. QML Debugging)
|
||||||
if (argItem.expandedValue(k) != QString::fromUtf8(presetItem.value)) {
|
if (argItem.expandedValue(k) != QString::fromUtf8(presetItem.value)) {
|
||||||
argItem.value.append(" ");
|
argItem.value.append(" ");
|
||||||
@@ -1618,7 +1625,8 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
|||||||
: TriState::Default);
|
: TriState::Default);
|
||||||
|
|
||||||
if (qt && qt->isQmlDebuggingSupported())
|
if (qt && qt->isQmlDebuggingSupported())
|
||||||
cmd.addArg("-DCMAKE_CXX_FLAGS_INIT:STRING=%{" + QLatin1String(QT_QML_DEBUG_FLAG) + "}");
|
cmd.addArg(
|
||||||
|
QLatin1String("-D") + CMAKE_CXX_FLAGS_INIT + ":STRING=%{" + QT_QML_DEBUG_FLAG + "}");
|
||||||
|
|
||||||
// QT_QML_GENERATE_QMLLS_INI, if enabled via the settings checkbox:
|
// QT_QML_GENERATE_QMLLS_INI, if enabled via the settings checkbox:
|
||||||
if (Core::ICore::settings()->value(GENERATE_QMLLS_INI_SETTING).toBool()) {
|
if (Core::ICore::settings()->value(GENERATE_QMLLS_INI_SETTING).toBool()) {
|
||||||
@@ -1679,8 +1687,8 @@ bool CMakeBuildConfiguration::hasQmlDebugging(const CMakeConfig &config)
|
|||||||
// Determine QML debugging flags. This must match what we do in
|
// Determine QML debugging flags. This must match what we do in
|
||||||
// CMakeBuildSettingsWidget::getQmlDebugCxxFlags()
|
// CMakeBuildSettingsWidget::getQmlDebugCxxFlags()
|
||||||
// such that in doubt we leave the QML Debugging setting at "Leave at default"
|
// such that in doubt we leave the QML Debugging setting at "Leave at default"
|
||||||
const QString cxxFlagsInit = config.stringValueOf("CMAKE_CXX_FLAGS_INIT");
|
const QString cxxFlagsInit = config.stringValueOf(CMAKE_CXX_FLAGS_INIT);
|
||||||
const QString cxxFlags = config.stringValueOf("CMAKE_CXX_FLAGS");
|
const QString cxxFlags = config.stringValueOf(CMAKE_CXX_FLAGS);
|
||||||
return cxxFlagsInit.contains(QT_QML_DEBUG_PARAM) && cxxFlags.contains(QT_QML_DEBUG_PARAM);
|
return cxxFlagsInit.contains(QT_QML_DEBUG_PARAM) && cxxFlags.contains(QT_QML_DEBUG_PARAM);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user