Skip to content

Commit 4a6b35d

Browse files
committed
Specify CC flags for the armv6k target
1 parent 83788af commit 4a6b35d

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/lib.rs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,35 @@ pub fn run_cargo(input: &Input, message_format: Option<String>) -> (ExitStatus,
4343
let rustflags = format!("{rustflags} -l{libctru}");
4444

4545
command.env("RUSTFLAGS", rustflags);
46+
47+
// C Compilation Flags
48+
let devkitpro = std::env::var("DEVKITPRO").unwrap_or_default();
49+
let devkitarm = std::env::var("DEVKITARM").unwrap_or_default();
50+
51+
command.env("CRATE_CC_NO_DEFAULTS_armv6k-nintendo-3ds", "");
52+
53+
command.env(
54+
"CC_armv6k-nintendo-3ds",
55+
devkitarm.clone() + "/bin/arm-none-eabi-gcc",
56+
);
57+
58+
command.env(
59+
"CXX_armv6k-nintendo-3ds",
60+
devkitarm.clone() + "/bin/arm-none-eabi-g++",
61+
);
62+
63+
command.env(
64+
"AR_armv6k-nintendo-3ds",
65+
devkitarm.clone() + "/bin/arm-none-eabi-gcc-ar",
66+
);
67+
68+
let cflags = format!(
69+
"-march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft \
70+
-ffunction-sections -fdata-sections -D_3DS -D__3DS__ -I{devkitpro}/libctru/include"
71+
);
72+
73+
command.env("CFLAGS_armv6k-nintendo-3ds", &cflags);
74+
command.env("CXXFLAGS_armv6k-nintendo-3ds", &cflags);
4675
}
4776

4877
if input.verbose {

0 commit comments

Comments
 (0)