Browse Source

Merge branch 'master' of https://github.com/odin-lang/Odin

gingerBill 7 years ago
parent
commit
1e01085ef7
5 changed files with 10 additions and 9 deletions
  1. 1 1
      Makefile
  2. 3 2
      core/os/os_osx.odin
  3. 1 1
      src/common.cpp
  4. 3 3
      src/main.cpp
  5. 2 2
      src/timings.cpp

+ 1 - 1
Makefile

@@ -12,7 +12,7 @@ endif
 all: debug demo
 
 demo:
-	./odin run examples/demo.odin
+	./odin run examples/demo
 
 debug:
 	$(CC) src/main.cpp $(DISABLED_WARNINGS) $(CFLAGS) -g $(LDFLAGS) -o odin

+ 3 - 2
core/os/os_osx.odin

@@ -3,6 +3,7 @@ package os
 foreign import dl   "system:dl"
 foreign import libc "system:c"
 
+import "core:runtime"
 import "core:strings"
 
 OS :: "osx";
@@ -287,8 +288,8 @@ dlerror :: proc() -> string {
 
 
 _alloc_command_line_arguments :: proc() -> []string {
-	args := make([]string, len(__args__));
-	for arg, i in __args__ {
+	args := make([]string, len(runtime.args__));
+	for arg, i in runtime.args__ {
 		args[i] = string(arg);
 	}
 	return args;

+ 1 - 1
src/common.cpp

@@ -822,7 +822,7 @@ ReadDirectoryError read_directory(String path, Array<FileInfo> *fi) {
 
 	return ReadDirectory_None;
 }
-#elif defined(GB_SYSTEM_LINUX)
+#elif defined(GB_SYSTEM_LINUX) || defined(GB_SYSTEM_OSX)
 
 #include <dirent.h>
 

+ 3 - 3
src/main.cpp

@@ -992,12 +992,12 @@ int main(int arg_count, char **arg_ptr) {
 				//                the system library paths for the library file).
 				if (string_ends_with(lib, str_lit(".a"))) {
 					// static libs, absolute full path relative to the file in which the lib was imported from
-					lib_str = gb_string_append_fmt(lib_str, " -l:%.*s ", LIT(lib));
+					lib_str = gb_string_append_fmt(lib_str, " -l:\"%.*s\" ", LIT(lib));
 				} else if (string_ends_with(lib, str_lit(".so"))) {
 					// dynamic lib, relative path to executable
 					// NOTE(vassvik): it is the user's responsibility to make sure the shared library files are visible
 					//                at runtimeto the executable
-					lib_str = gb_string_append_fmt(lib_str, " -l:%s/%.*s ", cwd, LIT(lib));
+					lib_str = gb_string_append_fmt(lib_str, " -l:\"%s/%.*s\" ", cwd, LIT(lib));
 				} else {
 					// dynamic or static system lib, just link regularly searching system library paths
 					lib_str = gb_string_append_fmt(lib_str, " -l%.*s ", LIT(lib));
@@ -1085,7 +1085,7 @@ int main(int arg_count, char **arg_ptr) {
 		remove_temp_files(output_base);
 
 		if (run_output) {
-			system_exec_command_line_app("odin run", false, "%.*s", LIT(output_base));
+			system_exec_command_line_app("odin run", false, "\"%.*s\"", LIT(output_base));
 		}
 	#endif
 #endif

+ 2 - 2
src/timings.cpp

@@ -51,7 +51,7 @@ u64 osx_time_stamp__freq(void) {
 
 u64 unix_time_stamp_time_now(void) {
 	struct timespec ts;
-	clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &ts);
+	clock_gettime(CLOCK_MONOTONIC, &ts);
 
 	return (ts.tv_sec * 1000000000) + ts.tv_nsec;
 }
@@ -61,7 +61,7 @@ u64 unix_time_stamp__freq(void) {
 
 	if (freq == 0) {
 		struct timespec ts;
-		clock_getres(CLOCK_PROCESS_CPUTIME_ID, &ts);
+		clock_getres(CLOCK_MONOTONIC, &ts);
 		freq = cast(u64) ((1.0 / ts.tv_nsec) * 1000000000.0);
 	}