diff options
Diffstat (limited to 'src/build_settings.cpp')
| -rw-r--r-- | src/build_settings.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/build_settings.cpp b/src/build_settings.cpp index faa8ad2b6..3e2d11101 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -2011,15 +2011,20 @@ gb_internal bool init_build_paths(String init_filename) { } } + String output_file = path_to_string(ha, bc->build_paths[BuildPath_Output]); + defer (gb_free(ha, output_file.text)); + // Check if output path is a directory. if (path_is_directory(bc->build_paths[BuildPath_Output])) { - String output_file = path_to_string(ha, bc->build_paths[BuildPath_Output]); - defer (gb_free(ha, output_file.text)); gb_printf_err("Output path %.*s is a directory.\n", LIT(output_file)); return false; } - if (!write_directory(bc->build_paths[BuildPath_Output].basename)) { + gbFile output_file_test; + gbFileError output_test_err = gb_file_open_mode(&output_file_test, gbFileMode_Append | gbFileMode_Rw, (const char*)output_file.text); + defer (gb_file_close(&output_file_test)); + + if (output_test_err != 0) { String output_file = path_to_string(ha, bc->build_paths[BuildPath_Output]); defer (gb_free(ha, output_file.text)); gb_printf_err("No write permissions for output path: %.*s\n", LIT(output_file)); |