Re: Supporting the CMake file API in the project/build plugin ?
Alexander Neundorf <[email protected]> Wed, 15 Nov 2023 23:09:07 +0100
| Newsgroups | gmane.comp.kde.devel.kwrite |
|---|---|
| Message-ID | <3974991.ZaRXLXkqSa@unknownc4d9870202f1> |
Hi, On Donnerstag, 7. September 2023 20:44:07 CET [email protected] 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