@@ -25,47 +25,82 @@ fn main() {
2525 let vitasdk_include_path = vitasdk_path. join ( "arm-vita-eabi" ) . join ( "include" ) ;
2626 let vitasdk_lib_path = vitasdk_path. join ( "arm-vita-eabi" ) . join ( "lib" ) ;
2727
28- let bindings_file = out_path. join ( "imgui_bindings.rs" ) ;
29-
30- const IMGUI_HEADERS : [ & str ; 3 ] = [ "imgui.h" , "imgui_internal.h" , "imgui_impl_vitagl.h" ] ;
31- let mut bindings = bindgen:: Builder :: default ( )
32- . clang_args ( [ "-I" , vitasdk_include_path. to_str ( ) . unwrap ( ) ] )
33- . clang_args ( [ "-x" , "c++" ] )
34- . clang_args ( [ "-std=c++17" ] )
35- . clang_args ( [ "-target" , "armv7a-none-eabihf" ] )
36- . formatter ( Formatter :: Prettyplease ) ;
37- for header in IMGUI_HEADERS {
38- let header_path = vitasdk_include_path. join ( header) ;
39- println ! ( "cargo:rerun-if-changed={header_path:?}" ) ;
40- bindings = bindings. header ( header_path. to_str ( ) . unwrap ( ) ) ;
28+ let kubridge_path = PathBuf :: from ( "kubridge" ) ;
29+
30+ {
31+ let bindings_file = out_path. join ( "imgui_bindings.rs" ) ;
32+
33+ const IMGUI_HEADERS : [ & str ; 3 ] = [ "imgui.h" , "imgui_internal.h" , "imgui_impl_vitagl.h" ] ;
34+ let mut bindings = bindgen:: Builder :: default ( )
35+ . clang_args ( [ "-I" , vitasdk_include_path. to_str ( ) . unwrap ( ) ] )
36+ . clang_args ( [ "-x" , "c++" ] )
37+ . clang_args ( [ "-std=c++17" ] )
38+ . clang_args ( [ "-target" , "armv7a-none-eabihf" ] )
39+ . formatter ( Formatter :: Prettyplease ) ;
40+ for header in IMGUI_HEADERS {
41+ let header_path = vitasdk_include_path. join ( header) ;
42+ println ! ( "cargo:rerun-if-changed={header_path:?}" ) ;
43+ bindings = bindings. header ( header_path. to_str ( ) . unwrap ( ) ) ;
44+ }
45+ bindings. rust_target ( bindgen:: RustTarget :: Nightly ) . generate ( ) . unwrap ( ) . write_to_file ( bindings_file) . unwrap ( ) ;
46+
47+ println ! ( "cargo:rustc-link-search=native={vitasdk_lib_path:?}" ) ;
48+ println ! ( "cargo:rustc-link-lib=static=imgui" ) ;
49+ }
50+
51+ {
52+ let bindings_file = out_path. join ( "kubridge_bindings.rs" ) ;
53+
54+ const KUBRIDGE_HEADERS : [ & str ; 1 ] = [ "kubridge.h" ] ;
55+ let mut bindings = bindgen:: Builder :: default ( )
56+ . clang_args ( [ "-I" , vitasdk_include_path. to_str ( ) . unwrap ( ) ] )
57+ . clang_args ( [ "-I" , kubridge_path. to_str ( ) . unwrap ( ) ] )
58+ . clang_args ( [ "-x" , "c++" ] )
59+ . clang_args ( [ "-std=c++17" ] )
60+ . clang_args ( [ "-target" , "armv7a-none-eabihf" ] )
61+ . formatter ( Formatter :: Prettyplease ) ;
62+ for header in KUBRIDGE_HEADERS {
63+ let header_path = kubridge_path. join ( header) ;
64+ println ! ( "cargo:rerun-if-changed={header_path:?}" ) ;
65+ bindings = bindings. header ( header_path. to_str ( ) . unwrap ( ) ) ;
66+ }
67+ bindings. rust_target ( bindgen:: RustTarget :: Nightly ) . generate ( ) . unwrap ( ) . write_to_file ( bindings_file) . unwrap ( ) ;
68+ }
69+
70+ {
71+ let vita_gl_path = PathBuf :: from ( "vitaGL" ) ;
72+ let vita_gl_lib_path = vita_gl_path. join ( "libvitaGL.a" ) ;
73+ let vita_gl_lib_new_path = vita_gl_path. join ( "libvitaGL_dsvita.a" ) ;
74+
75+ Command :: new ( "make" )
76+ . current_dir ( "vitaGL" )
77+ . args ( [ "-j" , & num_jobs] )
78+ . envs ( [
79+ ( "HAVE_UNFLIPPED_FBOS" , "1" ) ,
80+ ( "NO_TEX_COMBINER" , "1" ) ,
81+ ( "NO_DEBUG" , "1" ) ,
82+ ( "SHADER_COMPILER_SPEEDHACK" , "1" ) ,
83+ ( "MATH_SPEEDHACK" , "1" ) ,
84+ ( "HAVE_SHADER_CACHE" , "1" ) ,
85+ // ("HAVE_SHARK_LOG", "1"),
86+ // ("LOG_ERRORS", "1"),
87+ // ("HAVE_RAZOR", "1"),
88+ ] )
89+ . status ( )
90+ . unwrap ( ) ;
91+
92+ fs:: rename ( vita_gl_lib_path, vita_gl_lib_new_path) . unwrap ( ) ;
93+ println ! ( "cargo:rustc-link-search=native={}" , fs:: canonicalize( vita_gl_path) . unwrap( ) . to_str( ) . unwrap( ) ) ;
94+ println ! ( "cargo:rustc-link-lib=static=vitaGL_dsvita" ) ;
95+ }
96+
97+ {
98+ let kubridge_dst_path = cmake:: Config :: new ( & kubridge_path) . build_target ( "libkubridge_stub.a" ) . build ( ) . join ( "build" ) ;
99+ let kubridge_lib_path = kubridge_dst_path. join ( "libkubridge_stub.a" ) ;
100+ let kubridge_lib_new_path = kubridge_dst_path. join ( "libkubridge_stub_dsvita.a" ) ;
101+ fs:: rename ( kubridge_lib_path, kubridge_lib_new_path) . unwrap ( ) ;
102+
103+ println ! ( "cargo:rustc-link-search=native={}" , fs:: canonicalize( kubridge_dst_path) . unwrap( ) . to_str( ) . unwrap( ) ) ;
104+ println ! ( "cargo:rustc-link-lib=static=kubridge_stub_dsvita" ) ;
41105 }
42- bindings. rust_target ( bindgen:: RustTarget :: Nightly ) . generate ( ) . unwrap ( ) . write_to_file ( bindings_file) . unwrap ( ) ;
43-
44- println ! ( "cargo:rustc-link-search=native={vitasdk_lib_path:?}" ) ;
45- println ! ( "cargo:rustc-link-lib=static=imgui" ) ;
46-
47- let vita_gl_path = PathBuf :: from ( "vitaGL" ) ;
48- let vita_gl_lib_path = vita_gl_path. join ( "libvitaGL.a" ) ;
49- let vita_gl_lib_new_path = vita_gl_path. join ( "libvitaGL_dsvita.a" ) ;
50-
51- Command :: new ( "make" )
52- . current_dir ( "vitaGL" )
53- . args ( [ "-j" , & num_jobs] )
54- . envs ( [
55- ( "HAVE_UNFLIPPED_FBOS" , "1" ) ,
56- ( "NO_TEX_COMBINER" , "1" ) ,
57- ( "NO_DEBUG" , "1" ) ,
58- ( "SHADER_COMPILER_SPEEDHACK" , "1" ) ,
59- ( "MATH_SPEEDHACK" , "1" ) ,
60- ( "HAVE_SHADER_CACHE" , "1" ) ,
61- // ("HAVE_SHARK_LOG", "1"),
62- // ("LOG_ERRORS", "1"),
63- // ("HAVE_RAZOR", "1"),
64- ] )
65- . status ( )
66- . unwrap ( ) ;
67-
68- fs:: rename ( vita_gl_lib_path, vita_gl_lib_new_path) . unwrap ( ) ;
69- println ! ( "cargo:rustc-link-search=native={}" , fs:: canonicalize( vita_gl_path) . unwrap( ) . to_str( ) . unwrap( ) ) ;
70- println ! ( "cargo:rustc-link-lib=static=vitaGL_dsvita" ) ;
71106}
0 commit comments