Re: [cmake-developers] DeployQt5/generalizing DeployQt4 for Qt5
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
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
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
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
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