|
@ -4,12 +4,15 @@ |
|
|
std::unique_ptr<Project> Project::fromFile(std::string path) { |
|
|
std::unique_ptr<Project> Project::fromFile(std::string path) { |
|
|
auto manifest = cpptoml::parse_file(path); |
|
|
auto manifest = cpptoml::parse_file(path); |
|
|
auto basepath = filesystem::path(path).parent_path().make_absolute(); |
|
|
auto basepath = filesystem::path(path).parent_path().make_absolute(); |
|
|
return Project::fromToml(manifest, basepath); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
auto project = Project::fromToml(manifest, basepath); |
|
|
|
|
|
return project; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
std::unique_ptr<Project> Project::fromToml(std::shared_ptr<cpptoml::table> manifest, |
|
|
std::unique_ptr<Project> Project::fromToml(std::shared_ptr<cpptoml::table> manifest, |
|
|
filesystem::path basepath = filesystem::path(".")) { |
|
|
filesystem::path basepath = filesystem::path(".")) { |
|
|
auto project = Project(); |
|
|
auto project = Project(); |
|
|
|
|
|
project.basepath = basepath; |
|
|
project.name = manifest->get_qualified_as<std::string>("project.name").value_or(""); |
|
|
project.name = manifest->get_qualified_as<std::string>("project.name").value_or(""); |
|
|
project.shader_bundle = std::move(std::make_shared<ShaderBundle>()); |
|
|
project.shader_bundle = std::move(std::make_shared<ShaderBundle>()); |
|
|
|
|
|
|
|
|