Commit Graph

38 Commits

Author SHA1 Message Date
Thorbjørn Lindeijer
2a93b5401d Move build environment customization down to BuildConfiguration
The functionality was duplicated between the Qt4 and CMake build
configurations and their configuration widgets. This change moves it
down to BuildConfiguration, in addition also making it available for the
Generic Project.

Also provides an upgrade path for the configuration.

Task-number: QTCREATOR-24
Reviewed-by: dt
Reviewed-by: Tobias Hunger
2010-03-12 13:01:04 +01:00
dt
ab8fc52d0b Use exact and aysnc .pro file evaluate
This is a big change touching almost all of our .pro file parsing.
With this patch we only evaluate once exact for all needs and once
greedy for the filelist. That is the qt runconfigurations don't have own
evaluaters but reuse the project wide exact evaluation.

We reevaluate if the user changes the build directory, the qmake
buildconfiguration or the qmake arguments. That is if you open src.pro
(or projects.pro) of qt with a shadow build you still don't get all the
files, but after correcting the build directory, we reevaluate the .pro
files and find all files. So for a suitable definition of fixed, that
bug is now fixed.

We now get the exact defines of all .pro files instead of all defines for all
buildconfigurations. We still don't distinguish in which
.pro file a DEFINE is set. So the code model now knows about all the
defines set for the given configuration but not for which files it is
actually set. Also that includes all DEFINES set in .qmake.cache or the
mkspecs. This means all defines from .pro files should now work.

The intial loading is still synchronous. I haven't looked into it to
deeply, but it seems possible to make it also async.There are probably a
few issues which need to be solved fist.

Also due to the asynchronous nature of the code, the executable is
updated a few seconds after actually changing the build configuration
2010-03-10 17:02:24 +01:00
hjk
9595504bda Long live the king! 2010-03-05 11:28:13 +01:00
Tobias Hunger
175b43ec43 Make default Qt version alrorithmn more strict
* Add qWarnings on failures.
2010-02-19 10:51:40 +01:00
Friedemann Kleint
7c9c99dcf0 Symbian/Linux: Enable building with makefile-based system.
- 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.
2010-02-17 17:38:48 +01:00
Tobias Hunger
efe3ac597a Default to not shadowbuilding
when not set to true in the .user-file.
2010-02-17 17:13:23 +01:00
Tobias Hunger
563983c4b0 Remove default Qt version entry
* Remove default Qt version from list of available versions
2010-02-17 17:13:21 +01:00
dt
3c99f02bcb Rename QMake to qmake since that's the official spelling. 2010-02-17 16:54:50 +01:00
Tobias Hunger
261966dbb7 Have qmakestep trigger the import label
* Do not use the BuildManager but have the qmakestep trigger
   the update via the target and project.

Reviewed-by: dt
2010-02-16 13:18:25 +01:00
Tobias Hunger
75abcda936 Use sane Qt version on import 2010-02-10 17:01:07 +01:00
Tobias Hunger
d1bdfcc363 Integrate target support
* Ease cross device development by introducing 'targets' which
   group build- and runsettings that are valid for this one target

 Most of the kudos for the code review go to dt. Con, thorbjorn,
 ckandler and others did also review parts of this patch.

Reviewed-by: dt
2010-02-09 16:57:37 +01:00
Friedemann Kleint
81f14bb270 Fix some code scanning issues.
QString: Use QChar/char where appropriate, do not use QString::null
2010-02-02 17:09:41 +01:00
Friedemann Kleint
2fd8b2d7ff Fix some code scanning issues.
QString: Use QChar where appropriate.
2010-02-01 12:43:56 +01:00
Tobias Hunger
788b294a30 Make project use toMap/fromMap to save state
* That is what everybody else is using now.

Reviewed-by: dt
2010-02-01 12:23:14 +01:00
Tobias Hunger
f923a561c3 Make use of ProjectConfiguration in RunConfigurations
Reviewed-by: dt
2010-02-01 12:23:13 +01:00
Tobias Hunger
16a7d5daa2 Make use of ProjectConfiguration in the BuildConfigurations
* Make use of the ProjectConfiguration base class in the
   BuildConfigurations and update the factories accordingly.

Reviewed-by: dt
2010-02-01 12:23:13 +01:00
dt
fb3ae97df3 Add Build to the right click menu of sub projects for Qt4 Projects
They do what you expect them to do, that is build only a subtree.
The implementation is a little bit strange. We temporarly set the sub
node to be built on the BuildConfiguration, enqueue that
BuildConfiguration (which calls BuildStep::init()), and then reset that
temporary value.

A more general way would be to have the ability to extend
BuildConfiguration::buildProject() in a way that additional data can be
passed to the BuildSteps.

Task-Nr: QTCREATOR-5
Task-Nr: QTCREATORBUG-44
2010-01-13 18:02:22 +01:00
dt
b560e24034 Fix that changing qmake arguments did not update the import label
Task-Nr: QTCREATOR-269
2010-01-12 17:21:20 +01:00
dt
e3188417c3 Don't silently reset the qt version if it has become invalid
Instead note that it is invalid if trying to build and on the projects
mode pane.

Task-Nr: QTCREATORBUG-459
2010-01-12 15:51:11 +01:00
Tobias Hunger
592e494d1a Fix typos
Reviewed-by: thorbjorn
2010-01-11 10:26:13 +01:00
Tobias Hunger
a6ad773722 Make method naming more consistent.
* Use id() for methods returning a string used to represent
    some type of object.
  * Use displayName() for strings that are meant to be user
    visible.
  * Quieten some warnings while touching the files anyway.
  * Move Factories to their products in the plugins where that
    was not done before.

Reviewed-by: dt
2010-01-07 18:17:24 +01:00
con
a54205c3a0 Mostly remove the special define for Symbian support.
The only part that is not done if not on Windows (or explicitly
specified) is the adding of the preference pane.
2009-12-17 18:01:41 +01:00
dt
a755717649 In the EnvironmentWidget show which environment is the base.
Task-Nr: QTCREATORBUG-277
2009-12-14 13:40:17 +01:00
dt
14eb1f66e9 Remove BuildConfiguration::setValue/value 2009-12-08 17:59:21 +01:00
dt
97929c440f Ensure that the environment widget is updated correctly 2009-12-08 14:42:04 +01:00
dt
b63e6e939d Make BuildConfiguration::setValue and ::value protected 2009-12-07 15:55:41 +01:00
dt
1e46cb424e Rework connections on the project pane for Qt4Projects.
Should fix a lot of corner cases, might introduce a few bugs.
Also rename functions/slots to be better named.

Generic Project Manager and CMake Project Manager are missing from this
patch.
2009-12-07 15:00:17 +01:00
dt
429a52742c Remove function that isn't called anywhere 2009-12-07 15:00:17 +01:00
dt
aaae96a00e Remove very old importing code 2009-12-07 15:00:17 +01:00
con
f3bdeb8c9a Share the code for determining used qmake arguments.
Move the code that compares the Qt version's debug|release property
with the build configuration's debug|release property
to the new build configuration class.

Reviewed-by: dt
2009-12-02 18:16:34 +01:00
dt
d6d48fa23c Some cleanup after BuildConfiguration refactoring 2009-11-30 15:24:32 +01:00
dt
cff2c1df6d QMakeStep some API cleanup
Rename arguments to allArguments(), qmakeArguments() to userArguments()
2009-11-30 15:24:32 +01:00
dt
6e01bf6070 Move extractSpec and removeSpec to Qt4BuildConfiguration 2009-11-30 15:24:32 +01:00
dt
801e9948f5 Hide static cast in accessor methods 2009-11-30 15:24:32 +01:00
dt
a312206306 Move most of the BuildConfiguration specific functions
Note: I didn't fix all the connects and there are a few missing things.
This compiles, more work is coming.
2009-11-30 15:24:31 +01:00
dt
7904544b84 Remove BuildConfiguration::name()
The pointers can be used to distinguish BuildConfigurations
2009-11-30 15:24:31 +01:00
dt
20214787d1 Add BuildConfiguration::restore and BuildConfiguration::project()
More API work.
2009-11-30 15:24:31 +01:00
dt
ae633c1956 Add BuildConfiguration classes
Each project has it's own BuildConfiguarion * classes, they'll get a
decent type safe interface and the setValue/value stuff will be removed.
2009-11-30 15:24:31 +01:00