[Qt-creator] User settings file and collaborative work

Tobias Hunger tobias.hunger at digia.com
Tue Feb 25 16:20:20 CET 2014

Hi Barbara,

On 25.02.2014 12:20, Barbara Post wrote:
>>> -  I develop a custom Qt plugin
>>> -  I have to copy my dll to a specific folder for execution by a
>>> plugins host
>> That is a task the build system should handle (via "make install" or similar that should then go into the deploy configuration).
> OK, I meant during development and local testing by developer.

That is a task for the build system, independent of whether it is
local testing or not. Who else is using the build system but the
developers? Your customers probably get a binary packaged up in an 
installer after all.

>>> -  An environment variable is used for base path of commands
>>> configured in build/run settings
>> Who sets this variable?
> Every developer.

So is that set on the system level or is that something you expect your 
developers to set in Creator?

>>> So if anyone else works on project it would be fine that:
>>> - when reconfiguring project since his/her kit is slightly different
>>> from
>>>    mine, all the other things are kept
>>>    (build/run custom commands). I didn't verify what happens
>> If the kits are identical (incl. the Id, which you can set via the sdktool only!), then this should work using the .shared files. So let's concentrate on the case where the kits differ.
>> Currently we have a kit id in the .user file and nothing else. So there is no way to know what a kit looked like that somebody else referenced in a .user file. Adding that information is not of course possible though.
>> Let's assume we had full information on the kits that were used by the instance that wrote the .user file. How can we decide which of our kits are the best match to those found in the .user file?
>> Which of our kits are "slightly different" (as in we want to copy the settings from the .user file) and which are "completely different" (as in we want to forget those settings) compared to those found in a .user file?
>> Is a Qt 5.0.0 windows MSVC2012 kit "slightly different" (as in we want to copy settings) from a desktop Qt 4.8.5 windows MSVC2012 kit?
>> What about Qt 5.2.1 for blackberry and a Qt 5.2.1 for ubuntu phone kit?
>> Qt 5.2.1 on the Mac and Qt 5.2.0 on Linux?
>> Qt 5.2.1 windows MSVC2012 and Qt 5.2.1 windows mingw?
> I totally agree, kits cannot be guessed nor shared, only customized build/run commands.

Currently those customized build/run commands are saved as part of the 
build- and run configurations which in turn are children of the targets 
(== kits). So if the kits go away then so does your custom setup:-/

Let's assume you could define custom build/run settings in some other 
way for the moment (that does not work right now, just to make that very 

So you define a project that needs to run qmake, customSetup.exe and 
then make to build and needs to run /usr/bin/someCommand when the run 
button is clicked.

Does this configuration work for all possible setups on windows (e.g. 
with different compilers, etc.)? Should your custom steps get added for 
users on linux as well? Those can most likely not even run a .exe file.

What about kits targeting blackberry or android?

To support this we would need to provide a way for you to limit the set 
of applicable kits in some pretty generic way (like "add these steps 
only to Qt 5.x kits targeting windows desktop development with MSVC2012").

A build system can do that because those define their own language for 
exactly that purpose. Our .user files on the other hand are basically 
static heaps of data and I would really like to keep them that way. 
Let's not add another configuration language on top of those you need to 
learn to master your build system already!

> I agree, I don't know much anyways, just beginner thoughts.

Those are often the best: They are not yet used to the particular set of 
constraints any platform places on them:-)

So basically your want to have some way that sets up your code for 
co-workers that are fresh onto the project. This should not require 
manual tweaking for those new developers so that they can become 
productive soon. Did I understand that correctly?

I do not think that our .user/.shared files are able to provide a 
solution for that. Maybe we can come up with something else to address 
the core issue though.

Best Regards,

Tobias Hunger, Senior Software Engineer - Digia, Qt
Digia Germany GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Tuula Haataja
Sitz der Gesellschaft: Berlin. USt-IdNr: DE 286 306 868
Registergericht: Amtsgericht Charlottenburg, HRB 144331 B

More information about the Qt-creator mailing list