From 71d129a7093a54d1e2b6a0fb89b2e4dd514f88e3 Mon Sep 17 00:00:00 2001 From: castano Date: Thu, 14 Nov 2019 00:39:45 -0800 Subject: Add support for running odin through a symlink. Use realpath when obtaining root dir. --- src/build_settings.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/build_settings.cpp') diff --git a/src/build_settings.cpp b/src/build_settings.cpp index 1f259205a..c02665215 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -357,6 +357,8 @@ String odin_root_dir(void) { #include +String path_to_fullpath(gbAllocator a, String s); + String odin_root_dir(void) { String path = global_module_path; isize len, i; @@ -390,7 +392,8 @@ String odin_root_dir(void) { text = gb_alloc_array(string_buffer_allocator, u8, len + 1); gb_memmove(text, &path_buf[0], len); - path = make_string(text, len); + path = path_to_fullpath(heap_allocator(), make_string(text, len)); + for (i = path.len-1; i >= 0; i--) { u8 c = path[i]; if (c == '/' || c == '\\') { @@ -451,7 +454,7 @@ String odin_root_dir(void) { gb_memmove(text, &path_buf[0], len); - path = make_string(text, len); + path = path_to_fullpath(heap_allocator(), make_string(text, len)); for (i = path.len-1; i >= 0; i--) { u8 c = path[i]; if (c == '/' || c == '\\') { -- cgit v1.2.3