Skip to content

Commit

Permalink
Support Rtools44 + use Rtools42 for R 4.2.x
Browse files Browse the repository at this point in the history
pak's R 4.2.x build does not work, and I suspect
it is because of using Rtools40 instead of
Rtools42.
  • Loading branch information
gaborcsardi committed Mar 17, 2024
1 parent f11e9df commit 0e7f708
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
4 changes: 4 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

# rig 0.6.1 (prerelease)

* rig now supports Rtools44 on Windows.

# rig 0.6.0

* rig now supports RPM based distros, in addition to Deboan and Ubuntu (#28).
Expand Down
24 changes: 23 additions & 1 deletion src/windows.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,12 +150,22 @@ fn add_rtools(version: String) -> Result<(), Box<dyn Error>> {
}
let client = &reqwest::Client::new();
for ver in vers {
let rtools44 = &ver[0..2] == "44";
let rtools43 = &ver[0..2] == "43";
let rtools42 = &ver[0..2] == "42";
let rtools4 = &ver[0..1] == "4";
let filename: String;
let url: String;
if rtools43 {
if rtools44 {
let rt44=Path::new("C:\\Rtools44");
if rt44.exists() {
info!("Rtools44 is already installed");
continue;
}
filename = "rtools44.exe".to_string();
url = "https://github.com/r-hub/rtools44/releases/download/latest/rtools44.exe"
.to_string();
} else if rtools43 {
let rt43=Path::new("C:\\Rtools43");
if rt43.exists() {
info!("Rtools43 is already installed");
Expand Down Expand Up @@ -279,17 +289,29 @@ fn get_rtools_needed(version: Option<Vec<String>>) -> Result<Vec<String>, Box<dy
let ver: String = String::from_utf8(out.stdout)?;
let v35 = "35".to_string();
let v40 = "40".to_string();
let v42 = "42".to_string();
let v43 = "43".to_string();
let v44 = "44".to_string();
let sv440 = semver::Version::parse("4.4.0")?;
let sv430 = semver::Version::parse("4.3.0")?;
let sv420 = semver::Version::parse("4.2.0")?;
let sv = semver::Version::parse(&ver)?;
if &ver[0..1] == "3" {
if !res.contains(&v35) {
res.push(v35);
}
} else if sv >= sv440 {
if !res.contains(&v44) {
res.push(v44)
}
} else if sv >= sv430 {
if !res.contains(&v43) {
res.push(v43)
}
} else if sv >= sv420 {
if !res.contains(&v42) {
res.push(v42)
}
} else if &ver[0..1] == "4" {
if !res.contains(&v40) {
res.push(v40);
Expand Down

0 comments on commit 0e7f708

Please sign in to comment.