forked from qt-creator/qt-creator
qmlls: add checkbox for generating qmlls ini files
Add a checkbox to the qmljseditingsettingspage that generates qmlls ini files by default for new projects. If this checkbox is checked, then initial CMake configurations (when enabling a kit for a project) and reconfigurations (when pressing the "Re-configure with Initial parameters"-button) will set QT_QML_GENERATE_QMLLS_INI to ON if QT_QML_GENERATE_QMLLS_INI was not set yet. Fixes: QTCREATORBUG-30394 Change-Id: I58f89558d25ef107e501bd67702f26554bd6aeaa Reviewed-by: hjk <hjk@qt.io> Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -94,6 +94,7 @@ const char CMAKE_BUILD_TYPE[] = "CMake.Build.Type";
|
||||
const char CLEAR_SYSTEM_ENVIRONMENT_KEY[] = "CMake.Configure.ClearSystemEnvironment";
|
||||
const char USER_ENVIRONMENT_CHANGES_KEY[] = "CMake.Configure.UserEnvironmentChanges";
|
||||
const char BASE_ENVIRONMENT_KEY[] = "CMake.Configure.BaseEnvironment";
|
||||
const char GENERATE_QMLLS_INI_SETTING[] = "J.QtQuick/QmlJSEditor.GenerateQmllsIniFiles";
|
||||
|
||||
namespace Internal {
|
||||
|
||||
@@ -606,6 +607,18 @@ void CMakeBuildSettingsWidget::updateInitialCMakeArguments()
|
||||
{
|
||||
CMakeConfig initialList = m_buildConfig->initialCMakeArguments.cmakeConfiguration();
|
||||
|
||||
// set QT_QML_GENERATE_QMLLS_INI if it is enabled via the settings checkbox and if its not part
|
||||
// of the initial CMake arguments yet
|
||||
if (Core::ICore::settings()->value(GENERATE_QMLLS_INI_SETTING).toBool()) {
|
||||
if (std::none_of(
|
||||
initialList.constBegin(), initialList.constEnd(), [](const CMakeConfigItem &item) {
|
||||
return item.key == "QT_QML_GENERATE_QMLLS_INI";
|
||||
})) {
|
||||
initialList.append(
|
||||
CMakeConfigItem("QT_QML_GENERATE_QMLLS_INI", CMakeConfigItem::BOOL, "ON"));
|
||||
}
|
||||
}
|
||||
|
||||
for (const CMakeConfigItem &ci : m_buildConfig->cmakeBuildSystem()->configurationChanges()) {
|
||||
if (!ci.isInitial)
|
||||
continue;
|
||||
@@ -1544,6 +1557,11 @@ CMakeBuildConfiguration::CMakeBuildConfiguration(Target *target, Id id)
|
||||
if (qt && qt->isQmlDebuggingSupported())
|
||||
cmd.addArg("-DCMAKE_CXX_FLAGS_INIT:STRING=%{" + QLatin1String(QT_QML_DEBUG_FLAG) + "}");
|
||||
|
||||
// QT_QML_GENERATE_QMLLS_INI, if enabled via the settings checkbox:
|
||||
if (Core::ICore::settings()->value(GENERATE_QMLLS_INI_SETTING).toBool()) {
|
||||
cmd.addArg("-DQT_QML_GENERATE_QMLLS_INI:BOOL=ON");
|
||||
}
|
||||
|
||||
CMakeProject *cmakeProject = static_cast<CMakeProject *>(target->project());
|
||||
configureEnv.setUserEnvironmentChanges(
|
||||
getEnvironmentItemsFromCMakeConfigurePreset(cmakeProject, k));
|
||||
|
||||
Reference in New Issue
Block a user