[Qt-creator] Making an installer of Qt creator plugin on Windows

Eike Ziller Eike.Ziller at qt.io
Mon May 6 09:10:06 CEST 2019



> On 3. May 2019, at 16:52, Artem Razin <artem.razin at gmail.com> wrote:
> 
> Oh, got the point!
> 
> Regarding the idea of installing to
> %LOCALAPPDATA%\QtProject\qtcreator\plugins\X.Y.Z, will it work if both
> 32-bit and 64-bit of Qt Creator of the same versions X.Y.Z
> installed?..

Hm, interesting.
No, it doesn’t take into account different bitness, nor different compilers (mingw/msvc/...), nor different Qt versions (there are chances that a plugin that uses Qt 5.X fails to load with a Qt Creator coming with Qt 5.X-1, e.g. if it uses new API), or any other difference in configuration that might exist.
I’m not sure if we can, or even should try to solve that issue...


> It seems that no and I again have to return to the task
> of detection of all installed Qt Creators.

How do you decide if the detected Qt Creator fits your plugin configuration?

> On Fri, May 3, 2019 at 5:35 PM Eike Ziller <Eike.Ziller at qt.io> wrote:
>> 
>> 
>> 
>>> On 3. May 2019, at 16:04, Artem Razin <artem.razin at gmail.com> wrote:
>>> 
>>> Hi Eike,
>>> 
>>>> Since “installing” a plugin in Qt Creator means to just drop some files somewhere, you probably could just ask?
>>> 
>>> Yes, but it would look a bit weird because there is some installer
>>> already that installs Deleaker to Visual Studio, RAD Studio, as a
>>> standalone application and if it suddenly asked to copy some dll to
>>> some location... Of course, developers are able to copy a file :) but
>>> if an installer copied the file it would be much better!
>> 
>> I meant that the installer could ask for the install location(s) of Qt Creator where it shall install the files to :)
>> 
>>> 
>>>> Another location that Qt Creator looks for _user_ specific plugins is in
>>>> %LOCALAPPDATA%\QtProject\qtcreator\plugins\X.Y.Z
>>>> where X.Y.Z is the Qt Creator version.
>>> 
>>> Just tried and indeed it works very well. Thank you for the idea.
>>> 
>>> So now an installer can just create folders X.Y.Z for all supported
>>> versions and place a plugin dll to each folder.
>>> 
>>> Thank you!
>>> 
>>> On Fri, May 3, 2019 at 10:05 AM Eike Ziller <Eike.Ziller at qt.io> wrote:
>>>> 
>>>> 
>>>> 
>>>>> On 2. May 2019, at 18:34, Artem Razin <artem.razin at gmail.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I am really a newbie in Qt world, and unfortunately Google didn't help
>>>>> me this time.
>>>>> 
>>>>> Currently I am working on an installer for my plugin for Qt Creator on
>>>>> Windows, but I just can't find a good way to enumerate all installed
>>>>> Qt Creators (to copy the plugin dll to a plugin directory of each
>>>>> installed version).
>>>>> 
>>>>> I realized that (at least) fresh Qt builds can be found in
>>>>> HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\***,
>>>>> so an installer could check all such entries, then check presence of
>>>>> qtcreator.exe in <InstallLocation>\Tools\QtCreator\bin\qtcreator.exe
>>>>> (<InstallLocation> is a value of "InstallLocation" in
>>>>> HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\***).
>>>>> 
>>>>> Is there a better way?
>>>>> 
>>>>> Might it happen that this way will not work, i.e. probably there is
>>>>> another way of installing Qt Creator?
>>>> 
>>>> There are the Qt Creator-only offline installers which install to <InstallLocation>\bin\qtcreator.exe
>>>> And I think e.g. chocolatey has a Qt Creator package too, and possibly other “unofficial” ways.
>>>> 
>>>>> What's a common way to distribute Qt creator plugins? Just looked at
>>>>> qtc-cppcheck, and they just distribute a compiled dll, without an
>>>>> installer at all...
>>>> 
>>>> Since “installing” a plugin in Qt Creator means to just drop some files somewhere, you probably could just ask?
>>>> 
>>>> Another location that Qt Creator looks for _user_ specific plugins is in
>>>> %LOCALAPPDATA%\QtProject\qtcreator\plugins\X.Y.Z
>>>> where X.Y.Z is the Qt Creator version.
>>>> 
>>>> Which makes me aware that we should probably make it look in X.Y too nowadays, since we provide binary compatibility through patch releases since a while...
>>>> 
>>>> Br, Eike
>>>> 
>>>> --
>>>> Eike Ziller
>>>> Principal Software Engineer
>>>> 
>>>> The Qt Company GmbH
>>>> Rudower Chaussee 13
>>>> D-12489 Berlin
>>>> eike.ziller at qt.io
>>>> http://qt.io
>>>> Geschäftsführer: Mika Pälsi,
>>>> Juha Varelius, Mika Harjuaho
>>>> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
>>>> 
>>> 
>>> 
>>> --
>>> Best regards,
>>> Artem A. Razin
>> 
>> --
>> Eike Ziller
>> Principal Software Engineer
>> 
>> The Qt Company GmbH
>> Rudower Chaussee 13
>> D-12489 Berlin
>> eike.ziller at qt.io
>> http://qt.io
>> Geschäftsführer: Mika Pälsi,
>> Juha Varelius, Mika Harjuaho
>> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
>> 
> 
> 
> -- 
> Best regards,
> Artem A. Razin

-- 
Eike Ziller
Principal Software Engineer

The Qt Company GmbH
Rudower Chaussee 13
D-12489 Berlin
eike.ziller at qt.io
http://qt.io
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