Added a CMAKE_SUBLIMECLANG_DISABLED variable that disables SublimeClang.
If the CMAKE_SUBLIMECLANG_DISABLED variable is on then SublimeClang is disabled in the generated project file. This is useful in large projects where SublimeClang might run slowly or perform poorly.
This commit is contained in:
parent
9657acb55a
commit
44f35f7824
|
@ -896,6 +896,15 @@ void cmDocumentVariables::DefineVariables(cmake* cm)
|
||||||
" script, it may get fatal error messages from the script.",false,
|
" script, it may get fatal error messages from the script.",false,
|
||||||
"Variables That Change Behavior");
|
"Variables That Change Behavior");
|
||||||
|
|
||||||
|
cm->DefineProperty
|
||||||
|
("CMAKE_SUBLIMECLANG_DISABLED", cmProperty::VARIABLE,
|
||||||
|
"Used by the Sublime Text 2 generator to disable SublimeClang in "
|
||||||
|
"generated project files.",
|
||||||
|
"For very large projects SublimeClang might run slowly. Set this variable"
|
||||||
|
" to TRUE to instruct the Sublime Text 2 generator to disable "
|
||||||
|
" SublimeClang in the generated project files.", false,
|
||||||
|
"Variables That Change Behavior");
|
||||||
|
|
||||||
// Variables defined by CMake that describe the system
|
// Variables defined by CMake that describe the system
|
||||||
|
|
||||||
cm->DefineProperty
|
cm->DefineProperty
|
||||||
|
|
|
@ -47,7 +47,7 @@ void cmExtraSublimeTextGenerator
|
||||||
"Project files for Sublime Text 2 will be created in the top directory "
|
"Project files for Sublime Text 2 will be created in the top directory "
|
||||||
"and in every subdirectory which features a CMakeLists.txt file "
|
"and in every subdirectory which features a CMakeLists.txt file "
|
||||||
"containing a PROJECT() call. "
|
"containing a PROJECT() call. "
|
||||||
"Additionally a hierarchy of makefiles is generated into the "
|
"Additionally Makefiles (or build.ninja files) are generated into the "
|
||||||
"build tree. The appropriate make program can build the project through "
|
"build tree. The appropriate make program can build the project through "
|
||||||
"the default make target. A \"make install\" target is also provided.";
|
"the default make target. A \"make install\" target is also provided.";
|
||||||
}
|
}
|
||||||
|
@ -142,6 +142,18 @@ void cmExtraSublimeTextGenerator
|
||||||
|
|
||||||
// Write the settings section with sublimeclang options
|
// Write the settings section with sublimeclang options
|
||||||
fout << ",\n\t\"settings\":\n\t{\n\t";
|
fout << ",\n\t\"settings\":\n\t{\n\t";
|
||||||
|
// Check if the CMAKE_SUBLIMECLANG_DISABLED flag has been set. If it has
|
||||||
|
// disable sublimeclang for this project.
|
||||||
|
const char* sublimeclangDisabledValue =
|
||||||
|
lgs[0]->GetMakefile()->GetSafeDefinition("CMAKE_SUBLIMECLANG_DISABLED");
|
||||||
|
bool sublimeclangEnabled = cmSystemTools::IsOff(sublimeclangDisabledValue);
|
||||||
|
// Per project sublimeclang settings override default and user settings,
|
||||||
|
// so we only write the sublimeclang_enabled setting to the project file
|
||||||
|
// if it is set to be disabled.
|
||||||
|
if (!sublimeclangEnabled)
|
||||||
|
{
|
||||||
|
fout << "\t\"sublimeclang_enabled\": false,\n\t";
|
||||||
|
}
|
||||||
fout << "\t\"sublimeclang_options\":\n\t\t[\n\t\t";
|
fout << "\t\"sublimeclang_options\":\n\t\t[\n\t\t";
|
||||||
std::set<std::string>::const_iterator stringSetIter = includeDirs.begin();
|
std::set<std::string>::const_iterator stringSetIter = includeDirs.begin();
|
||||||
while (stringSetIter != includeDirs.end())
|
while (stringSetIter != includeDirs.end())
|
||||||
|
|
Loading…
Reference in New Issue