#include "settings/ProjectSettings.h" 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/SourcePaths/SourcePath", filePath); moveRelativePathValues("source/HeaderSearchPaths/HeaderSearchPath", filePath); moveRelativePathValues("source/FrameworkSearchPaths/FrameworkSearchPath", filePath); Settings::save(filePath); } std::vector ProjectSettings::getSourcePaths() const { return getRelativePathValues("source/SourcePaths/SourcePath"); } bool ProjectSettings::setSourcePaths(const std::vector& sourcePaths) { return setPathValues("source/SourcePaths/SourcePath", sourcePaths); } std::vector ProjectSettings::getHeaderSearchPaths() const { return getRelativePathValues("source/HeaderSearchPaths/HeaderSearchPath"); } bool ProjectSettings::setHeaderSearchPaths(const std::vector& headerSearchPaths) { return setPathValues("source/HeaderSearchPaths/HeaderSearchPath", headerSearchPaths); } std::vector ProjectSettings::getFrameworkSearchPaths() const { return getRelativePathValues("source/FrameworkSearchPaths/FrameworkSearchPath"); } bool ProjectSettings::setFrameworkSearchPaths(const std::vector& frameworkSearchPaths) { return setPathValues("source/FrameworkSearchPaths/FrameworkSearchPath", frameworkSearchPaths); } std::vector ProjectSettings::getCompilerFlags() const { std::vector defaultValues; return getValues("source/CompilerFlags/CompilerFlag", defaultValues); } std::vector ProjectSettings::getHeaderExtensions() const { std::vector defaultValues; defaultValues.push_back(".h"); return getValues("source/Extensions/HeaderExtensions", defaultValues); } std::vector ProjectSettings::getSourceExtensions() const { std::vector defaultValues; defaultValues.push_back(".cpp"); return getValues("source/Extensions/SourceExtensions", defaultValues); } bool ProjectSettings::setHeaderExtensions(const std::vector &headerExtensions) { return setValues("source/Extensions/HeaderExtensions", headerExtensions); } bool ProjectSettings::setSourceExtensions(const std::vector &sourceExtensions) { return setValues("source/Extensions/SourceExtensions", sourceExtensions); }