"LLVM_CONFIG_PATH",
host_bin.join("llvm-config").with_extension(EXE_EXTENSION),
);
-
- if target.contains("netbsd") {
- cfg.define("CMAKE_SYSTEM_NAME", "NetBSD");
- } else if target.contains("freebsd") {
- cfg.define("CMAKE_SYSTEM_NAME", "FreeBSD");
- } else if target.contains("windows") {
- cfg.define("CMAKE_SYSTEM_NAME", "Windows");
- }
}
if let Some(ref suffix) = builder.config.llvm_version_suffix {
}
cfg.target(&target.triple).host(&builder.config.build.triple);
+ if target != builder.config.build {
+ if target.contains("netbsd") {
+ cfg.define("CMAKE_SYSTEM_NAME", "NetBSD");
+ } else if target.contains("freebsd") {
+ cfg.define("CMAKE_SYSTEM_NAME", "FreeBSD");
+ } else if target.contains("windows") {
+ cfg.define("CMAKE_SYSTEM_NAME", "Windows");
+ }
+ // When cross-compiling we should also set CMAKE_SYSTEM_VERSION, but in
+ // that case like CMake we cannot easily determine system version either.
+ //
+ // Since, the LLVM itself makes rather limited use of version checks in
+ // CMakeFiles (and then only in tests), and so far no issues have been
+ // reported, the system version is currently left unset.
+ }
+
let sanitize_cc = |cc: &Path| {
if target.contains("msvc") {
OsString::from(cc.to_str().unwrap().replace("\\", "/"))