[Qt-creator] Making CMake and Remote Linux work together

Oleksii Serdiuk contacts at oleksii.name
Wed Jul 10 15:58:14 CEST 2013


On 10/07/13 10:55, Christian Kandeler wrote:
> On 07/09/2013 07:13 PM, Oleksii Serdiuk wrote:
>> 2. https://codereview.qt-project.org/60674
>>
>> A second issue is with deploying binaries extracted from build targets.
>> CMake plugin creates a separate binary target for every executable and
>> library that will be built, but uses "all" target for building. Also,
>> you can exclude some targets from being build by "all". Unfortunately,
>> there is no dependency information available in the plugin (and also in
>> the Code Blocks file it generates) so it's not possible to know which
>> targets will be built by issuing "make all". This means that if you put
>> all binary targets into the deployment list and at least one of them was
>> excluded from "all", the deployment will fail due to non existing file
>> (it just wasn't built).
>>
>> I overcame this limitation by adding a way to specify whether
>> DeployableFile is enabled (DeployableFile::isEnabled() and
>> DeployableFile::setEnabled() members) and adding checkboxes to "Files to
>> deploy" list. User can uncheck the specific file and it won't be
>> deployed by the Remote Linux plugin. But Christian Kandeler said that he
>> doesn't like this concept because build system should take care of such
>> things.
> 
> Yes. Splitting the responsibilities here is weird and will cause all 
> kinds of problems and unexpected behavior due to potential 
> inconsistencies. For instance, renaming a disabled target will cause the 
> respective target to be enabled again if it was disabled, because the 
> list stored in the Creator settings will still have the old name (which 
> is now a dead entry and will stay there forever).

Not exactly true. Yes, the target enabled/disabled status will indeed be
reset if local name changes. But "dead" entries should not stay longer
than through one Qt Creator run.

The way I implemented saving is when settings are loaded, I load
disabled list to a separate QSet (because deployment information is not
yet available at that moment) and try to maintain it in sync with the
deployment list. But when I save the disabled list, I traverse directly
through deployment list, so only files that do exist in this list are
saved into disabled list.

-- 
With best regards,
Olekii Serdiuk

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4813 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20130710/ce1d4d5e/attachment.bin>


More information about the Qt-creator mailing list