sing-box-tray/build.jai

49 lines
1.4 KiB
Plaintext

#import "Basic";
#import "Compiler";
#import "File";
#import "File_Utilities";
#run {
// Disable output for default workspace immediately
build_options: Build_Options_During_Compile;
build_options.do_output = false;
set_build_options_dc(build_options);
w := compiler_create_workspace("Target Workspace");
if !w return;
options := get_build_options(w);
options.output_executable_name = "sing-box_tray";
// No longer need to copy libcurl.dll since we use native Windows WinINet API.
// options.additional_linker_arguments is a slice, so copy it to a dynamic array, append, and assign back
new_args: [..] string;
new_args.allocator = temp;
for options.additional_linker_arguments {
array_add(*new_args, it);
}
// Set subsystem to Windows so no console window is created/shown.
array_add(*new_args, "/SUBSYSTEM:WINDOWS");
// Route MSVC Windows subsystem entry point to the standard main function.
array_add(*new_args, "/ENTRY:mainCRTStartup");
options.additional_linker_arguments = new_args;
set_build_options(options, w);
compiler_begin_intercept(w);
add_build_file("main.jai", w);
while true {
message := compiler_wait_for_message();
if !message break;
if message.workspace != w continue;
if message.kind == .COMPLETE break;
}
compiler_end_intercept(w);
}