Supporting the CMake file API in the project/build plugin ?

Alexander Neundorf neundorf at kde.org
Wed Sep 6 22:32:15 BST 2023


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 ?

Thanks
Alex





More information about the KWrite-Devel mailing list