Skip to content

Commit 49af730

Browse files
committed
Add support for C/C++ compiler for Neutrino QNX: qcc
1 parent afb6d60 commit 49af730

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/lib.rs

+24
Original file line numberDiff line numberDiff line change
@@ -2092,6 +2092,24 @@ impl Build {
20922092
cmd.push_cc_arg("-pthread".into());
20932093
}
20942094
}
2095+
2096+
if target.os == "nto" {
2097+
// Select the target with `-V`, see qcc documentation:
2098+
// QNX 7.1: https://www.qnx.com/developers/docs/7.1/index.html#com.qnx.doc.neutrino.utilities/topic/q/qcc.html
2099+
// QNX 8.0: https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.utilities/topic/q/qcc.html
2100+
let arg = match target.arch {
2101+
"i586" => "-Vgcc_ntox86_cxx",
2102+
"aarch64" => "-Vgcc_ntoaarch64le_cxx",
2103+
"x86_64" => "-Vgcc_ntox86_64_cxx",
2104+
_ => {
2105+
return Err(Error::new(
2106+
ErrorKind::InvalidTarget,
2107+
format!("Unknown architecture for Neutrino QNX: {}", target.arch),
2108+
))
2109+
}
2110+
};
2111+
cmd.push_cc_arg(arg.into());
2112+
}
20952113
}
20962114
}
20972115

@@ -2803,6 +2821,12 @@ impl Build {
28032821
format!("arm-kmc-eabi-{}", gnu)
28042822
} else if target.arch == "aarch64" && target.vendor == "kmc" {
28052823
format!("aarch64-kmc-elf-{}", gnu)
2824+
} else if target.os == "nto" {
2825+
if self.cpp {
2826+
"q++".to_string()
2827+
} else {
2828+
"qcc".to_string()
2829+
}
28062830
} else if self.get_is_cross_compile()? {
28072831
let prefix = self.prefix_for_target(&raw_target);
28082832
match prefix {

0 commit comments

Comments
 (0)