[Qt-creator] GSoC 2018: New feature proposal for Qt Creator

Sree Gowtham Josyula sreegowthamj at gmail.com
Wed Mar 21 10:59:42 CET 2018


Hello Everyone,

Thanks for your interest and suggestions in my proposal. With your
suggestions, I have modified my initial idea. Please find the modified
idea in the link below.
Link - https://docs.google.com/document/d/1hC2rTrDN5UvgpS57S5ixLiuJUSdR0KPRfNE9wPm1hc8/edit?usp=sharing
I am posting content of the above link below for your convenience -

Title - Remote System Development Plugin for Qt Creator

Keywords
1. Development Machine - This is the machine where the user interacts
directly with Qt Creator IDE for development tasks (editing,
compilation and debugging). The development tasks are triggered
directly by user using the IDE interface on this machine.
2. Remote Machine - This is the machine to which the development tasks
are routed by the Qt Creator IDE of Development Machine to perform the
development tasks and results of which are returned to the user to be
displayed on the Development Machine.

Summary
In order to enable development of a Qt and C++ projects on a remote
machine, this Qt Creator IDE plugin enables editing, compiling and
debugging of a project on a remote machine via the development
machine, supporting existing Qt Creator IDE features like version
control, code-completion, syntax-highlighting, goto-definition,
code-refactoring and syntax-parsing.
Link to discussion on Qt Creator mailing list -
http://lists.qt-project.org/pipermail/qt-creator/2018-March/007159.html

Features
1. IDE Interface for public key registration of development machine on
Remote Machine for seamless syncing of files between the two machines
via ssh. Also, making an extensible interface to support adb, sdb in
future
2. Interface for setting up a toolkit (Compiler, Debugger, Qt
Tool-chain, cmake, qmake, qbs, sysroot) of a Remote Machine on the
Development Machine's IDE
3. Opening projects of Remote Machine in Development Machine (using an
interface identical to the one used for opening project on Development
Machine)
4. Automatic syncing of workspace between Development Machine and
Remote Machine(on every save & periodically) - to be implemented using
rsync
5. Compilation of code on the remote machine with the tool-chain setup there
6. Execution & Debugging code on Remote Machine or Target Machine
7. Supporting Clang based code completion, goto-definition &
refactoring. Clang will run on the development machine
8. Provide Version Control interface for the project in Development
Machine and perform corresponding actions on Remote Machine
9. Support multiple platforms(Windows, Mac, GNU/Linux) for the
Development Machine and Remote Machine environment

Plausible Difficulties
1. Writing a filesystem wrapper for handling access of files on remote
system -  This change could impact multiple other plugins and it needs
to be thoroughly tested for multiple use-cases

Mentor -
To be decided

Kindly share your thoughts, comments and suggestions on the same.

With Best Regards,
Sree Gowtham Josyula

On Tue, Mar 13, 2018 at 2:20 AM, Riitta-Leena Miettinen
<Riitta-Leena.Miettinen at qt.io> wrote:
> Hello,
>
> Creating custom compilers is documented here: http://doc.qt.io/qtcreator/creator-tool-chains.html#adding-custom-compilers
>
> Leena
>
> ----------------------------------------------------------------------------------------------------------------------
> Leena Miettinen
> Documentation Engineer
>
> The Qt Company Germany GmbH
> Rudower Chaussee 13
> D-12489, Berlin, Germany
> Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho
> Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B
> riitta-leena.miettinen at qt.io
> +49 30 63 92 3255
> http://qt.io
>
>> -----Original Message-----
>> From: Qt-creator [mailto:qt-creator-bounces+riitta-leena.miettinen=qt.io at qt-
>> project.org] On Behalf Of Eike Ziller
>> Sent: Dienstag, 13. März 2018 10:00
>> To: Sree Gowtham Josyula <sreegowthamj at gmail.com>
>> Cc: qt-creator at qt-project.org
>> Subject: Re: [Qt-creator] GSoC 2018: New feature proposal for Qt Creator
>>
>>
>> > On Mar 13, 2018, at 09:54, Sree Gowtham Josyula
>> <sreegowthamj at gmail.com> wrote:
>> >
>> > Hi Orgad,
>> >
>> > I do not understand what you mean by a custom compiler. Is it some
>> > sort of a script on development machine which returns the same values
>> > as the remote compiler when queried with -v and -dM flags? What is its
>> > significance?
>>
>> In Qt Creator settings (Build & Run > Compilers > Add > Custom) you can create
>> a “custom” compiler, manually specifying ABI, predefined macros, system
>> include paths etc.
>> Then you can set that as a compiler for the kit, to make code completion work
>> with these values.
>>
>> Br, Eike
>>
>> >
>> > On Tue, Mar 13, 2018 at 12:41 AM, Orgad Shaneh <orgads at gmail.com>
>> wrote:
>> >> On Mon, Mar 12, 2018 at 11:33 PM, Harri Pasanen <harri at mpaja.com>
>> wrote:
>> >>>
>> >>>
>> >>>
>> >>>> On Mar 12, 2018, at 4:32 PM, Konstantin Tokarev <annulen at yandex.ru>
>> >>>> wrote:
>> >>>>
>> >>>>
>> >>>>
>> >>>> 12.03.2018, 15:46, "Orgad Shaneh" <orgads at gmail.com>:
>> >>>>> On Mon, Mar 12, 2018 at 1:38 PM, Sree Gowtham Josyula
>> >>>>> <sreegowthamj at gmail.com> wrote:
>> >>>>>> Hi André & Everyone,
>> >>>>>>
>> >>>>>> Thanks for showing interest in my suggestion. QTCREATORBUG-16246
>> is
>> >>>>>> indeed almost like what I had intended in my previous mail.
>> >>>>>>
>> >>>>>>> * Would it be enough to have the files on a network share instead of
>> >>>>>>> rsync'ing them?
>> >>>>>>> * Is it really needed to have Clang running on the remote machine?
>> >>>>>>> Would it be enough to have access to the included headers on
>> remote?
>> >>>>>>
>> >>>>>> I think Network share you suggest is a good idea. It solves both of
>> >>>>>> the above issues. With network sharing, we wouldn't need rsync and we
>> >>>>>> wouldn't need to run clang on remote machine.
>> >>>>>>
>> >>>>>> I will refine my initial proposal and put forth a more detailed
>> >>>>>> proposal considering your suggestions and more use-cases asap.
>> >>>>>> If you have any other thoughts and suggestions, kindly let me know.
>> >>>>>
>> >>>>> Hi,
>> >>>>>
>> >>>>> I strongly suggest not to use network share. We tried that several
>> >>>>> years ago (with SMB), and it was awful. Parsing takes forever over the
>> >>>>> network. Working locally and using rsync before build works much better
>> >>>>> (once you have ssh keys set up).
>> >>>>>
>> >>>>> We have a local partial copy of the sysroot, which includes the include
>> >>>>> directory, and the shared libraries that are linked with our application
>> >>>>> (for each platform we support).
>> >>>>
>> >>>> Why not to go further and get full copy and toolchain locally?
>> >>>>
>> >>>
>> >>> Network share would in a proper setup be the local disk of the compilation
>> >>> server.
>> >>>
>> >>> Also, one cannot copy locally the toolchain if the server is different OS,
>> >>> unless a cross compilation environment is setup, which in itself is a major
>> >>> piece of work.
>> >>
>> >>
>> >> That's right. What we did was to create dummy compilers that return the
>> same
>> >> values as the real compiler when called with -v and -dM etc. This is no
>> >> longer needed, as a "custom compiler" can be created instead.
>> >>
>> >> I suggest to read the values from the remote compiler, and create a local
>> >> custom compiler with the same values (except include directories which
>> >> should be adapted to the local sysroot location).
>> >>
>> >> - Orgad
>> > _______________________________________________
>> > Qt-creator mailing list
>> > Qt-creator at qt-project.org
>> > http://lists.qt-project.org/mailman/listinfo/qt-creator
>>
>> --
>> 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
>>
>> _______________________________________________
>> Qt-creator mailing list
>> Qt-creator at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/qt-creator



More information about the Qt-creator mailing list