Refactor ToolChains in Qt Creator:
* Allow for several toolchains of the same type
* Be smarter wrt. guessing what kind of output a toolchain
produces. This allows us to eventually handle e.g. embedded
linux setups way better than before.
* Be smarter wrt. guessing what kind of environment a Qt version
needs.
* Improve auto-detection of toolchains a bit
* Decide on which debugger to use based on the kind of output
produced by the compiler.
* Add options page to configure toolchains
* Remove toolchain related options from the Qt version dialog
Reviewed-by: dt
- Package installation and running untested yet.
- User currently needs to adapt %files section in spec file manually.
We expect this task to be automated by the build script in the future
(see http://bugs.meego.com/show_bug.cgi?id=13148).
get away from argument stringlists. instead, use native shell command
lines which support quoting/splitting, environment variable expansion
and redirections with well-understood semantics.
Task-number: QTCREATORBUG-542
Task-number: QTCREATORBUG-1564
Add more error messages to processes run for toolchain detection.
Move Windows-specific code to dbgwinutils, remove inclusion of
<windows.h>. Fix MinGW gcc 4.5 warnings.
Give warnings about failures to be able to fix things/timeouts on
slow machines. Pass on arguments correctly on Windows.
Make sure processes are killed on timeouts.
This reverts commit b1a121c54f.
Accidentally pushed the linux icc parser before it was ready.
Conflicts:
src/plugins/qt4projectmanager/qtversionmanager.cpp
Detect SDKs before VC installations. Add static list of installations
initialized on demand. List SDKs and VC with platforms settings
depending on Qt-version. Detect installations properly, checking
existence of setup scripts. Handle delayed shell variable expansion used
by SDK setup scripts. Tested with SDK 6.1 onwards (32bit/64bit).
Reviewed-by: Daniel Molkentin <daniel.molkentin@nokia.com>
- Autodetect SDK by environment variable EPOCROOT and qt directory
below.
- Environment::appendOrSet/prependOrSet: Avoid duplicate entries
- Rename toolchain enumeration value
- Adapt S60ToolChainMixin to new GnuPoc setup, provide routines for
all required variables.
- RVCTToolChain: Make RVCT detection smarter (Check for RVCT<v1><v2>BIN
variable). Set all required variables in case of RVCTToolChain/GnuPoc
- QtVersionManager: Detect toolchain and Qt version properly, make S60
device run config accept toolchain.
- Modify S60DeviceRunControl to execute 'make sis'
- Modify S60Devices::detectQt...() to check for Qt installed into SDK
first and symlink as fallback.
This reverts commit e70530c5ad. It
did break builds on older gcc versions (gcc 4.1.2 64 bit Linux,
gcc 4.0.1 on Mac OS X):
parser/qmljsgrammar_p.h: In static member function ???static int
QmlJSGrammar::nt_action(int, int)???:
parser/qmljsgrammar_p.h:188: error: ???QmlJSGrammar::<anonymous enum>???
is/uses anonymous type
parser/qmljsgrammar_p.h:188: error: trying to instantiate
???template<class T> struct QConcatenable???
...
We don't support blocks yet, and this way we get rid of quite some
parsing errors (resulting in undefined or wrongly defined types, messing
up the semantic passes).
Reviewed-by: Roberto Raggi
__stdcall for all compilers (MSVC and MinGW, possibly others may use it)
__w64 is MSVC only, deprecated there, but still used in some places
Reviewed-By: Roberto Raggi
(cherry picked from commit 5832c6b584)
__stdcall for all compilers (MSVC and MinGW, possibly others may use it)
__w64 is MSVC only, deprecated there, but still used in some places
Reviewed-By: Roberto Raggi
* Rework IBuildParser:
* Remove name() method.
* Remove enterDirectory and leaveDirectory signals.
* Allow chaining of parsers.
* Rename IBuildParser to IOutputParser.
* Implement GnuMakeParser.
* Remove entering/leaving directory related code from all other parsers
* Move filename fixup heuristic based on entering/leaving directory
massages from gnumake here from AbstractMakeStep.
* Add outputParser method to ToolChain: This removes the need to map
toolchains to BuildParser names in the BuildSteps.
* Enhance AbstractProcessStep to accept a IOutputParser to parse its output.
* Remove AbstractMakeStep.
* Set the appropriate Parsers in all classes deriving from AbstractProcessStep
and append the ToolChain's parser to the parser chain.
* Remove BuildParserFactories: There is no more need for them.
* Remove constants used to identify the BuildParsers.
* Clean up some names:
* Replace stdOut with stdOutput.
* Replace addToTaskWindow with addTask and addToOutputWindow with
addOutput. Do this wherever it is not yet clear that this will end up
in the Task/Output window.
Reviewed-by: dt
Factor out the initialization setting up the environment and headers in
the RVCT/GCCE toolchains.
Modify the RunControl to be able to support different package
building/signing processes.
That is we actually parse the mkspec and evaluate QMAKE_CXX (and a few
other variables) to figure out the correct mkspec. This makes using
custom mkspecs easier and is also cleaner. I also changed mkspec() and
mkspecPath() to behave a little diffrent, essentialy mkspec() will
return only the name (the actual dir name) of the mkspec. That is in
general not sufficient for passing on to qmake. mkspecPath() only
returns the correct path to mkspecs/default.
Hopefully I haven't broken WinCE/Maemo/MinGW.
Includes Maemo tool chain, run configuration, run control,
manager, etc.
Adds the DebuggerManager to the object pool. This is ugly, but
nobody came up with anything better on short notice. To be
refactored.
Co-Authored-By: kh1
Creator fails to set up the build environment with MSVC 2008 and
Windows Mobile SDK 6. This is caused by two problems:
1. The toolchain was being searched for in
C:\Program Files\Microsoft Visual Studio 9.0\VC\VC
The correct path is
C:\Program Files\Microsoft Visual Studio 9.0\VC
2. Include statements in mkspecs were not being processed. All of the
important variables are set in files included from the
wincewm60{standard,professional}-msvc2008 mkspecs.