Supporting the CMake file API in the project/build plugin ?
Alexander Neundorf
neundorf at kde.org
Wed Nov 15 22:09:07 GMT 2023
Hi,
On Donnerstag, 7. September 2023 20:44:07 CET christoph at 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 ?
Alex
More information about the KWrite-Devel
mailing list