Re: [cmake-developers] DeployQt5/generalizing DeployQt4 for Qt5

2014-02-17 Thread Marcus D. Hanwell
On Sun, Feb 16, 2014 at 6:57 PM, Stephen Kelly  wrote:
> Marcus D. Hanwell wrote:
>
>> On Sun, Feb 16, 2014 at 4:30 PM, Stephen Kelly
>>  wrote:
>>> Marcus D. Hanwell wrote:
>>>
 Hi,

 Is anyone working on, or have, a DeployQt5 or a generalized DeployQt4?
 We use it in our packaging process, and it is one of the last things I
 need to switch to Qt 5. If not, I was going to take a look at this,
 and see what I can put together.
>>>
>>> I've never used DeployQt4 or BundleUtilities, and I don't know much about
>>> Mac (which BundleUtilities seems to strongly relate to somehow), so I
>>> don't know what is needed from a DeployQt5, which is why I haven't
>>> written such a thing yet. It seems like something that should be
>>> versioned with and shipped with Qt 5.
>>
>> It was contributed by Mike McQuaid (from KDAB too I think).
>
> I think he first contributed it before joining KDAB, but now he's at Github:
>
>  https://github.com/blog/1711-mike-mcquaid-is-a-githubber
>
I even read that, but didn't put it together in this context ;-)
>
>> How are
>> you currently packaging Qt application binaries on Windows, Linux and
>> Mac?
>
> Generally it's not me personally doing that stuff, but colleagues. Those
> colleagues don't have 'make it pure' as a goal, are not interested in cmake
> generally, but just need to get that part done, and need to do something
> else instead.

Fair enough, we are really aiming for the simplest way to reliably
package on all three platforms and this has been working pretty well.
>
>>> * It seems to have macros related to plugins. When using a statically
>>> built Qt, plugins are also relevant in the buildsystem because I need to
>>> compile them into my application. Should there be one generic interface
>>> in CMake for both this kind of thing and what DeployQt4 is doing?
>>
>> Perhaps, but I am most concerned at this point with the simplest way
>> of porting the remaining part of the build system.
>
> Yes, I understand that.
>
>  http://cmake.3232098.n2.nabble.com/DeployQt5-cmake-td7585218.html
>
> shows that it can be done in a straightforward way.

I missed that in my searches - thanks for pointing it out.
>
>> I would prefer
>> something like DeployQt4 for simplicity, and not requiring me to bump
>> my Qt dependency to 5.3 for packaging, so in the short term at least I
>> would like to offer similar functionality for Qt 5 in a CMake helper.
>
> It seems that you can do something simple for your current need and get
> something modern into Qt 5.3, if it makes sense to do something different
> from 'something simple'.
>
>> The new Qt 5 CMake support seems really strong, but I was left
>> wondering what I should do for packaging.
>
> Yes. The intersection of experience, knowledge, time etc hasn't appeared to
> add something that makes sense yet.

I would be happy to help here if I can, I want to ensure Qt 5 is at
least as simple as Qt 4 was to create packages using CMake.
>
> I know that Digia are working on some deployment stuff with unification of
> concepts particularly with regard to embedded systems deployment in mind. I
> don't want to create too many diverging concepts there, and would prefer to
> see what comes out of that, or at least understand the thing fully, before
> committing to something in the cmake files shipped with Qt 5.
>
Agreed, I will keep an eye out for this. In the short term is would
seem an adaptation of DeployQt4 is reasonable, unless I hear from
someone else that they have something way better working already.

Thanks,

Marcus
-- 

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] DeployQt5/generalizing DeployQt4 for Qt5

2014-02-16 Thread Stephen Kelly
Marcus D. Hanwell wrote:

> On Sun, Feb 16, 2014 at 4:30 PM, Stephen Kelly
>  wrote:
>> Marcus D. Hanwell wrote:
>>
>>> Hi,
>>>
>>> Is anyone working on, or have, a DeployQt5 or a generalized DeployQt4?
>>> We use it in our packaging process, and it is one of the last things I
>>> need to switch to Qt 5. If not, I was going to take a look at this,
>>> and see what I can put together.
>>
>> I've never used DeployQt4 or BundleUtilities, and I don't know much about
>> Mac (which BundleUtilities seems to strongly relate to somehow), so I
>> don't know what is needed from a DeployQt5, which is why I haven't
>> written such a thing yet. It seems like something that should be
>> versioned with and shipped with Qt 5.
> 
> It was contributed by Mike McQuaid (from KDAB too I think).

I think he first contributed it before joining KDAB, but now he's at Github: 

 https://github.com/blog/1711-mike-mcquaid-is-a-githubber

:)

> How are
> you currently packaging Qt application binaries on Windows, Linux and
> Mac?

Generally it's not me personally doing that stuff, but colleagues. Those 
colleagues don't have 'make it pure' as a goal, are not interested in cmake 
generally, but just need to get that part done, and need to do something 
else instead.

>> * It seems to have macros related to plugins. When using a statically
>> built Qt, plugins are also relevant in the buildsystem because I need to
>> compile them into my application. Should there be one generic interface
>> in CMake for both this kind of thing and what DeployQt4 is doing?
> 
> Perhaps, but I am most concerned at this point with the simplest way
> of porting the remaining part of the build system.

Yes, I understand that. 

 http://cmake.3232098.n2.nabble.com/DeployQt5-cmake-td7585218.html

shows that it can be done in a straightforward way.

> I would prefer
> something like DeployQt4 for simplicity, and not requiring me to bump
> my Qt dependency to 5.3 for packaging, so in the short term at least I
> would like to offer similar functionality for Qt 5 in a CMake helper.

It seems that you can do something simple for your current need and get 
something modern into Qt 5.3, if it makes sense to do something different 
from 'something simple'.

> The new Qt 5 CMake support seems really strong, but I was left
> wondering what I should do for packaging. 

Yes. The intersection of experience, knowledge, time etc hasn't appeared to 
add something that makes sense yet. 

I know that Digia are working on some deployment stuff with unification of 
concepts particularly with regard to embedded systems deployment in mind. I 
don't want to create too many diverging concepts there, and would prefer to 
see what comes out of that, or at least understand the thing fully, before 
committing to something in the cmake files shipped with Qt 5.

Thanks,

Steve.


-- 

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] DeployQt5/generalizing DeployQt4 for Qt5

2014-02-16 Thread Marcus D. Hanwell
On Sun, Feb 16, 2014 at 4:30 PM, Stephen Kelly  wrote:
> Marcus D. Hanwell wrote:
>
>> Hi,
>>
>> Is anyone working on, or have, a DeployQt5 or a generalized DeployQt4?
>> We use it in our packaging process, and it is one of the last things I
>> need to switch to Qt 5. If not, I was going to take a look at this,
>> and see what I can put together.
>
> I've never used DeployQt4 or BundleUtilities, and I don't know much about
> Mac (which BundleUtilities seems to strongly relate to somehow), so I don't
> know what is needed from a DeployQt5, which is why I haven't written such a
> thing yet. It seems like something that should be versioned with and shipped
> with Qt 5.

It was contributed by Mike McQuaid (from KDAB too I think). How are
you currently packaging Qt application binaries on Windows, Linux and
Mac?
>
> The intersection of people who know a lot/enough about CMake, packages, and
> DeployQt4, and Qt 5 is a small set. Please help me with these questions:

Sure, David Cole actually wrote a lot of the packaging code that uses
DeployQt4, but I will do my best (he will hopefully correct me if I
miss anything).
>
> * What is so special about Qt deployment that it needs special handling in
> CMake? Why is there no (to pick some random examples) DeployLibLZMA,
> DeployMPEG, DeployVTK etc? Is it really mostly just the path adjustment
> stuff and the qt.conf?

Path adjustment, qt.conf, locations of binaries for release/debug on
Windows, Qt is different enough that packaging it needs some simple
helpers. Using it with bundle utilities helps to track down all of the
necessary dependencies that should be put in a binary package, and
avoids attempting to copy system files by going too far.
>
> * How is it used in real-life? How does it intersect to cpack related code?

The MoleQueue application is perhaps one of the simpler ones where we
use it with CPack to create Windows and Mac installers automatically.
>
> * It was written in a different era of CMake design. How do things like
> guaranteed use of IMPORTED targets (as Qt 5 ensures), listing of the
> libraries in INTERFACE_LINK_LIBRARIES, or other modern features of CMake
> affect the design of DeployQt5?

I think it would still need the same kind of logic to bring in libs
that Qt libraries link to, Qt plugins, etc. Knowing which libraries
are linked to and their location was always the simpler piece, putting
the qt.conf file in the correct location, bringing along the correct
Qt plugins, etc, fixing up the paths of the binaries to only reference
the bundled Qt are all taken care of for us with this helper.
>
> * It seems to have macros related to plugins. When using a statically built
> Qt, plugins are also relevant in the buildsystem because I need to compile
> them into my application. Should there be one generic interface in CMake for
> both this kind of thing and what DeployQt4 is doing?

Perhaps, but I am most concerned at this point with the simplest way
of porting the remaining part of the build system. I would prefer
something like DeployQt4 for simplicity, and not requiring me to bump
my Qt dependency to 5.3 for packaging, so in the short term at least I
would like to offer similar functionality for Qt 5 in a CMake helper.
>
> * How should the parameters of the functions be changed? They seem to not
> use MacroParseArguments.

I have no strong opinions, I am happy to show you how we currently use
it. The new Qt 5 CMake support seems really strong, but I was left
wondering what I should do for packaging. I would like something that
would work with Qt 5.0+, I am not overly tied to DeployQt4 if there is
a better way to do this, but hope to get something that is similarly
robust once it is up and running in our projects.

Thanks,

Marcus
-- 

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] DeployQt5/generalizing DeployQt4 for Qt5

2014-02-16 Thread Stephen Kelly
Marcus D. Hanwell wrote:

> Hi,
> 
> Is anyone working on, or have, a DeployQt5 or a generalized DeployQt4?
> We use it in our packaging process, and it is one of the last things I
> need to switch to Qt 5. If not, I was going to take a look at this,
> and see what I can put together.

I've never used DeployQt4 or BundleUtilities, and I don't know much about 
Mac (which BundleUtilities seems to strongly relate to somehow), so I don't 
know what is needed from a DeployQt5, which is why I haven't written such a 
thing yet. It seems like something that should be versioned with and shipped 
with Qt 5.

The intersection of people who know a lot/enough about CMake, packages, and 
DeployQt4, and Qt 5 is a small set. Please help me with these questions:

* What is so special about Qt deployment that it needs special handling in 
CMake? Why is there no (to pick some random examples) DeployLibLZMA, 
DeployMPEG, DeployVTK etc? Is it really mostly just the path adjustment 
stuff and the qt.conf?

* How is it used in real-life? How does it intersect to cpack related code?

* It was written in a different era of CMake design. How do things like 
guaranteed use of IMPORTED targets (as Qt 5 ensures), listing of the 
libraries in INTERFACE_LINK_LIBRARIES, or other modern features of CMake 
affect the design of DeployQt5?

* It seems to have macros related to plugins. When using a statically built 
Qt, plugins are also relevant in the buildsystem because I need to compile 
them into my application. Should there be one generic interface in CMake for 
both this kind of thing and what DeployQt4 is doing?

* How should the parameters of the functions be changed? They seem to not 
use MacroParseArguments.

Thanks,

Steve.


-- 

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] DeployQt5/generalizing DeployQt4 for Qt5

2014-02-16 Thread Marcus D. Hanwell
Hi,

Is anyone working on, or have, a DeployQt5 or a generalized DeployQt4?
We use it in our packaging process, and it is one of the last things I
need to switch to Qt 5. If not, I was going to take a look at this,
and see what I can put together.

Thanks,

Marcus
-- 

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers