Browse Source

orca windows

laytan 1 year ago
parent
commit
08382cb05d
3 changed files with 10 additions and 8 deletions
  1. 1 1
      src/build_settings.cpp
  2. 4 6
      src/linker.cpp
  3. 5 1
      src/main.cpp

+ 1 - 1
src/build_settings.cpp

@@ -1080,7 +1080,7 @@ gb_global TargetMetrics target_orca_wasm32 = {
 	TargetOs_orca,
 	TargetArch_wasm32,
 	4, 4, 8, 16,
-	str_lit("wasm32-freestanding-js"),
+	str_lit("wasm32-wasi-js"),
 };
 
 

+ 4 - 6
src/linker.cpp

@@ -72,12 +72,10 @@ gb_internal i32 linker_stage(LinkerData *gen) {
 
 		gbString extra_orca_flags = gb_string_make(temporary_allocator(), "");
 
-		gbString inputs = gb_string_make(temporary_allocator(), "");		
+		gbString inputs = gb_string_make(temporary_allocator(), "");
 		inputs = gb_string_append_fmt(inputs, "\"%.*s.o\"", LIT(output_filename));
 
 		if (build_context.metrics.os == TargetOs_orca) {
-			// TODO: Orca windows.
-
 			gbString orca_sdk_path = gb_string_make(temporary_allocator(), "");
 			if (!system_exec_command_line_app_output("orca sdk-path", &orca_sdk_path)) {
 				gb_printf_err("executing `orca sdk-path` failed, make sure Orca is installed and added to your path\n");
@@ -95,10 +93,10 @@ gb_internal i32 linker_stage(LinkerData *gen) {
 
 	#if defined(GB_SYSTEM_WINDOWS)
 		result = system_exec_command_line_app("wasm-ld",
-			"\"%.*s\\bin\\wasm-ld\" \"%.*s.o\" -o \"%.*s\" %.*s %.*s %.*s",
+			"\"%.*s\\bin\\wasm-ld\" %s -o \"%.*s\" %.*s %.*s %s",
 			LIT(build_context.ODIN_ROOT),
-			LIT(output_filename), LIT(output_filename), LIT(build_context.link_flags), LIT(build_context.extra_linker_flags),
-			LIT(extra_orca_flags));
+			inputs, LIT(output_filename), LIT(build_context.link_flags), LIT(build_context.extra_linker_flags),
+			extra_orca_flags);
 	#else
 		result = system_exec_command_line_app("wasm-ld",
 			"wasm-ld %s -o \"%.*s\" %.*s %.*s %s",

+ 5 - 1
src/main.cpp

@@ -155,7 +155,11 @@ gb_internal i32 system_exec_command_line_app(char const *name, char const *fmt,
 	return exit_code;
 }
 
-// TODO: windows.
+#if defined(GB_SYSTEM_WINDOWS)
+#define popen _popen
+#define pclose _pclose
+#endif
+
 gb_internal bool system_exec_command_line_app_output(char const *command, gbString *output) {
 	GB_ASSERT(output);