Set binary output based on extension, fixed optional value check

This commit is contained in:
Jesse Vander Does 2019-05-13 21:27:45 -07:00
parent c450ed53a1
commit 10439bd40a
1 changed files with 10 additions and 3 deletions

View File

@ -291,20 +291,27 @@ int main(int argc, char* argv[]) {
// the path of the actual .glb or .gltf file // the path of the actual .glb or .gltf file
std::string modelPath; std::string modelPath;
const auto& suffix = FileUtils::GetFileSuffix(outputPath); const auto& suffix = FileUtils::GetFileSuffix(outputPath);
if (gltfOptions.outputBinary || suffix.value() == "glb") {
// set to binary output to true if extension is glb
if (suffix.has_value() && suffix.value() == "glb") {
gltfOptions.outputBinary = true;
}
if (gltfOptions.outputBinary) {
// add .glb to output path, unless it already ends in exactly that // add .glb to output path, unless it already ends in exactly that
if (suffix.has_value() && suffix.value() == "glb") { if (suffix.has_value() && suffix.value() == "glb") {
modelPath = outputPath; modelPath = outputPath;
} else { } else {
modelPath = outputPath + ".glb"; modelPath = outputPath + ".glb";
} }
} else if(suffix.value() == "gltf") { // if the extension is gltf set the output folder to the parent directory
} else if(suffix.has_value() && suffix.value() == "gltf") {
modelPath = outputPath; modelPath = outputPath;
outputFolder = FileUtils::getFolder(outputPath) + "/"; outputFolder = FileUtils::getFolder(outputPath) + "/";
} else { } else {
// in gltf mode, we create a folder and write into that // in gltf mode, we create a folder and write into that
outputFolder = fmt::format("{}_out/", outputPath.c_str()); outputFolder = fmt::format("{}_out/", outputPath.c_str());
modelPath = outputFolder + FileUtils::GetFileName(outputPath) + ".gltf"; modelPath = outputFolder + FileUtils::GetFileName(outputPath) + ".gltf";
} }
if (!FileUtils::CreatePath(modelPath.c_str())) { if (!FileUtils::CreatePath(modelPath.c_str())) {
fmt::fprintf(stderr, "ERROR: Failed to create folder: %s'\n", outputFolder.c_str()); fmt::fprintf(stderr, "ERROR: Failed to create folder: %s'\n", outputFolder.c_str());