@@ -16,7 +16,8 @@ fn main() {
16
16
File :: create ( build_profile_name_file) . unwrap ( ) . write_all ( build_profile_name. as_bytes ( ) ) . unwrap ( ) ;
17
17
18
18
let target = env:: var ( "TARGET" ) . unwrap ( ) ;
19
- if target != "armv7-sony-vita-newlibeabihf" {
19
+ let is_target_vita = target == "armv7-sony-vita-newlibeabihf" ;
20
+ if !is_target_vita {
20
21
println ! ( "cargo:rerun-if-env-changed=SYSROOT" ) ;
21
22
if let Ok ( sysroot) = env:: var ( "SYSROOT" ) {
22
23
println ! ( "cargo:rustc-link-arg=--sysroot={sysroot}" ) ;
@@ -33,35 +34,46 @@ fn main() {
33
34
println ! ( "cargo:rerun-if-env-changed=VITASDK" ) ;
34
35
35
36
{
36
- let vixl_flags: & [ & str ] = & [
37
- "-Wall" ,
38
- "-fdiagnostics-show-option" ,
39
- "-Wextra" ,
40
- "-Wredundant-decls" ,
41
- "-pedantic" ,
42
- "-Wwrite-strings" ,
43
- "-Wunused" ,
44
- "-Wshadow" ,
45
- "-Wno-missing-noreturn" ,
46
- "-DVIXL_CODE_BUFFER_MALLOC=1" ,
47
- "-DVIXL_INCLUDE_TARGET_A32=1" ,
48
- "-DVIXL_INCLUDE_TARGET_T32=1" ,
49
- if build_profile_name == "release" { "" } else { "-DVIXL_DEBUG=1" } ,
50
- "-std=c++17" ,
51
- "--target=armv7-unknown-linux-gnueabihf" ,
52
- if let Ok ( vitasdk_path) = & vitasdk_path {
53
- & format ! ( "--sysroot={}" , vitasdk_path. join( "arm-vita-eabi" ) . to_str( ) . unwrap( ) )
54
- } else {
55
- ""
56
- } ,
37
+ let mut vixl_flags = vec ! [
38
+ "-Wall" . to_string( ) ,
39
+ "-fdiagnostics-show-option" . to_string( ) ,
40
+ "-Wextra" . to_string( ) ,
41
+ "-Wredundant-decls" . to_string( ) ,
42
+ "-pedantic" . to_string( ) ,
43
+ "-Wwrite-strings" . to_string( ) ,
44
+ "-Wunused" . to_string( ) ,
45
+ "-Wshadow" . to_string( ) ,
46
+ "-Wno-missing-noreturn" . to_string( ) ,
47
+ "-DVIXL_CODE_BUFFER_MALLOC=1" . to_string( ) ,
48
+ "-DVIXL_INCLUDE_TARGET_A32=1" . to_string( ) ,
49
+ "-DVIXL_INCLUDE_TARGET_T32=1" . to_string( ) ,
50
+ "-std=c++17" . to_string( ) ,
57
51
] ;
52
+ if build_profile_name != "release" {
53
+ vixl_flags. push ( "-DVIXL_DEBUG=1" . to_string ( ) ) ;
54
+ }
55
+ if !is_target_vita {
56
+ vixl_flags. push ( "--target=armv7-unknown-linux-gnueabihf" . to_string ( ) ) ;
57
+ }
58
+ if let Ok ( vitasdk_path) = & vitasdk_path {
59
+ vixl_flags. push ( format ! ( "--sysroot={}" , vitasdk_path. join( "arm-vita-eabi" ) . to_str( ) . unwrap( ) ) ) ;
60
+ }
58
61
59
62
let vixl_path = Path :: new ( "vixl" ) ;
60
63
println ! ( "cargo:rerun-if-changed={}" , vixl_path. to_str( ) . unwrap( ) ) ;
61
64
62
65
let create_vixl_build = |src_files : & [ & str ] | {
63
66
let mut vixl_build = cc:: Build :: new ( ) ;
64
- vixl_build. include ( vixl_path. join ( "src" ) ) . compiler ( "clang" ) . cpp ( true ) ;
67
+ vixl_build. include ( vixl_path. join ( "src" ) ) . cpp ( true ) ;
68
+ if is_target_vita {
69
+ vixl_build
70
+ . compiler ( vitasdk_path. as_ref ( ) . unwrap ( ) . join ( "bin" ) . join ( "arm-vita-eabi-g++" ) )
71
+ . archiver ( vitasdk_path. as_ref ( ) . unwrap ( ) . join ( "bin" ) . join ( "arm-vita-eabi-gcc-ar" ) )
72
+ . ranlib ( vitasdk_path. as_ref ( ) . unwrap ( ) . join ( "bin" ) . join ( "arm-vita-eabi-gcc-ranlib" ) )
73
+ . pic ( false ) ;
74
+ } else {
75
+ vixl_build. compiler ( "clang++" ) ;
76
+ }
65
77
66
78
if let Ok ( vitasdk_path) = & vitasdk_path {
67
79
let cpp_include_path = vitasdk_path. join ( "arm-vita-eabi" ) . join ( "include/c++" ) ;
@@ -72,7 +84,7 @@ fn main() {
72
84
vixl_build. include ( cpp_include_path. to_str ( ) . unwrap ( ) ) . include ( cpp_include_path. join ( "arm-vita-eabi" ) . to_str ( ) . unwrap ( ) ) ;
73
85
}
74
86
75
- for flag in vixl_flags {
87
+ for flag in & vixl_flags {
76
88
vixl_build. flag ( flag) ;
77
89
}
78
90
@@ -181,11 +193,12 @@ fn main() {
181
193
let mut bindings = bindgen:: Builder :: default ( )
182
194
. clang_args ( [ "-x" , "c++" ] )
183
195
. clang_args ( [ "-I" , vixl_path. join ( "src" ) . to_str ( ) . unwrap ( ) ] )
196
+ . clang_args ( [ "-target" , "armv7-unknown-linux-gnueabihf" ] )
184
197
. formatter ( Formatter :: Prettyplease )
185
198
. header ( vixl_bindings_header_path. to_str ( ) . unwrap ( ) ) ;
186
199
187
- for flag in vixl_flags {
188
- bindings = bindings. clang_arg ( * flag) ;
200
+ for flag in & vixl_flags {
201
+ bindings = bindings. clang_arg ( flag) ;
189
202
}
190
203
191
204
bindings. rust_target ( bindgen:: RustTarget :: nightly ( ) ) . generate ( ) . unwrap ( ) . write_to_file ( bindings_file) . unwrap ( ) ;
@@ -378,7 +391,7 @@ fn main() {
378
391
bindings. rust_target ( bindgen:: RustTarget :: nightly ( ) ) . generate ( ) . unwrap ( ) . write_to_file ( bindings_file) . unwrap ( ) ;
379
392
380
393
println ! ( "cargo:rustc-link-search=native={}" , vitasdk_lib_path. to_str( ) . unwrap( ) ) ;
381
- if target == "armv7-sony-vita-newlibeabihf" {
394
+ if is_target_vita {
382
395
println ! ( "cargo:rustc-link-lib=static=imgui" ) ;
383
396
}
384
397
}
@@ -402,7 +415,7 @@ fn main() {
402
415
bindings. rust_target ( bindgen:: RustTarget :: nightly ( ) ) . generate ( ) . unwrap ( ) . write_to_file ( bindings_file) . unwrap ( ) ;
403
416
}
404
417
405
- if target != "armv7-sony-vita-newlibeabihf" {
418
+ if !is_target_vita {
406
419
return ;
407
420
}
408
421
@@ -434,7 +447,11 @@ fn main() {
434
447
}
435
448
436
449
{
437
- let kubridge_dst_path = cmake:: Config :: new ( & kubridge_path) . build_target ( "libkubridge_stub.a" ) . build ( ) . join ( "build" ) ;
450
+ let kubridge_dst_path = cmake:: Config :: new ( & kubridge_path)
451
+ . configure_arg ( "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" )
452
+ . build_target ( "libkubridge_stub.a" )
453
+ . build ( )
454
+ . join ( "build" ) ;
438
455
let kubridge_lib_path = kubridge_dst_path. join ( "libkubridge_stub.a" ) ;
439
456
let kubridge_lib_new_path = kubridge_dst_path. join ( "libkubridge_stub_dsvita.a" ) ;
440
457
fs:: rename ( kubridge_lib_path, kubridge_lib_new_path) . unwrap ( ) ;
0 commit comments