diff --git a/sdl2-sys/Cargo.toml b/sdl2-sys/Cargo.toml index d3799962f12..f4b80266f84 100644 --- a/sdl2-sys/Cargo.toml +++ b/sdl2-sys/Cargo.toml @@ -48,6 +48,7 @@ version = "^0.3" optional = true [build-dependencies] +version-compare = "0.0.10" cfg-if = "^0.1" [features] diff --git a/sdl2-sys/build.rs b/sdl2-sys/build.rs index 2af74b1c834..174d540eefa 100644 --- a/sdl2-sys/build.rs +++ b/sdl2-sys/build.rs @@ -267,6 +267,19 @@ fn compile_sdl2(sdl2_build_path: &Path, target_os: &str) -> PathBuf { let mut cfg = cmake::Config::new(sdl2_build_path); cfg.profile("release"); + #[cfg(target_os = "linux")] + { + use version_compare::Version; + if let Ok(version) = std::process::Command::new("cc").arg("-dumpversion").output() { + let local_ver = Version::from(std::str::from_utf8(&version.stdout).unwrap()).unwrap(); + let affected_ver = Version::from("10").unwrap(); + + if local_ver >= affected_ver { + cfg.cflag("-fcommon"); + } + } + } + if target_os == "windows-gnu" { cfg.define("VIDEO_OPENGLES", "OFF"); }