build: allow to disable language support in cmake

* in addition: add unloadable sourcegroup to visualize, load and save information when loading a project that contains source groups that are not supported by the build
This commit is contained in:
mlangkabel
2019-11-13 17:26:06 +01:00
parent 4cf852770e
commit c38117ab8b
111 changed files with 1165 additions and 242 deletions
+1
View File
@@ -397,6 +397,7 @@ add_files(
settings/source_group/type/SourceGroupSettingsJavaGradle.h
settings/source_group/type/SourceGroupSettingsJavaMaven.h
settings/source_group/type/SourceGroupSettingsPythonEmpty.h
settings/source_group/type/SourceGroupSettingsUnloadable.h
settings/source_group/SourceGroupSettings.cpp
settings/source_group/SourceGroupSettings.h
@@ -4,12 +4,18 @@ std::string indexerCommandTypeToString(IndexerCommandType type)
{
switch(type)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
case INDEXER_COMMAND_CXX:
return "indexer_command_cxx";
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case INDEXER_COMMAND_JAVA:
return "indexer_command_java";
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
case INDEXER_COMMAND_PYTHON:
return "indexer_command_python";
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
case INDEXER_COMMAND_CUSTOM:
return "indexer_command_custom";
default:
@@ -20,8 +26,15 @@ std::string indexerCommandTypeToString(IndexerCommandType type)
IndexerCommandType stringToIndexerCommandType(const std::string& s)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
if (s == indexerCommandTypeToString(INDEXER_COMMAND_CXX)) return INDEXER_COMMAND_CXX;
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
if (s == indexerCommandTypeToString(INDEXER_COMMAND_JAVA)) return INDEXER_COMMAND_JAVA;
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
if (s == indexerCommandTypeToString(INDEXER_COMMAND_PYTHON)) return INDEXER_COMMAND_PYTHON;
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
if (s == indexerCommandTypeToString(INDEXER_COMMAND_CUSTOM)) return INDEXER_COMMAND_CUSTOM;
return INDEXER_COMMAND_UNKNOWN;
}
@@ -1,14 +1,22 @@
#ifndef INDEXER_COMMAND_TYPE_H
#define INDEXER_COMMAND_TYPE_H
#include "language_packages.h"
#include <string>
enum IndexerCommandType
{
INDEXER_COMMAND_UNKNOWN,
#if BUILD_CXX_LANGUAGE_PACKAGE
INDEXER_COMMAND_CXX,
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
INDEXER_COMMAND_JAVA,
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
INDEXER_COMMAND_PYTHON,
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
INDEXER_COMMAND_CUSTOM
};
@@ -52,11 +52,12 @@ void TaskExecuteCustomCommands::doEnter(std::shared_ptr<Blackboard> blackboard)
{
m_targetDatabaseFilePath = indexerCommand->getDatabaseFilePath();
}
#if BUILD_PYTHON_LANGUAGE_PACKAGE
if (indexerCommand->getIndexerCommandType() == INDEXER_COMMAND_PYTHON)
{
m_hasPythonCommands = true;
}
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
if (indexerCommand->getRunInParallel())
{
@@ -10,6 +10,7 @@ void SharedIndexerCommand::fromLocal(IndexerCommand* indexerCommand)
{
setSourceFilePath(indexerCommand->getSourceFilePath());
#if BUILD_CXX_LANGUAGE_PACKAGE
if (dynamic_cast<IndexerCommandCxx*>(indexerCommand) != nullptr)
{
IndexerCommandCxx* cmd = dynamic_cast<IndexerCommandCxx*>(indexerCommand);
@@ -20,29 +21,34 @@ void SharedIndexerCommand::fromLocal(IndexerCommand* indexerCommand)
setIncludeFilters(cmd->getIncludeFilters());
setWorkingDirectory(cmd->getWorkingDirectory());
setCompilerFlags(cmd->getCompilerFlags());
return;
}
else if (dynamic_cast<IndexerCommandJava*>(indexerCommand) != nullptr)
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
if (dynamic_cast<IndexerCommandJava*>(indexerCommand) != nullptr)
{
IndexerCommandJava* cmd = dynamic_cast<IndexerCommandJava*>(indexerCommand);
setType(JAVA);
setLanguageStandard(cmd->getLanguageStandard());
setClassPaths(cmd->getClassPath());
return;
}
else
{
LOG_ERROR(L"Trying to push unhandled type of IndexerCommand for file: " +
indexerCommand->getSourceFilePath().wstr() + L". Type string is: " +
utility::decodeFromUtf8(indexerCommandTypeToString(indexerCommand->getIndexerCommandType())) +
L". It will be ignored.");
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
LOG_ERROR(L"Trying to push unhandled type of IndexerCommand for file: " +
indexerCommand->getSourceFilePath().wstr() + L". Type string is: " +
utility::decodeFromUtf8(indexerCommandTypeToString(indexerCommand->getIndexerCommandType())) +
L". It will be ignored.");
}
std::shared_ptr<IndexerCommand> SharedIndexerCommand::fromShared(const SharedIndexerCommand& indexerCommand)
{
if (indexerCommand.getType() == CXX)
switch (indexerCommand.getType())
{
std::shared_ptr<IndexerCommand> command = std::make_shared<IndexerCommandCxx>(
#if BUILD_CXX_LANGUAGE_PACKAGE
case CXX:
return std::make_shared<IndexerCommandCxx>(
indexerCommand.getSourceFilePath(),
indexerCommand.getIndexedPaths(),
indexerCommand.getExcludeFilters(),
@@ -50,18 +56,16 @@ std::shared_ptr<IndexerCommand> SharedIndexerCommand::fromShared(const SharedInd
indexerCommand.getWorkingDirectory(),
indexerCommand.getCompilerFlags()
);
return command;
}
else if (indexerCommand.getType() == JAVA)
{
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case JAVA:
return std::make_shared<IndexerCommandJava>(
indexerCommand.getSourceFilePath(),
indexerCommand.getLanguageStandard(),
indexerCommand.getClassPaths()
);
}
else
{
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
default:
LOG_ERROR(L"Cannot convert shared IndexerCommand for file: " +
indexerCommand.getSourceFilePath().wstr() + L". The type is unknown.");
}
@@ -73,13 +77,17 @@ std::shared_ptr<IndexerCommand> SharedIndexerCommand::fromShared(const SharedInd
SharedIndexerCommand::SharedIndexerCommand(SharedMemory::Allocator* allocator)
: m_type(Type::UNKNOWN)
, m_sourceFilePath("", allocator)
#if BUILD_CXX_LANGUAGE_PACKAGE
, m_indexedPaths(allocator)
, m_excludeFilters(allocator)
, m_includeFilters(allocator)
, m_workingDirectory("", allocator)
, m_languageStandard("", allocator)
, m_compilerFlags(allocator)
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
, m_languageStandard("", allocator)
, m_classPaths(allocator)
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
{
}
@@ -97,6 +105,8 @@ void SharedIndexerCommand::setSourceFilePath(const FilePath& filePath)
m_sourceFilePath = utility::encodeToUtf8(filePath.wstr()).c_str();
}
#if BUILD_CXX_LANGUAGE_PACKAGE
std::set<FilePath> SharedIndexerCommand::getIndexedPaths() const
{
std::set<FilePath> result;
@@ -179,16 +189,6 @@ void SharedIndexerCommand::setWorkingDirectory(const FilePath& workingDirectory)
m_workingDirectory = utility::encodeToUtf8(workingDirectory.wstr()).c_str();
}
std::wstring SharedIndexerCommand::getLanguageStandard() const
{
return utility::decodeFromUtf8(m_languageStandard.c_str());
}
void SharedIndexerCommand::setLanguageStandard(const std::wstring& languageStandard)
{
m_languageStandard = utility::encodeToUtf8(languageStandard).c_str();
}
std::vector<std::wstring> SharedIndexerCommand::getCompilerFlags() const
{
std::vector<std::wstring> result;
@@ -215,6 +215,20 @@ void SharedIndexerCommand::setCompilerFlags(const std::vector<std::wstring>& com
}
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
std::wstring SharedIndexerCommand::getLanguageStandard() const
{
return utility::decodeFromUtf8(m_languageStandard.c_str());
}
void SharedIndexerCommand::setLanguageStandard(const std::wstring& languageStandard)
{
m_languageStandard = utility::encodeToUtf8(languageStandard).c_str();
}
std::vector<FilePath> SharedIndexerCommand::getClassPaths() const
{
std::vector<FilePath> result;
@@ -241,6 +255,8 @@ void SharedIndexerCommand::setClassPaths(const std::vector<FilePath>& classPaths
}
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
SharedIndexerCommand::Type SharedIndexerCommand::getType() const
{
return m_type;
@@ -3,6 +3,8 @@
#include <set>
#include "language_packages.h"
#include "FilePath.h"
#include "FilePathFilter.h"
#include "SharedMemory.h"
@@ -21,6 +23,8 @@ public:
FilePath getSourceFilePath() const;
void setSourceFilePath(const FilePath& filePath);
#if BUILD_CXX_LANGUAGE_PACKAGE
std::set<FilePath> getIndexedPaths() const;
void setIndexedPaths(const std::set<FilePath>& indexedPaths);
@@ -33,21 +37,30 @@ public:
FilePath getWorkingDirectory() const;
void setWorkingDirectory(const FilePath& workingDirectory);
std::wstring getLanguageStandard() const;
void setLanguageStandard(const std::wstring& languageStandard);
std::vector<std::wstring> getCompilerFlags() const;
void setCompilerFlags(const std::vector<std::wstring>& compilerFlags);
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
std::wstring getLanguageStandard() const;
void setLanguageStandard(const std::wstring& languageStandard);
std::vector<FilePath> getClassPaths() const;
void setClassPaths(const std::vector<FilePath>& classPaths);
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
private:
enum Type
{
UNKNOWN = 0,
#if BUILD_CXX_LANGUAGE_PACKAGE
CXX,
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
JAVA
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
};
Type getType() const;
@@ -57,17 +70,19 @@ private:
// indexer command
SharedMemory::String m_sourceFilePath;
#if BUILD_CXX_LANGUAGE_PACKAGE
SharedMemory::Vector<SharedMemory::String> m_indexedPaths;
SharedMemory::Vector<SharedMemory::String> m_excludeFilters;
SharedMemory::Vector<SharedMemory::String> m_includeFilters;
// cxx
SharedMemory::String m_workingDirectory;
SharedMemory::String m_languageStandard;
SharedMemory::Vector<SharedMemory::String> m_compilerFlags;
#endif // BUILD_CXX_LANGUAGE_PACKAGE
// java
#if BUILD_JAVA_LANGUAGE_PACKAGE
SharedMemory::String m_languageStandard;
SharedMemory::Vector<SharedMemory::String> m_classPaths;
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
};
#endif // SHARED_INDEXER_COMMAND_H
@@ -30,10 +30,18 @@ void SqliteBookmarkStorage::migrateIfNecessary()
std::shared_ptr<const Project> currentProject = Application::getInstance()->getCurrentProject();
{
LanguageType currentLanguage = ProjectSettings::getLanguageOfProject(currentProject->getProjectSettingsFilePath());
#if BUILD_JAVA_LANGUAGE_PACKAGE
if (currentLanguage == LANGUAGE_JAVA)
{
separator = ".";
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
if (currentLanguage == LANGUAGE_PYTHON)
{
separator = ".";
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
}
}
migration->executeStatementInStorage(storage, "UPDATE bookmarked_node SET serialized_node_name = '" + separator + "\tm' || serialized_node_name");
+29 -10
View File
@@ -418,20 +418,32 @@ void Project::buildIndex(RefreshInfo info, std::shared_ptr<DialogView> dialogVie
return;
}
if (info.mode != REFRESH_ALL_FILES && info.filesToClear.empty() && info.filesToIndex.empty())
{
if (m_hasGUI)
std::wstring message;
if (info.mode != REFRESH_ALL_FILES && info.filesToClear.empty() && info.filesToIndex.empty())
{
dialogView->clearDialogs();
message = L"Nothing to refresh, all files are up-to-date.";
}
else
else if (m_sourceGroups.empty())
{
MessageIndexingFinished().dispatch();
message = L"Nothing to refresh, no Source Groups loaded.";
}
MessageStatus(L"Nothing to refresh, all files are up-to-date.").dispatch();
m_refreshStage = RefreshStageType::NONE;
return;
if (!message.empty())
{
if (m_hasGUI)
{
dialogView->clearDialogs();
}
else
{
MessageIndexingFinished().dispatch();
}
MessageStatus(message).dispatch();
m_refreshStage = RefreshStageType::NONE;
return;
}
}
if (info.mode != REFRESH_ALL_FILES && (info.filesToClear.size() || info.nonIndexedFilesToClear.size()))
@@ -520,11 +532,16 @@ void Project::buildIndex(RefreshInfo info, std::shared_ptr<DialogView> dialogVie
{
if (sourceGroup->getStatus() == SOURCE_GROUP_STATUS_ENABLED)
{
if (sourceGroup->getType() == SOURCE_GROUP_CUSTOM_COMMAND ||
sourceGroup->getType() == SOURCE_GROUP_PYTHON_EMPTY)
if (sourceGroup->getType() == SOURCE_GROUP_CUSTOM_COMMAND)
{
customIndexerCommandProvider->addProvider(sourceGroup->getIndexerCommandProvider(info));
}
#if BUILD_PYTHON_LANGUAGE_PACKAGE
else if (sourceGroup->getType() == SOURCE_GROUP_PYTHON_EMPTY)
{
customIndexerCommandProvider->addProvider(sourceGroup->getIndexerCommandProvider(info));
}
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
else
{
indexerCommandProvider->addProvider(sourceGroup->getIndexerCommandProvider(info));
@@ -775,6 +792,7 @@ void Project::discardTempStorage()
bool Project::hasCxxSourceGroup() const
{
#if BUILD_CXX_LANGUAGE_PACKAGE
for (const std::shared_ptr<SourceGroup>& sourceGroup: m_sourceGroups)
{
if (sourceGroup->getStatus() == SOURCE_GROUP_STATUS_ENABLED)
@@ -785,5 +803,6 @@ bool Project::hasCxxSourceGroup() const
}
}
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
return false;
}
+22 -4
View File
@@ -4,14 +4,20 @@ std::string languageTypeToString(LanguageType t)
{
switch (t)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
case LANGUAGE_C:
return "C";
case LANGUAGE_CPP:
return "C++";
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case LANGUAGE_JAVA:
return "Java";
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
case LANGUAGE_PYTHON:
return "Python";
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
case LANGUAGE_CUSTOM:
return "Custom";
case LANGUAGE_UNKNOWN:
@@ -22,23 +28,29 @@ std::string languageTypeToString(LanguageType t)
LanguageType stringToLanguageType(std::string s)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
if (s == languageTypeToString(LANGUAGE_C))
{
return LANGUAGE_C;
}
else if (s == languageTypeToString(LANGUAGE_CPP))
if (s == languageTypeToString(LANGUAGE_CPP))
{
return LANGUAGE_CPP;
}
else if (s == languageTypeToString(LANGUAGE_JAVA))
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
if (s == languageTypeToString(LANGUAGE_JAVA))
{
return LANGUAGE_JAVA;
}
else if (s == languageTypeToString(LANGUAGE_PYTHON))
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
if (s == languageTypeToString(LANGUAGE_PYTHON))
{
return LANGUAGE_PYTHON;
}
else if (s == languageTypeToString(LANGUAGE_CUSTOM))
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
if (s == languageTypeToString(LANGUAGE_CUSTOM))
{
return LANGUAGE_CUSTOM;
}
@@ -49,6 +61,7 @@ LanguageType getLanguageTypeForSourceGroupType(SourceGroupType t)
{
switch (t)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
case SOURCE_GROUP_C_EMPTY:
return LANGUAGE_C;
case SOURCE_GROUP_CPP_EMPTY:
@@ -59,14 +72,19 @@ LanguageType getLanguageTypeForSourceGroupType(SourceGroupType t)
return LANGUAGE_CPP;
case SOURCE_GROUP_CXX_VS:
return LANGUAGE_CPP;
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case SOURCE_GROUP_JAVA_EMPTY:
return LANGUAGE_JAVA;
case SOURCE_GROUP_JAVA_MAVEN:
return LANGUAGE_JAVA;
case SOURCE_GROUP_JAVA_GRADLE:
return LANGUAGE_JAVA;
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_PYTHON_EMPTY:
return LANGUAGE_PYTHON;
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_CUSTOM_COMMAND:
return LANGUAGE_CUSTOM;
default:
+6
View File
@@ -7,10 +7,16 @@
enum LanguageType
{
#if BUILD_CXX_LANGUAGE_PACKAGE
LANGUAGE_CPP,
LANGUAGE_C,
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
LANGUAGE_JAVA,
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
LANGUAGE_PYTHON,
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
LANGUAGE_CUSTOM,
LANGUAGE_UNKNOWN
};
+19 -3
View File
@@ -12,6 +12,7 @@
#include "SourceGroupSettingsJavaMaven.h"
#include "SourceGroupSettingsJavaGradle.h"
#include "SourceGroupSettingsPythonEmpty.h"
#include "SourceGroupSettingsUnloadable.h"
#include "logging.h"
#include "utilityFile.h"
#include "utilityString.h"
@@ -174,6 +175,7 @@ std::vector<std::shared_ptr<SourceGroupSettings>> ProjectSettings::getAllSourceG
switch (type)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
case SOURCE_GROUP_C_EMPTY:
settings = std::make_shared<SourceGroupSettingsCEmpty>(id, this);
break;
@@ -186,6 +188,8 @@ std::vector<std::shared_ptr<SourceGroupSettings>> ProjectSettings::getAllSourceG
case SOURCE_GROUP_CXX_CODEBLOCKS:
settings = std::make_shared<SourceGroupSettingsCxxCodeblocks>(id, this);
break;
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case SOURCE_GROUP_JAVA_EMPTY:
settings = std::make_shared<SourceGroupSettingsJavaEmpty>(id, this);
break;
@@ -195,14 +199,17 @@ std::vector<std::shared_ptr<SourceGroupSettings>> ProjectSettings::getAllSourceG
case SOURCE_GROUP_JAVA_GRADLE:
settings = std::make_shared<SourceGroupSettingsJavaGradle>(id, this);
break;
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_PYTHON_EMPTY:
settings = std::make_shared<SourceGroupSettingsPythonEmpty>(id, this);
break;
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_CUSTOM_COMMAND:
settings = std::make_shared<SourceGroupSettingsCustomCommand>(id, this);
break;
default:
continue;
settings = std::make_shared<SourceGroupSettingsUnloadable>(id, this);
}
if (settings)
@@ -307,6 +314,7 @@ SettingsMigrator ProjectSettings::getMigrations() const
const std::string language = migration->getValueFromSettings<std::string>(settings, "language_settings/language", "");
SourceGroupType type = SOURCE_GROUP_UNKNOWN;
#if BUILD_CXX_LANGUAGE_PACKAGE
if (language == "C" || language == "C++")
{
const std::string cdbPath = migration->getValueFromSettings<std::string>(settings, sourceGroupKey + "/build_file_path/compilation_db_path", "");
@@ -323,7 +331,9 @@ SettingsMigrator ProjectSettings::getMigrations() const
type = SOURCE_GROUP_CPP_EMPTY;
}
}
else if (language == "Java")
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
if (language == "Java")
{
const std::string mavenProjectFilePath = migration->getValueFromSettings<std::string>(settings, sourceGroupKey + "/maven/project_file_path", "");
if (!mavenProjectFilePath.empty())
@@ -340,7 +350,7 @@ SettingsMigrator ProjectSettings::getMigrations() const
type = SOURCE_GROUP_JAVA_EMPTY;
}
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
migration->setValueInSettings(settings, sourceGroupKey + "/type", sourceGroupTypeToString(type));
}
));
@@ -357,11 +367,13 @@ SettingsMigrator ProjectSettings::getMigrations() const
for (std::shared_ptr<SourceGroupSettings> sourceGroupSettings : getAllSourceGroupSettings())
{
#if BUILD_CXX_LANGUAGE_PACKAGE
if (sourceGroupSettings->getType() == SOURCE_GROUP_CXX_CDB)
{
const std::string key = SourceGroupSettings::s_keyPrefix + sourceGroupSettings->getId();
migrator.addMigration(6, std::make_shared<SettingsMigrationMoveKey>(key + "/source_paths/source_path", key + "/indexed_header_paths/indexed_header_path"));
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
}
for (std::shared_ptr<SourceGroupSettings> sourceGroupSettings : getAllSourceGroupSettings())
@@ -369,15 +381,19 @@ SettingsMigrator ProjectSettings::getMigrations() const
std::string languageName;
switch (getLanguageTypeForSourceGroupType(sourceGroupSettings->getType()))
{
#if BUILD_CXX_LANGUAGE_PACKAGE
case LANGUAGE_C:
languageName = "c";
break;
case LANGUAGE_CPP:
languageName = "cpp";
break;
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case LANGUAGE_JAVA:
languageName = "java";
break;
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
default:
continue;
}
@@ -4,6 +4,7 @@ std::string sourceGroupTypeToString(SourceGroupType v)
{
switch (v)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
case SOURCE_GROUP_C_EMPTY:
return "C Source Group";
case SOURCE_GROUP_CPP_EMPTY:
@@ -14,14 +15,19 @@ std::string sourceGroupTypeToString(SourceGroupType v)
return "C/C++ from Code::Blocks";
case SOURCE_GROUP_CXX_VS:
return "C/C++ from Visual Studio";
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case SOURCE_GROUP_JAVA_EMPTY:
return "Java Source Group";
case SOURCE_GROUP_JAVA_MAVEN:
return "Java Source Group from Maven";
case SOURCE_GROUP_JAVA_GRADLE:
return "Java Source Group from Gradle";
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_PYTHON_EMPTY:
return "Python Source Group";
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_CUSTOM_COMMAND:
return "Custom Command Source Group";
case SOURCE_GROUP_UNKNOWN:
@@ -34,6 +40,7 @@ std::string sourceGroupTypeToProjectSetupString(SourceGroupType v)
{
switch (v)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
case SOURCE_GROUP_C_EMPTY:
return "Empty C Source Group";
case SOURCE_GROUP_CPP_EMPTY:
@@ -44,14 +51,19 @@ std::string sourceGroupTypeToProjectSetupString(SourceGroupType v)
return "C/C++ from Code::Blocks";
case SOURCE_GROUP_CXX_VS:
return "C/C++ from Visual Studio";
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
case SOURCE_GROUP_JAVA_EMPTY:
return "Empty Java Source Group";
case SOURCE_GROUP_JAVA_MAVEN:
return "Java Source Group from Maven";
case SOURCE_GROUP_JAVA_GRADLE:
return "Java Source Group from Gradle";
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_PYTHON_EMPTY:
return "Empty Python Source Group";
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
case SOURCE_GROUP_CUSTOM_COMMAND:
return "Custom Command Source Group";
case SOURCE_GROUP_UNKNOWN:
@@ -62,43 +74,49 @@ std::string sourceGroupTypeToProjectSetupString(SourceGroupType v)
SourceGroupType stringToSourceGroupType(const std::string& v)
{
#if BUILD_CXX_LANGUAGE_PACKAGE
if (v == sourceGroupTypeToString(SOURCE_GROUP_C_EMPTY))
{
return SOURCE_GROUP_C_EMPTY;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_CPP_EMPTY))
if (v == sourceGroupTypeToString(SOURCE_GROUP_CPP_EMPTY))
{
return SOURCE_GROUP_CPP_EMPTY;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_CXX_CDB))
if (v == sourceGroupTypeToString(SOURCE_GROUP_CXX_CDB))
{
return SOURCE_GROUP_CXX_CDB;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_CXX_CODEBLOCKS))
if (v == sourceGroupTypeToString(SOURCE_GROUP_CXX_CODEBLOCKS))
{
return SOURCE_GROUP_CXX_CODEBLOCKS;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_CXX_VS))
if (v == sourceGroupTypeToString(SOURCE_GROUP_CXX_VS))
{
return SOURCE_GROUP_CXX_VS;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_JAVA_EMPTY))
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
if (v == sourceGroupTypeToString(SOURCE_GROUP_JAVA_EMPTY))
{
return SOURCE_GROUP_JAVA_EMPTY;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_JAVA_MAVEN))
if (v == sourceGroupTypeToString(SOURCE_GROUP_JAVA_MAVEN))
{
return SOURCE_GROUP_JAVA_MAVEN;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_JAVA_GRADLE))
if (v == sourceGroupTypeToString(SOURCE_GROUP_JAVA_GRADLE))
{
return SOURCE_GROUP_JAVA_GRADLE;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_PYTHON_EMPTY))
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_PYTHON_LANGUAGE_PACKAGE
if (v == sourceGroupTypeToString(SOURCE_GROUP_PYTHON_EMPTY))
{
return SOURCE_GROUP_PYTHON_EMPTY;
}
else if (v == sourceGroupTypeToString(SOURCE_GROUP_CUSTOM_COMMAND))
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
if (v == sourceGroupTypeToString(SOURCE_GROUP_CUSTOM_COMMAND))
{
return SOURCE_GROUP_CUSTOM_COMMAND;
}
@@ -1,19 +1,27 @@
#ifndef SOURCE_GROUP_TYPE_H
#define SOURCE_GROUP_TYPE_H
#include "language_packages.h"
#include <string>
enum SourceGroupType
{
#if BUILD_CXX_LANGUAGE_PACKAGE
SOURCE_GROUP_C_EMPTY,
SOURCE_GROUP_CPP_EMPTY,
SOURCE_GROUP_CXX_CDB,
SOURCE_GROUP_CXX_CODEBLOCKS,
SOURCE_GROUP_CXX_VS,
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
SOURCE_GROUP_JAVA_EMPTY,
SOURCE_GROUP_JAVA_MAVEN,
SOURCE_GROUP_JAVA_GRADLE,
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#if BUILD_JAVA_LANGUAGE_PACKAGE
SOURCE_GROUP_PYTHON_EMPTY,
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
SOURCE_GROUP_CUSTOM_COMMAND,
SOURCE_GROUP_UNKNOWN
};
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithCStandard.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
std::wstring SourceGroupSettingsWithCStandard::getDefaultCStandardStatic()
@@ -67,3 +69,5 @@ std::wstring SourceGroupSettingsWithCStandard::getDefaultCStandard() const
{
return getDefaultCStandardStatic();
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_C_STANDARD_H
#define SOURCE_GROUP_SETTINGS_WITH_C_STANDARD_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include <vector>
#include "SourceGroupSettingsComponent.h"
@@ -30,4 +34,6 @@ private:
std::wstring m_cStandard;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_C_STANDARD_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithCppStandard.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
std::wstring SourceGroupSettingsWithCppStandard::getDefaultCppStandardStatic()
@@ -67,3 +69,5 @@ std::wstring SourceGroupSettingsWithCppStandard::getDefaultCppStandard() const
{
return getDefaultCppStandardStatic();
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_CPP_STANDARD_H
#define SOURCE_GROUP_SETTINGS_WITH_CPP_STANDARD_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include <vector>
#include "SourceGroupSettingsComponent.h"
@@ -30,4 +34,6 @@ private:
std::wstring m_cppStandard;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_CPP_STANDARD_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithCxxCdbPath.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
#include "utilityFile.h"
@@ -39,3 +41,5 @@ void SourceGroupSettingsWithCxxCdbPath::save(ConfigManager* config, const std::s
{
config->setValue(key + "/build_file_path/compilation_db_path", getCompilationDatabasePath().wstr());
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_CXX_CDB_PATH_H
#define SOURCE_GROUP_SETTINGS_WITH_CXX_CDB_PATH_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "FilePath.h"
#include "SourceGroupSettingsComponent.h"
@@ -24,4 +28,6 @@ private:
FilePath m_compilationDatabasePath;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_CXX_CDB_PATH_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithCxxCodeblocksPath.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
#include "utilityFile.h"
@@ -38,3 +40,5 @@ void SourceGroupSettingsWithCxxCodeblocksPath::save(ConfigManager* config, const
{
config->setValue(key + "/codeblocks_project_path", getCodeblocksProjectPath().wstr());
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_CXX_CODEBLOCKS_PATH_H
#define SOURCE_GROUP_SETTINGS_WITH_CXX_CODEBLOCKS_PATH_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "FilePath.h"
#include "SourceGroupSettingsComponent.h"
@@ -24,4 +28,6 @@ private:
FilePath m_codeblocksProjectPath;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_CXX_CODEBLOCKS_PATH_H
@@ -1,7 +1,8 @@
#include "SourceGroupSettingsWithCxxCrossCompilationOptions.h"
#include "ProjectSettings.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
std::vector<std::wstring> SourceGroupSettingsWithCxxCrossCompilationOptions::getAvailableArchTypes()
{
@@ -232,3 +233,5 @@ void SourceGroupSettingsWithCxxCrossCompilationOptions::save(ConfigManager* conf
config->setValue(key + "/cross_compilation/target/sys", getTargetSys());
config->setValue(key + "/cross_compilation/target/abi", getTargetAbi());
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_CXX_CROSS_COMPILATION_OPTIONS_H
#define SOURCE_GROUP_SETTINGS_WITH_CXX_CROSS_COMPILATION_OPTIONS_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include <vector>
#include "SourceGroupSettingsComponent.h"
@@ -47,4 +51,6 @@ private:
std::wstring m_targetAbi;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_CXX_CROSS_COMPILATION_OPTIONS_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithCxxPathsAndFlags.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
#include "utility.h"
@@ -69,3 +71,5 @@ void SourceGroupSettingsWithCxxPathsAndFlags::save(ConfigManager* config, const
config->setValues(key + "/framework_search_paths/framework_search_path", getFrameworkSearchPaths());
config->setValues(key + "/compiler_flags/compiler_flag", getCompilerFlags());
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_CXX_PATHS_AND_FLAGS_H
#define SOURCE_GROUP_SETTINGS_WITH_CXX_PATHS_AND_FLAGS_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include <vector>
#include "FilePath.h"
@@ -35,4 +39,6 @@ private:
std::vector<std::wstring> m_compilerFlags;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_CXX_PATHS_AND_FLAGS_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithCxxPchOptions.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
#include "utility.h"
#include "utilityFile.h"
@@ -70,3 +72,5 @@ void SourceGroupSettingsWithCxxPchOptions::setPchFlags(const std::vector<std::ws
{
m_pchFlags = pchFlags;
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_CXX_PCH_OPTIONS_H
#define SOURCE_GROUP_SETTINGS_WITH_CXX_PCH_OPTIONS_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "FilePath.h"
#include "SourceGroupSettingsComponent.h"
@@ -34,4 +38,6 @@ private:
bool m_useCompilerFlags = true;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_CXX_PCH_OPTIONS_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithIndexedHeaderPaths.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
#include "utility.h"
@@ -38,3 +40,5 @@ void SourceGroupSettingsWithIndexedHeaderPaths::save(ConfigManager* config, cons
{
config->setValues(key + "/indexed_header_paths/indexed_header_path", getIndexedHeaderPaths());
}
#endif // BUILD_CXX_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_INDEXED_HEADER_PATHS_H
#define SOURCE_GROUP_SETTINGS_WITH_INDEXED_HEADER_PATHS_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include <vector>
#include "SourceGroupSettingsComponent.h"
@@ -27,4 +31,6 @@ private:
std::vector<FilePath> m_indexedHeaderPaths;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_INDEXED_HEADER_PATHS_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_C_H
#define SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_C_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithSourceExtensions.h"
class SourceGroupSettingsWithSourceExtensionsC
@@ -13,4 +17,6 @@ private:
}
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_C_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_CPP_H
#define SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_CPP_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithSourceExtensions.h"
class SourceGroupSettingsWithSourceExtensionsCpp
@@ -17,4 +21,6 @@ private:
}
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_CPP_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithClasspath.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
#include "utility.h"
@@ -50,3 +52,5 @@ void SourceGroupSettingsWithClasspath::save(ConfigManager* config, const std::st
config->setValues(key + "/class_paths/class_path", getClasspath());
config->setValue(key + "/use_jre_system_library", getUseJreSystemLibrary());
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_CLASSPATH_H
#define SOURCE_GROUP_SETTINGS_WITH_CLASSPATH_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include <vector>
#include "FilePath.h"
@@ -30,4 +34,6 @@ private:
bool m_useJreSystemLibrary = true;
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_CLASSPATH_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithJavaGradle.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "ConfigManager.h"
#include "ProjectSettings.h"
#include "utilityFile.h"
@@ -56,3 +58,5 @@ void SourceGroupSettingsWithJavaGradle::save(ConfigManager* config, const std::s
config->setValue(key + "/gradle/project_file_path", getGradleProjectFilePath().wstr());
config->setValue(key + "/gradle/should_index_tests", getShouldIndexGradleTests());
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_JAVA_GRADLE_H
#define SOURCE_GROUP_SETTINGS_WITH_JAVA_GRADLE_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "FilePath.h"
#include "SourceGroupSettingsComponent.h"
@@ -30,4 +34,6 @@ private:
bool m_shouldIndexGradleTests = false;
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_JAVA_GRADLE_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithJavaMaven.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "ConfigManager.h"
#include "ProjectSettings.h"
#include "utilityFile.h"
@@ -56,3 +58,5 @@ void SourceGroupSettingsWithJavaMaven::save(ConfigManager* config, const std::st
config->setValue(key + "/maven/project_file_path", getMavenProjectFilePath().wstr());
config->setValue(key + "/maven/should_index_tests", getShouldIndexMavenTests());
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_JAVA_MAVEN_H
#define SOURCE_GROUP_SETTINGS_WITH_JAVA_MAVEN_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "FilePath.h"
#include "SourceGroupSettingsComponent.h"
@@ -30,4 +34,6 @@ private:
bool m_shouldIndexMavenTests = false;
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_JAVA_MAVEN_H
@@ -1,5 +1,7 @@
#include "SourceGroupSettingsWithJavaStandard.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "ProjectSettings.h"
std::wstring SourceGroupSettingsWithJavaStandard::getDefaultJavaStandardStatic()
@@ -50,3 +52,5 @@ std::wstring SourceGroupSettingsWithJavaStandard::getDefaultJavaStandard() const
{
return getDefaultJavaStandardStatic();
}
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_JAVA_STANDARD_H
#define SOURCE_GROUP_SETTINGS_WITH_JAVA_STANDARD_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include <vector>
#include "SourceGroupSettingsComponent.h"
@@ -30,4 +34,6 @@ private:
std::wstring m_javaStandard;
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_JAVA_STANDARD_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_JAVA_H
#define SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_JAVA_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithSourceExtensions.h"
class SourceGroupSettingsWithSourceExtensionsJava
@@ -13,4 +17,6 @@ private:
}
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_WITH_SOURCE_EXTENSIONS_JAVA_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_C_EMPTY_H
#define SOURCE_GROUP_SETTINGS_C_EMPTY_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithCStandard.h"
#include "SourceGroupSettingsWithCxxCrossCompilationOptions.h"
@@ -32,4 +36,6 @@ public:
}
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_C_EMPTY_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_CPP_EMPTY_H
#define SOURCE_GROUP_SETTINGS_CPP_EMPTY_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithCppStandard.h"
#include "SourceGroupSettingsWithCxxCrossCompilationOptions.h"
@@ -32,4 +36,6 @@ public:
}
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_CPP_EMPTY_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_CXX_CDB_H
#define SOURCE_GROUP_SETTINGS_CXX_CDB_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithCxxCdbPath.h"
#include "SourceGroupSettingsWithCxxPathsAndFlags.h"
@@ -28,4 +32,6 @@ public:
}
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_CXX_CDB_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_CXX_CDB_VS_H
#define SOURCE_GROUP_SETTINGS_CXX_CDB_VS_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "SourceGroupSettingsCxxCdb.h"
class SourceGroupSettingsCxxCdbVs
@@ -9,4 +13,6 @@ class SourceGroupSettingsCxxCdbVs
using SourceGroupSettingsCxxCdb::SourceGroupSettingsCxxCdb;
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_CXX_CDB_VS_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_CXX_CODEBLOCKS_H
#define SOURCE_GROUP_SETTINGS_CXX_CODEBLOCKS_H
#include "language_packages.h"
#if BUILD_CXX_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithCppStandard.h"
#include "SourceGroupSettingsWithCStandard.h"
@@ -32,4 +36,6 @@ public:
}
};
#endif // BUILD_CXX_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_CXX_CODEBLOCKS_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_JAVA_EMPTY_H
#define SOURCE_GROUP_SETTINGS_JAVA_EMPTY_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithClasspath.h"
#include "SourceGroupSettingsWithExcludeFilters.h"
@@ -28,4 +32,6 @@ public:
}
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_JAVA_EMPTY_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_JAVA_GRADLE_H
#define SOURCE_GROUP_SETTINGS_JAVA_GRADLE_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithExcludeFilters.h"
#include "SourceGroupSettingsWithJavaGradle.h"
@@ -26,4 +30,6 @@ public:
}
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_JAVA_GRADLE_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_JAVA_MAVEN_H
#define SOURCE_GROUP_SETTINGS_JAVA_MAVEN_H
#include "language_packages.h"
#if BUILD_JAVA_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithExcludeFilters.h"
#include "SourceGroupSettingsWithJavaMaven.h"
@@ -26,4 +30,6 @@ public:
}
};
#endif // BUILD_JAVA_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_JAVA_MAVEN_H
@@ -1,6 +1,10 @@
#ifndef SOURCE_GROUP_SETTINGS_PYTHON_EMPTY_H
#define SOURCE_GROUP_SETTINGS_PYTHON_EMPTY_H
#include "language_packages.h"
#if BUILD_PYTHON_LANGUAGE_PACKAGE
#include "SourceGroupSettingsWithComponents.h"
#include "SourceGroupSettingsWithExcludeFilters.h"
#include "SourceGroupSettingsWithPythonEnvironmentPath.h"
@@ -26,4 +30,6 @@ public:
}
};
#endif // BUILD_PYTHON_LANGUAGE_PACKAGE
#endif // SOURCE_GROUP_SETTINGS_PYTHON_EMPTY_H
@@ -0,0 +1,73 @@
#ifndef SOURCE_GROUP_SETTINGS_UNLOADABLE_H
#define SOURCE_GROUP_SETTINGS_UNLOADABLE_H
#include "SourceGroupSettings.h"
class SourceGroupSettingsUnloadable : public SourceGroupSettings
{
public:
SourceGroupSettingsUnloadable(const std::string& id, const ProjectSettings* projectSettings)
: SourceGroupSettings(SOURCE_GROUP_UNKNOWN, id, projectSettings)
{
}
std::shared_ptr<SourceGroupSettings> createCopy() const override
{
return std::make_shared<SourceGroupSettingsUnloadable>(*this);
}
void loadSettings(const ConfigManager* config) override
{
const std::string key = s_keyPrefix + getId();
SourceGroupSettings::load(config, key);
setStatus(SOURCE_GROUP_STATUS_DISABLED);
m_content.clear();
std::vector<std::string> unprocessedKeys = { key };
while (!unprocessedKeys.empty())
{
const std::string unprocessedKey = unprocessedKeys.back();
unprocessedKeys.pop_back();
for (const std::string& memberKey : config->getSublevelKeys(unprocessedKey))
{
const std::vector<std::string> values = config->getValuesOrDefaults<std::string>(memberKey, {});
if (!values.empty())
{
m_content[memberKey] = values;
}
else
{
unprocessedKeys.push_back(memberKey);
}
}
}
}
void saveSettings(ConfigManager* config) override
{
for (auto it : m_content)
{
config->setValues(it.first, it.second);
}
}
bool equalsSettings(const SourceGroupSettingsBase* other) override
{
if (!SourceGroupSettings::equals(other))
{
return false;
}
//compare values
return true;
}
private:
std::map<std::string, std::vector<std::string>> m_content;
};
#endif // SOURCE_GROUP_SETTINGS_UNLOADABLE_H