[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kwrite-devel
Subject:    Re: Supporting the CMake file API in the project/build plugin ?
From:       christoph () cullmann ! io
Date:       2023-11-16 7:20:53
Message-ID: aead312095b6464d89b201ab9e9ddfb4 () cullmann ! io
[Download RAW message or body]

On 2023-11-15 23:09, Alexander Neundorf wrote:
> Hi,
> 
> On Donnerstag, 7. September 2023 20:44:07 CET christoph@cullmann.io 
> wrote:
>> On 2023-09-06 23:32, Alexander Neundorf wrote:
>> > Hi,
>> >
>> > currently cmake can generate a kate project file, and then, when kate
>> > opens
>> > some file in the buildtree, e.g. the project file, the kate project
>> > plugin reads
>> > the project file and populates the list of files and the build targets.
>> > With cmake 3.27 this has been marked officially as obsolete (even
>> > though the
>> > kate project generator gained some features in cmake 3.27).
>> >
>> > Nevertheless, medium term it would be better if kate would use the
>> > cmake file
>> > API.
>> > What would that mean ?
>> > kate could search the CMakeCache.txt for CMAKE_PROGRAM, which contains
>> > the
>> > path to the cmake executable which generated this buildtree.
>> > Then kate would write some simple json file into the build tree, and
>> > then rerun
>> > cmake on that buildtree.
>> > cmake will see the file kate has written, and generate a json file
>> > which
>> > contains the source directory, the list of targets, the source files
>> > for each
>> > target.
>> > With this information kate could:
>> > - use that list of source files as project files, or use the git/svn
>> > support in
>> > kate to get all files which are in the source directory
>> > - get  the list of targets and generate a build target for each of
>> > them. Those
>> > could be executed by running cmake (so it would automatically work for
>> > any
>> > build tree, whether it is ninja, make, or msvc): cmake --build
>> > <buildir> --
>> > config <Config> --target <target>
>> >
>> > What do you suggest how this would fit into the project- and
>> > build-plugins ?
>> > I guess the session support is not related ?
>> 
>> Hi,
>> 
>> thanks for taking a look at that!
>> 
>> I think that would fit into the project plugin as another 
>> auto-discovery
>> mode,
>> like we have it for the various version control systems.
>> 
>> There we execute the git/.../... commands.
> 
> I've got a first version working locally here (still Qt5 based).
> So I'll clone on gitlab and create a merge request ?

Hi,

Great ;)

Yes, or put it to some work/xxx branch in the
main repo, that makes it even easier to try.

Greetings
Christoph

> 
> Alex
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic