@@ -231,7 +231,6 @@ pub struct QmlModuleRegistrationFiles {
231
231
/// ```
232
232
pub struct QtBuild {
233
233
qt_installation : Box < dyn QtInstallation > ,
234
- qmake_executable : String ,
235
234
qt_modules : Vec < String > ,
236
235
}
237
236
@@ -284,123 +283,10 @@ impl QtBuild {
284
283
#[ cfg( not( feature = "qmake" ) ) ]
285
284
unsupported ! ( "Only qmake feature is supported" ) ;
286
285
287
- println ! ( "cargo::rerun-if-env-changed=QMAKE" ) ;
288
- println ! ( "cargo::rerun-if-env-changed=QT_VERSION_MAJOR" ) ;
289
- fn verify_candidate ( candidate : & str ) -> Result < & str , QtBuildError > {
290
- match Command :: new ( candidate)
291
- . args ( [ "-query" , "QT_VERSION" ] )
292
- . output ( )
293
- {
294
- Err ( e) if e. kind ( ) == std:: io:: ErrorKind :: NotFound => Err ( QtBuildError :: QtMissing ) ,
295
- Err ( e) => Err ( QtBuildError :: QmakeFailed ( e) ) ,
296
- Ok ( output) => {
297
- if output. status . success ( ) {
298
- let version_string = std:: str:: from_utf8 ( & output. stdout )
299
- . unwrap ( )
300
- . trim ( )
301
- . to_string ( ) ;
302
- let qmake_version = Version :: parse ( & version_string) . unwrap ( ) ;
303
- if let Ok ( env_version) = env:: var ( "QT_VERSION_MAJOR" ) {
304
- let env_version = match env_version. trim ( ) . parse :: < u64 > ( ) {
305
- Err ( e) if * e. kind ( ) == std:: num:: IntErrorKind :: Empty => {
306
- println ! (
307
- "cargo::warning=QT_VERSION_MAJOR environment variable defined but empty"
308
- ) ;
309
- return Ok ( candidate) ;
310
- }
311
- Err ( e) => {
312
- return Err ( QtBuildError :: QtVersionMajorInvalid {
313
- qt_version_major_env_var : env_version,
314
- source : e,
315
- } )
316
- }
317
- Ok ( int) => int,
318
- } ;
319
- if env_version == qmake_version. major as u64 {
320
- return Ok ( candidate) ;
321
- } else {
322
- return Err ( QtBuildError :: QtVersionMajorDoesNotMatch {
323
- qmake_version : qmake_version. major as u64 ,
324
- qt_version_major : env_version,
325
- } ) ;
326
- }
327
- }
328
- Ok ( candidate)
329
- } else {
330
- Err ( QtBuildError :: QtMissing )
331
- }
332
- }
333
- }
334
- }
335
-
336
- if let Ok ( qmake_env_var) = env:: var ( "QMAKE" ) {
337
- match verify_candidate ( qmake_env_var. trim ( ) ) {
338
- Ok ( executable_name) => {
339
- return Ok ( Self {
340
- qt_installation,
341
- qmake_executable : executable_name. to_string ( ) ,
342
- qt_modules,
343
- } ) ;
344
- }
345
- Err ( e) => {
346
- return Err ( QtBuildError :: QMakeSetQtMissing {
347
- qmake_env_var,
348
- error : Box :: new ( e. into ( ) ) ,
349
- }
350
- . into ( ) )
351
- }
352
- }
353
- }
354
-
355
- // Fedora 36 renames Qt5's qmake to qmake-qt5
356
- let candidate_executable_names = [ "qmake6" , "qmake-qt5" , "qmake" ] ;
357
- for ( index, executable_name) in candidate_executable_names. iter ( ) . enumerate ( ) {
358
- match verify_candidate ( executable_name) {
359
- Ok ( executable_name) => {
360
- return Ok ( Self {
361
- qt_installation,
362
- qmake_executable : executable_name. to_string ( ) ,
363
- qt_modules,
364
- } ) ;
365
- }
366
- // If QT_VERSION_MAJOR is specified, it is expected that one of the versioned
367
- // executable names will not match, so the unversioned `qmake` needs to be
368
- // attempted last and QtVersionMajorDoesNotMatch should only be returned if
369
- // none of the candidate executable names match.
370
- Err ( QtBuildError :: QtVersionMajorDoesNotMatch {
371
- qmake_version,
372
- qt_version_major,
373
- } ) => {
374
- if index == candidate_executable_names. len ( ) - 1 {
375
- return Err ( QtBuildError :: QtVersionMajorDoesNotMatch {
376
- qmake_version,
377
- qt_version_major,
378
- }
379
- . into ( ) ) ;
380
- }
381
- eprintln ! ( "Candidate qmake executable `{executable_name}` is for Qt{qmake_version} but QT_VERSION_MAJOR environment variable specified as {qt_version_major}. Trying next candidate executable name `{}`..." , candidate_executable_names[ index + 1 ] ) ;
382
- continue ;
383
- }
384
- Err ( QtBuildError :: QtMissing ) => continue ,
385
- Err ( e) => return Err ( e. into ( ) ) ,
386
- }
387
- }
388
-
389
- Err ( QtBuildError :: QtMissing . into ( ) )
390
- }
391
-
392
- /// Get the output of running `qmake -query var_name`
393
- pub fn qmake_query ( & self , var_name : & str ) -> String {
394
- std:: str:: from_utf8 (
395
- & Command :: new ( & self . qmake_executable )
396
- . args ( [ "-query" , var_name] )
397
- . output ( )
398
- . unwrap ( )
399
- . stdout ,
400
- )
401
- . unwrap ( )
402
- . trim ( )
403
- . to_string ( )
286
+ Ok ( Self {
287
+ qt_installation,
288
+ qt_modules,
289
+ } )
404
290
}
405
291
406
292
/// Tell Cargo to link each Qt module.
0 commit comments