Hello Tim!

> So how about setting the spec option if there is only one toolchain available
> for the corresponding arch? That would at least fix the most common use case.

What we want the user to do is to easily switch between different tool chains.

I have a patch pending review at this time that has the following commit message
(Note the USE CASE sections are not part of the commit message of course;-):

    ABI: Improve tool chain selection for Qt projects
    
    * Set a null-ABI for toolchains where detection of ABI failed: This
      allows the user to select any tool chain.

    * Warn if ABI detection fails by showing a message in the Qt version
      setup dialog
    
    * Do not override the mkspec if the Qt version has a null ABI only:
      We (have to) trust the user to know what he is doing in that case.

USE CASE (for all three bullet points so far):
Creator fails completely to detect the tool chain. Andre had this happen to him
since he did not have a QtCore library installed with the qmake he wanted to 
use.
    
    * GCC: Add version information to GCC tool chain and use it to select
      the mkspec on Mac.

USE CASE:
Apple users seem to need to use older versions of GCC at times. This should
properly fix e.g. the Issue Volker reported in QTCREATORBUG-5756
    
    * GCC: Do not override mkspec if we do a cross-compile
      (and actually detect that).

USE CASE:
cross compiling. Note that this might fail when cross compiling to some device
that ends up having the same ABI as the host PC. We need a way for the user
to tell us that a Qt version/Tool chain is actually used to cross compile, but 
that
is for another commit.
    
    * GCC: Leave out -32 or -64 from mkspec if the compiler binaries ABI
      matches the target ABI.

USE CASE:
One report that claimed that he ran into trouble due to his gcc variant not 
supporting
-m32.
    
    * Linux-generic is compatible with all other linuxes (both ways)
      The targets themselves do additional filtering and will remove
      anything that does not work for them anyway.

USE CASE:
Hand-crafted cross compiled Qt versions that we misdetect.


I have another patch that actually adds a warning message to the qmake step if
the mkspec used by the qmake step differs from what the tool chain suggested.
So there is at least a chance for novices to notice that the wrong compiler is 
used;-)
That is QTCREATORBUG-5854 for those interested.

Note that these changes only effect the desktop target. The others are already 
pretty
smart about the tool chains and Qt versions they support and override the 
default
selection mechanismns.

Did I miss any important use cases?

Best Regards,
Tobias

--
Tobias Hunger
Software Engineer
Nokia, Qt Development Frameworks

Nokia gate5 GmbH
Firmensitz: Invalidenstr. 117, 10115 Berlin, Germany
Registergericht: Amtsgericht Charlottenburg, Berlin: HRB 106443 B
Umsatzsteueridentifikationsnummer: DE 812 845 193
Geschäftsführer: Dr. Michael Halbherr, Karim Tähtivuori
_______________________________________________
Qt-creator mailing list
Qt-creator@qt.nokia.com
http://lists.qt.nokia.com/mailman/listinfo/qt-creator

Reply via email to