Re: Supporting the CMake file API in the project/build plugin ?
[email protected] Thu, 16 Nov 2023 08:20:53 +0100
| Newsgroups | gmane.comp.kde.devel.kwrite |
|---|---|
| Message-ID | <[email protected]> |
On 2023-11-15 23:09, Alexander Neundorf wrote: > 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 ? 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