@@ -2,82 +2,92 @@ use std::env;
22use std:: path:: PathBuf ;
33
44fn main ( ) {
5- napi_build:: setup ( ) ;
5+ napi_build:: setup ( ) ;
66
7- let manifest_dir = PathBuf :: from ( env:: var ( "CARGO_MANIFEST_DIR" ) . expect ( "CARGO_MANIFEST_DIR" ) ) ;
8- let vendor = manifest_dir. join ( "vendor" ) . join ( "zireael" ) ;
9- let include_dir = vendor. join ( "include" ) ;
10- let src_dir = vendor. join ( "src" ) ;
7+ let manifest_dir = PathBuf :: from ( env:: var ( "CARGO_MANIFEST_DIR" ) . expect ( "CARGO_MANIFEST_DIR" ) ) ;
8+ let vendor = manifest_dir. join ( "vendor" ) . join ( "zireael" ) ;
9+ let include_dir = vendor. join ( "include" ) ;
10+ let src_dir = vendor. join ( "src" ) ;
1111
12- let mut build = cc:: Build :: new ( ) ;
13- build. include ( & include_dir) ;
14- build. include ( & src_dir) ;
15- build. warnings ( false ) ;
12+ let mut build = cc:: Build :: new ( ) ;
13+ build. include ( & include_dir) ;
14+ build. include ( & src_dir) ;
15+ build. warnings ( false ) ;
1616
17- // The engine assumes a C99-or-newer compiler; C11 is required for atomics on MSVC.
18- if build. get_compiler ( ) . is_like_msvc ( ) {
19- build. flag_if_supported ( "/std:c11" ) ;
20- build. flag_if_supported ( "/experimental:c11atomics" ) ;
21- } else {
22- build. flag_if_supported ( "-std=c11" ) ;
23- }
17+ // The engine assumes a C99-or-newer compiler; C11 is required for atomics on MSVC.
18+ if build. get_compiler ( ) . is_like_msvc ( ) {
19+ build. flag_if_supported ( "/std:c11" ) ;
20+ build. flag_if_supported ( "/experimental:c11atomics" ) ;
21+ } else {
22+ build. flag_if_supported ( "-std=c11" ) ;
23+ }
2424
25- // Core + unicode + util.
26- build. file ( src_dir. join ( "core" ) . join ( "zr_engine.c" ) ) ;
27- build. file ( src_dir. join ( "core" ) . join ( "zr_framebuffer.c" ) ) ;
28- build. file ( src_dir. join ( "core" ) . join ( "zr_drawlist.c" ) ) ;
29- build. file ( src_dir. join ( "core" ) . join ( "zr_event_pack.c" ) ) ;
30- build. file ( src_dir. join ( "core" ) . join ( "zr_event_queue.c" ) ) ;
31- build. file ( src_dir. join ( "core" ) . join ( "zr_metrics.c" ) ) ;
32- build. file ( src_dir. join ( "core" ) . join ( "zr_input_parser.c" ) ) ;
33- build. file ( src_dir. join ( "core" ) . join ( "zr_damage.c" ) ) ;
34- build. file ( src_dir. join ( "core" ) . join ( "zr_config.c" ) ) ;
35- build. file ( src_dir. join ( "core" ) . join ( "zr_base64.c" ) ) ;
36- build. file ( src_dir. join ( "core" ) . join ( "zr_blit.c" ) ) ;
37- build. file ( src_dir. join ( "core" ) . join ( "zr_blit_ascii.c" ) ) ;
38- build. file ( src_dir. join ( "core" ) . join ( "zr_blit_braille.c" ) ) ;
39- build. file ( src_dir. join ( "core" ) . join ( "zr_blit_halfblock.c" ) ) ;
40- build. file ( src_dir. join ( "core" ) . join ( "zr_blit_quadrant.c" ) ) ;
41- build. file ( src_dir. join ( "core" ) . join ( "zr_blit_sextant.c" ) ) ;
42- build. file ( src_dir. join ( "core" ) . join ( "zr_debug_overlay.c" ) ) ;
43- build. file ( src_dir. join ( "core" ) . join ( "zr_debug_trace.c" ) ) ;
44- build. file ( src_dir. join ( "core" ) . join ( "zr_detect.c" ) ) ;
45- build. file ( src_dir. join ( "core" ) . join ( "zr_diff.c" ) ) ;
46- build. file ( src_dir. join ( "core" ) . join ( "zr_placeholder.c" ) ) ;
47- build. file ( src_dir. join ( "core" ) . join ( "zr_image.c" ) ) ;
48- build. file ( src_dir. join ( "core" ) . join ( "zr_image_iterm2.c" ) ) ;
49- build. file ( src_dir. join ( "core" ) . join ( "zr_image_kitty.c" ) ) ;
50- build. file ( src_dir. join ( "core" ) . join ( "zr_image_sixel.c" ) ) ;
25+ // Core + unicode + util.
26+ build. file ( src_dir. join ( "core" ) . join ( "zr_engine.c" ) ) ;
27+ build. file ( src_dir. join ( "core" ) . join ( "zr_framebuffer.c" ) ) ;
28+ build. file ( src_dir. join ( "core" ) . join ( "zr_drawlist.c" ) ) ;
29+ build. file ( src_dir. join ( "core" ) . join ( "zr_event_pack.c" ) ) ;
30+ build. file ( src_dir. join ( "core" ) . join ( "zr_event_queue.c" ) ) ;
31+ build. file ( src_dir. join ( "core" ) . join ( "zr_metrics.c" ) ) ;
32+ build. file ( src_dir. join ( "core" ) . join ( "zr_input_parser.c" ) ) ;
33+ build. file ( src_dir. join ( "core" ) . join ( "zr_damage.c" ) ) ;
34+ build. file ( src_dir. join ( "core" ) . join ( "zr_config.c" ) ) ;
35+ build. file ( src_dir. join ( "core" ) . join ( "zr_base64.c" ) ) ;
36+ build. file ( src_dir. join ( "core" ) . join ( "zr_blit.c" ) ) ;
37+ build. file ( src_dir. join ( "core" ) . join ( "zr_blit_ascii.c" ) ) ;
38+ build. file ( src_dir. join ( "core" ) . join ( "zr_blit_braille.c" ) ) ;
39+ build. file ( src_dir. join ( "core" ) . join ( "zr_blit_halfblock.c" ) ) ;
40+ build. file ( src_dir. join ( "core" ) . join ( "zr_blit_quadrant.c" ) ) ;
41+ build. file ( src_dir. join ( "core" ) . join ( "zr_blit_sextant.c" ) ) ;
42+ build. file ( src_dir. join ( "core" ) . join ( "zr_debug_overlay.c" ) ) ;
43+ build. file ( src_dir. join ( "core" ) . join ( "zr_debug_trace.c" ) ) ;
44+ build. file ( src_dir. join ( "core" ) . join ( "zr_detect.c" ) ) ;
45+ build. file ( src_dir. join ( "core" ) . join ( "zr_diff.c" ) ) ;
46+ build. file ( src_dir. join ( "core" ) . join ( "zr_placeholder.c" ) ) ;
47+ build. file ( src_dir. join ( "core" ) . join ( "zr_image.c" ) ) ;
48+ build. file ( src_dir. join ( "core" ) . join ( "zr_image_iterm2.c" ) ) ;
49+ build. file ( src_dir. join ( "core" ) . join ( "zr_image_kitty.c" ) ) ;
50+ build. file ( src_dir. join ( "core" ) . join ( "zr_image_sixel.c" ) ) ;
5151
52- build. file ( src_dir. join ( "unicode" ) . join ( "zr_width.c" ) ) ;
53- build. file ( src_dir. join ( "unicode" ) . join ( "zr_unicode_data.c" ) ) ;
54- build. file ( src_dir. join ( "unicode" ) . join ( "zr_utf8.c" ) ) ;
55- build. file ( src_dir. join ( "unicode" ) . join ( "zr_grapheme.c" ) ) ;
56- build. file ( src_dir. join ( "unicode" ) . join ( "zr_wrap.c" ) ) ;
52+ build. file ( src_dir. join ( "unicode" ) . join ( "zr_width.c" ) ) ;
53+ build. file ( src_dir. join ( "unicode" ) . join ( "zr_unicode_data.c" ) ) ;
54+ build. file ( src_dir. join ( "unicode" ) . join ( "zr_utf8.c" ) ) ;
55+ build. file ( src_dir. join ( "unicode" ) . join ( "zr_grapheme.c" ) ) ;
56+ build. file ( src_dir. join ( "unicode" ) . join ( "zr_wrap.c" ) ) ;
5757
58- build. file ( src_dir. join ( "util" ) . join ( "zr_arena.c" ) ) ;
59- build. file ( src_dir. join ( "util" ) . join ( "zr_caps.c" ) ) ;
60- build. file ( src_dir. join ( "util" ) . join ( "zr_ring.c" ) ) ;
61- build. file ( src_dir. join ( "util" ) . join ( "zr_log.c" ) ) ;
62- build. file ( src_dir. join ( "util" ) . join ( "zr_assert.c" ) ) ;
63- build. file ( src_dir. join ( "util" ) . join ( "zr_string_builder.c" ) ) ;
64- build. file ( src_dir. join ( "util" ) . join ( "zr_vec.c" ) ) ;
58+ build. file ( src_dir. join ( "util" ) . join ( "zr_arena.c" ) ) ;
59+ build. file ( src_dir. join ( "util" ) . join ( "zr_caps.c" ) ) ;
60+ build. file ( src_dir. join ( "util" ) . join ( "zr_ring.c" ) ) ;
61+ build. file ( src_dir. join ( "util" ) . join ( "zr_log.c" ) ) ;
62+ build. file ( src_dir. join ( "util" ) . join ( "zr_assert.c" ) ) ;
63+ build. file ( src_dir. join ( "util" ) . join ( "zr_string_builder.c" ) ) ;
64+ build. file ( src_dir. join ( "util" ) . join ( "zr_vec.c" ) ) ;
6565
66- // Platform selection + backend.
67- build. file ( src_dir. join ( "platform" ) . join ( "zr_platform_select.c" ) ) ;
68- if env:: var ( "CARGO_CFG_TARGET_OS" ) . as_deref ( ) == Ok ( "windows" ) {
69- build. file ( src_dir. join ( "platform" ) . join ( "win32" ) . join ( "zr_plat_win32.c" ) ) ;
70- println ! ( "cargo:rustc-link-lib=dylib=advapi32" ) ;
71- println ! ( "cargo:rustc-link-lib=dylib=kernel32" ) ;
72- println ! ( "cargo:rustc-link-lib=dylib=user32" ) ;
73- } else {
74- build. file ( src_dir. join ( "platform" ) . join ( "posix" ) . join ( "zr_plat_posix.c" ) ) ;
75- }
66+ // Platform selection + backend.
67+ build. file ( src_dir. join ( "platform" ) . join ( "zr_platform_select.c" ) ) ;
68+ if env:: var ( "CARGO_CFG_TARGET_OS" ) . as_deref ( ) == Ok ( "windows" ) {
69+ build. file (
70+ src_dir
71+ . join ( "platform" )
72+ . join ( "win32" )
73+ . join ( "zr_plat_win32.c" ) ,
74+ ) ;
75+ println ! ( "cargo:rustc-link-lib=dylib=advapi32" ) ;
76+ println ! ( "cargo:rustc-link-lib=dylib=kernel32" ) ;
77+ println ! ( "cargo:rustc-link-lib=dylib=user32" ) ;
78+ } else {
79+ build. file (
80+ src_dir
81+ . join ( "platform" )
82+ . join ( "posix" )
83+ . join ( "zr_plat_posix.c" ) ,
84+ ) ;
85+ }
7686
77- build. compile ( "zireael_core" ) ;
87+ build. compile ( "zireael_core" ) ;
7888
79- // Keep rebuilds deterministic when vendored sources change.
80- println ! ( "cargo:rerun-if-changed=vendor/VENDOR_COMMIT.txt" ) ;
81- println ! ( "cargo:rerun-if-changed=vendor/zireael/include" ) ;
82- println ! ( "cargo:rerun-if-changed=vendor/zireael/src" ) ;
89+ // Keep rebuilds deterministic when vendored sources change.
90+ println ! ( "cargo:rerun-if-changed=vendor/VENDOR_COMMIT.txt" ) ;
91+ println ! ( "cargo:rerun-if-changed=vendor/zireael/include" ) ;
92+ println ! ( "cargo:rerun-if-changed=vendor/zireael/src" ) ;
8393}
0 commit comments