Added some information about Qt Creator IDE integration to the wiki

Michael Weghorn m.weghorn at posteo.de
Mon Feb 15 11:26:10 UTC 2021


Hi,

On 12/02/2021 21.53, Hossein Noorikhah wrote:
> I went through the sequence, and nothing has changed. It's a question for
> me: why do we need a fresh Qt Creator profile? In very rare situations, I had to
> clean up this profile. Also, I usually do not re-run ./autogen.sh because I
> didn't have any changes in the libs/configurations, and I only pulled the latest
> master from the git repository. This time, I re-ran autogen.sh again, and again
> nothing has changed.

There's generally no need for a fresh Qt Creator profile. I just did 
that to avoid potential side-effects of an existing profile when 
double-checking it works for me.
There shouldn't be any need to manually re-run autogen.sh either unless 
you change your autogen.input.


> But, now I know what you're doing. I thought that only lo.pro is generated, but
> now I see that lo.pro.user is also being generated. That didn't help me, because
> the used Qt kit was not ok. I saw a manual Qt kit which is used for the
> configuration. It was called 'Replacement for "Desktop"', so I removed it and
> reconfigured the project using the appropriate kit. In this case, I
> had to add the
> previously discussed configurations manually.

Can you try what happens if you use that 'Replacement for "Desktop"' kit 
instead? That's what I'm doing and which should contain the settings 
from lo.pro.user (i.e. the build and run configurations).

As far as I can see, the *.pro.user contains settings specific to one 
kit, and those kits have unique UUIDs, i.e. are different for each 
user/profile, which is why that can't be mapped to your existing kit.

> To create a viable solution that lasts even when you re-configure the project, I
> think it is needed to put all the configuration in .pro files, and not in
> .pro.user files, because they can be removed/changed at any time.

I'd generally agree, but currently don't see a way to make this work. 
*.pro files are not files for the Qt Creator IDE in the first place, but 
for the qmake build system (which is one of the build systems that Qt 
Creator supports).

The *.pro.user file is used to store user-specific Qt-Creator-specific 
settings for a project.

When loading a qmake project (using the .pro file) in Qt Creator, it 
tries to automatically derive the corresponding build and run settings, 
which is also why you get the "qmake" build step etc. if you just use 
the *.pro file and not the *.pro.user one.

That's why the *pro.user file is used to set "proper" build steps and 
run configuration for the LO case.
I currently see no way to instead derive those automatically from the 
.pro file only.

In other words: The current way that qtcreator IDE integration works is 
by generating a fake qmake project (using .pro files) for LibreOffice, 
then manually overriding run/build configurations using the .pro.user 
files. This is necessary because LO actually uses its own build system 
(gbuild), for which there is no native support in Qt Creator.

That's a bit of a hack; things would probably be a bit easier if LO 
wasn't using its own build system but one of those natively supported by 
Qt Creator (like CMake, qmake or meson (for which there is experimental 
support)).

Generating the *.pro.user files is actually not ideal and they're not 
really meant to be shared, but it seems to be working well for me in 
practice when I select the 'Replacement for "Desktop"' kit when 
initially loading the project.

In order to directly match an actual kit, one could try to retrieve the 
UUID for a valid kit from the settings in the Qt Creator profile and use 
that one when generating the *.pro.user files, but that's not ideal 
either in my opinion (e.g. one would have to "guess" what kit is the 
right one, rely on a specific Qt Creator profile path,...).

I just recently read about *.pro.shared files [1] which are actually 
meant to share project settings. Those might actually be a better way to 
handle all of this.
I'll probably take a closer look at some point in time.

> 
> And for the contents of lo.pro, I still get "." as the first
> subdirectory. I have to
> manually change it to "../core".

As mentioned in my previous email, I can take a quick look whether I can 
see anything obvious if you upload your generated files somewhere or 
send them by email and tell me the paths used in your case (and whether 
you use a separate build dir).


Michael


[1] https://doc.qt.io/qtcreator/creator-sharing-project-settings.html

> 
> Regards,
> Hossein
> _______________________________________________
> LibreOffice mailing list
> LibreOffice at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/libreoffice
> 


More information about the LibreOffice mailing list