#include "settings/ProjectSettings.h" std::vector ProjectSettings::getDefaultHeaderExtensions() { std::vector defaultValues; defaultValues.push_back(".h"); defaultValues.push_back(".hpp"); return defaultValues; } std::vector ProjectSettings::getDefaultSourceExtensions() { std::vector defaultValues; defaultValues.push_back(".cpp"); defaultValues.push_back(".cxx"); defaultValues.push_back(".cc"); defaultValues.push_back(".c"); return defaultValues; } std::shared_ptr ProjectSettings::s_instance; std::shared_ptr ProjectSettings::getInstance() { if (!s_instance) { s_instance = std::shared_ptr(new ProjectSettings()); } return s_instance; } ProjectSettings::ProjectSettings() { } ProjectSettings::~ProjectSettings() { } void ProjectSettings::save(const FilePath& filePath) { moveRelativePathValues("source/source_paths/source_path", filePath); moveRelativePathValues("source/header_search_paths/header_search_path", filePath); moveRelativePathValues("source/framework_search_paths/framework_search_path", filePath); Settings::save(filePath); } std::string ProjectSettings::getLanguage() const { return getValue("language_settings/language", "C++"); } bool ProjectSettings::setLanguage(const std::string& language) { return setValue("language_settings/language", language); } std::string ProjectSettings::getStandard() const { return getValue("language_settings/standard", "11"); } bool ProjectSettings::setStandard(const std::string& standard) { return setValue("language_settings/standard", standard); } std::vector ProjectSettings::getSourcePaths() const { return getRelativePathValues("source/source_paths/source_path"); } bool ProjectSettings::setSourcePaths(const std::vector& sourcePaths) { return setPathValues("source/source_paths/source_path", sourcePaths); } std::vector ProjectSettings::getHeaderSearchPaths() const { return getRelativePathValues("source/header_search_paths/header_search_path"); } bool ProjectSettings::setHeaderSearchPaths(const std::vector& headerSearchPaths) { return setPathValues("source/header_search_paths/header_search_path", headerSearchPaths); } std::vector ProjectSettings::getFrameworkSearchPaths() const { return getRelativePathValues("source/framework_search_paths/framework_search_path"); } bool ProjectSettings::setFrameworkSearchPaths(const std::vector& frameworkSearchPaths) { return setPathValues("source/framework_search_paths/framework_search_path", frameworkSearchPaths); } std::vector ProjectSettings::getCompilerFlags() const { std::vector defaultValues; return getValues("source/compiler_flags/compiler_flag", defaultValues); } std::vector ProjectSettings::getHeaderExtensions() const { return getValues("source/extensions/header_extensions", getDefaultHeaderExtensions()); } std::vector ProjectSettings::getSourceExtensions() const { return getValues("source/extensions/source_extensions", getDefaultSourceExtensions()); } bool ProjectSettings::setHeaderExtensions(const std::vector &headerExtensions) { return setValues("source/extensions/header_extensions", headerExtensions); } bool ProjectSettings::setSourceExtensions(const std::vector &sourceExtensions) { return setValues("source/extensions/source_extensions", sourceExtensions); } std::string ProjectSettings::getDescription() const { return getValue("info/description", ""); }