aboutsummaryrefslogtreecommitdiff
path: root/src/build_settings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/build_settings.cpp')
-rw-r--r--src/build_settings.cpp11
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));