[Qt-creator] Qt Creator Sharing Project Configurations

Tobias Hunger Tobias.Hunger at qt.io
Wed Sep 28 10:37:42 CEST 2016


On Di, 2016-09-27 at 21:04 -0700, Sanchez, Jack wrote:
> Hi all,
> 
> I have been looking into sharing specific build and run configurations with
> my team agnostic of the kit. I have found the documentation which suggests
> this is possible, but also seems to hint that this is for sharing across
> personal projects rather than in a team environment. There are also many
> stackoverflow, et. al., posts which ask the same question with no response
> other than a pointer to the same Qt documentation I've already read.

That is not going to work, sorry.

All the build and run settings stored in the .user files. They are grouped below
a Target, which is referencing a kit by its id. When creator loads a .user file
it will skip all the targets (and all the settings below the target) that come
with unknown kit ids.

So if you want to share .user files, then you have to make sure all users have
the same kits with the same kit ids. The only way to actually pick kit ids is
via the SDK tool -- a rather ugly program that the Qt installer uses to register
Qt versions, etc. All kits created via the UI get random ids, so those are out.

So if you limit yourself to the kits installed by the Qt installer you might be
lucky -- provided your users happen to have exactly the same Qt versions
installed as you do and are on the same platform.

If you administer a locked-down environment where your developers have to work
with the kits you pre-installed for them, then you do control the kits they work
with. You got a fair chance to share settings in such an environment.

> This is a fairly common need and it seems unlikely to me that Qt Creator
> does not support this.

Yes, this has been requested and talked about many times before. Unfortunately
there still is no good solution for the problem:-/ Sorry.

My idea -- when I get round to working on this front again -- is to enable
project-specific wizards. Basically you could have e.g. a .qtc-wizards directory
in your project, checked in with the rest of your sources. Creator would then
check in that directory whenever it needs to offer wizards to its users. That
would enable cool things like have project-specific templates for all kinds of
files, etc.

If you open a project for the first time, then Creator could look for a wizard
in .qtc-wizards/projectsetup and run that wizard if found. That wizard would
then be able to display a UI, asking your users for all kind of things (e.g.
install location of dependencies), doing other things (like check out
subprojects from a repository somewhere) and it could configure your project
with custom build steps and whatnot. Of course a wizard does not need to show a
UI and can just do his work in silence and without user interaction.

The introduction of the JSON wizards got us within reach of that idea, but
unfortunately I am not going to get round to that anytime soon:-/

Patches are welcome! Feel free to contact me if you are interested in this
topic:-)

> Is there a way to build a kit which generates a common GUID and/or
> assigning the GUID to a user's kit (git-hooks and scripts?) in order to
> trick the system into reading these shared settings?

The only way to force GUIDs for the kits is the sdktool.

> Any help is appreciated!

Best Regards,
Tobias

-- 
Tobias Hunger, Senior Software Engineer | The Qt Company
The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho. Sitz der
Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B


More information about the Qt-creator mailing list