@@ -150,13 +150,23 @@ fn add_rtools(version: String) -> Result<(), Box<dyn Error>> {
150
150
}
151
151
let client = & reqwest:: Client :: new ( ) ;
152
152
for ver in vers {
153
+ let rtools45 = & ver[ 0 ..2 ] == "45" ;
153
154
let rtools44 = & ver[ 0 ..2 ] == "44" ;
154
155
let rtools43 = & ver[ 0 ..2 ] == "43" ;
155
156
let rtools42 = & ver[ 0 ..2 ] == "42" ;
156
157
let rtools4 = & ver[ 0 ..1 ] == "4" ;
157
158
let filename: String ;
158
159
let url: String ;
159
- if rtools44 {
160
+ if rtools45 {
161
+ let rt45=Path :: new ( "C:\\ Rtools45" ) ;
162
+ if rt45. exists ( ) {
163
+ info ! ( "Rtools45 is already installed" ) ;
164
+ continue ;
165
+ }
166
+ filename = "rtools45.exe" . to_string ( ) ;
167
+ url = "https://github.com/r-hub/rtools45/releases/download/latest/rtools45.exe"
168
+ . to_string ( ) ;
169
+ } else if rtools44 {
160
170
let rt44=Path :: new ( "C:\\ Rtools44" ) ;
161
171
if rt44. exists ( ) {
162
172
info ! ( "Rtools44 is already installed" ) ;
@@ -292,6 +302,8 @@ fn get_rtools_needed(version: Option<Vec<String>>) -> Result<Vec<String>, Box<dy
292
302
let v42 = "42" . to_string ( ) ;
293
303
let v43 = "43" . to_string ( ) ;
294
304
let v44 = "44" . to_string ( ) ;
305
+ let v45 = "45" . to_string ( ) ;
306
+ let sv450 = semver:: Version :: parse ( "4.5.0" ) ?;
295
307
let sv440 = semver:: Version :: parse ( "4.4.0" ) ?;
296
308
let sv430 = semver:: Version :: parse ( "4.3.0" ) ?;
297
309
let sv420 = semver:: Version :: parse ( "4.2.0" ) ?;
@@ -300,17 +312,21 @@ fn get_rtools_needed(version: Option<Vec<String>>) -> Result<Vec<String>, Box<dy
300
312
if !res. contains ( & v35) {
301
313
res. push ( v35) ;
302
314
}
315
+ } else if sv >= sv450 {
316
+ if !res. contains ( & v45) {
317
+ res. push ( v45) ;
318
+ }
303
319
} else if sv >= sv440 {
304
320
if !res. contains ( & v44) {
305
- res. push ( v44)
321
+ res. push ( v44) ;
306
322
}
307
323
} else if sv >= sv430 {
308
324
if !res. contains ( & v43) {
309
- res. push ( v43)
325
+ res. push ( v43) ;
310
326
}
311
327
} else if sv >= sv420 {
312
328
if !res. contains ( & v42) {
313
- res. push ( v42)
329
+ res. push ( v42) ;
314
330
}
315
331
} else if & ver[ 0 ..1 ] == "4" {
316
332
if !res. contains ( & v40) {
0 commit comments