init
This commit is contained in:
33
.focus-config
Normal file
33
.focus-config
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
[6] # Version number. Do not delete.
|
||||||
|
|
||||||
|
[[workspace]]
|
||||||
|
# These directories and files will be scanned when a workspace is opened so that search etc. works.
|
||||||
|
./
|
||||||
|
|
||||||
|
[ignore]
|
||||||
|
.git
|
||||||
|
build_debug
|
||||||
|
.build
|
||||||
|
.DS_Store
|
||||||
|
console3d.dSYM
|
||||||
|
|
||||||
|
[[build commands]]
|
||||||
|
build_working_dir: ./
|
||||||
|
open_panel_on_build: true
|
||||||
|
close_panel_on_success: false
|
||||||
|
clear_build_output_before_running: true
|
||||||
|
error_regex: ^(?P<file>.*):(?P<line>\d+),(?P<col>\d+): (?P<type>Error|Warning|Info|...):* (?P<msg>.*)|^(?P<msg1>.*error LNK.*)
|
||||||
|
auto_jump_to_error: false
|
||||||
|
|
||||||
|
[Debug]
|
||||||
|
build_command: jai build.jai
|
||||||
|
|
||||||
|
[Build Debug Macos]
|
||||||
|
build_command: arch -x86_64 /opt/jai/bin/jai-macos build.jai
|
||||||
|
run_command: build_debug/console3d
|
||||||
|
key_binding: Cmd-Shift-B
|
||||||
|
|
||||||
|
[[settings]]
|
||||||
|
tab_size: 4
|
||||||
|
insert_spaces_when_pressing_tab: true
|
||||||
|
strip_trailing_whitespace_on_save: except_lines_with_cursor # options: all, except_lines_with_cursor, disabled
|
||||||
12
.gitignore
vendored
Normal file
12
.gitignore
vendored
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
.build
|
||||||
|
build_debug
|
||||||
|
build_release
|
||||||
|
.DS_Store
|
||||||
|
|
||||||
|
*.obj
|
||||||
|
*.exe
|
||||||
|
*.pdb
|
||||||
|
*.lib
|
||||||
|
*.rdi
|
||||||
|
*.exp
|
||||||
|
*.bak
|
||||||
71
build.jai
Normal file
71
build.jai
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
DEBUG := true;
|
||||||
|
|
||||||
|
#run build();
|
||||||
|
|
||||||
|
build :: () {
|
||||||
|
w := compiler_create_workspace();
|
||||||
|
if !w {
|
||||||
|
print("Compiler workspace creation failed.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
assert(w != 0);
|
||||||
|
|
||||||
|
options := get_build_options();
|
||||||
|
options.output_executable_name = "console3d";
|
||||||
|
options.minimum_os_version = .{10, 13};
|
||||||
|
args := options.compile_time_command_line;
|
||||||
|
|
||||||
|
build_dir := "build_debug";
|
||||||
|
|
||||||
|
set_build_options_dc(.{do_output=false});
|
||||||
|
set_working_directory(#filepath);
|
||||||
|
|
||||||
|
set_optimization(*options, .DEBUG);
|
||||||
|
|
||||||
|
for arg: args {
|
||||||
|
if arg == {
|
||||||
|
case "release";
|
||||||
|
DEBUG = false;
|
||||||
|
build_dir = "build_release";
|
||||||
|
set_optimization(*options, .VERY_OPTIMIZED);
|
||||||
|
options.llvm_options.enable_split_modules = false;
|
||||||
|
options.array_bounds_check = .ON;
|
||||||
|
options.null_pointer_check = .ON;
|
||||||
|
options.arithmetic_overflow_check = .OFF;
|
||||||
|
case "debug";
|
||||||
|
case "no_output";
|
||||||
|
// useful if you want to compile to show errors, but not generate a build output
|
||||||
|
// which saves compile time
|
||||||
|
options.output_type = .NO_OUTPUT;
|
||||||
|
case;
|
||||||
|
compiler_report(tprint("Command-line argument #%, '%', is invalid. Valid options are: 'debug', 'release', 'no_output'.\n", it_index+1, arg));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
make_directory_if_it_does_not_exist(build_dir);
|
||||||
|
|
||||||
|
options.output_path = build_dir;
|
||||||
|
|
||||||
|
set_build_options(options, w);
|
||||||
|
|
||||||
|
import_path: [..] string;
|
||||||
|
array_add(*import_path, "modules");
|
||||||
|
array_add(*import_path, ..options.import_path);
|
||||||
|
options.import_path = import_path;
|
||||||
|
|
||||||
|
// allows main program to use:
|
||||||
|
// #if DEBUG
|
||||||
|
build_constants := tprint(#string STRING
|
||||||
|
DEBUG :: %;
|
||||||
|
STRING,
|
||||||
|
ifx DEBUG then "true" else "false",
|
||||||
|
);
|
||||||
|
|
||||||
|
add_build_string(build_constants, w);
|
||||||
|
add_build_file(tprint("%src/main.jai", #filepath), w);
|
||||||
|
}
|
||||||
|
|
||||||
|
#import "Compiler";
|
||||||
|
#import "Basic";
|
||||||
|
#import "File";
|
||||||
5
src/main.jai
Normal file
5
src/main.jai
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
main :: () {
|
||||||
|
print("Hello, world!");
|
||||||
|
}
|
||||||
|
|
||||||
|
#import "Basic";
|
||||||
Reference in New Issue
Block a user