SUMMARY It appears as though KDevelop is still relying on CMake's server mode. The server mode was superseded in CMake 3.14 by the file-api. Furthermore, the server mode was deprecated in CMake 3.15 and will soon be removed. KDevelop should be updated to use the file-api instead. Doing so may also address some of the other CMake-related issues that are open. Release note announcing the change: https://cmake.org/cmake/help/latest/release/3.14.html#file-based-api Blog post: https://blog.kitware.com/cmake-3-14-0-available-for-download/ file api docs: https://cmake.org/cmake/help/latest/manual/cmake-file-api.7.html
sigh yes very true... thanks for reminding us.
I've started working on this now over at https://invent.kde.org/mwolff/kdevelop/commits/cmake-file-api
OK, the branch is now ready for testing. There are some things left to be done, most notably support for runtimes (docker etc). I'll also have to test it on a real world project outside the unit tests now.
Git commit d38ae65bc3b5304e13fd641b4971939e67f70d09 by Milian Wolff. Committed on 14/02/2020 at 09:23. Pushed by mwolff into branch 'master'. Start implementation of cmake-file-api support Before long, upstream cmake will remove the server support. Instead, the new cmake-file-api is supposed to be used. This patch adds the first baby steps towards that goal. We now write a query file to the required location before running the cmake configure job. Then we can look for the latest available index reply file that belongs to our client request. See: https://cmake.org/cmake/help/latest/manual/cmake-file-api.7.html M +1 -0 plugins/cmake/CMakeLists.txt A +97 -0 plugins/cmake/cmakefileapi.cpp [License: LGPL (v2+)] A +50 -0 plugins/cmake/cmakefileapi.h [License: LGPL (v2+)] M +1 -0 plugins/cmake/tests/CMakeLists.txt A +89 -0 plugins/cmake/tests/test_cmakefileapi.cpp [License: LGPL (v2+)] M +3 -1 plugins/cmakebuilder/cmakejob.cpp https://invent.kde.org/kde/kdevelop/commit/d38ae65bc3b5304e13fd641b4971939e67f70d09
Git commit 958bc087cc1804a054be553f1c81a325590afb12 by Milian Wolff. Committed on 14/02/2020 at 09:23. Pushed by mwolff into branch 'master'. Actually parse the cmake-file-api response files For now, this is only done in the unit test. We are also lacking support for runtimes, as I first want to clarify how this is supposed to be done and tested. M +158 -2 plugins/cmake/cmakefileapi.cpp M +16 -0 plugins/cmake/cmakefileapi.h M +27 -1 plugins/cmake/tests/test_cmakefileapi.cpp https://invent.kde.org/kde/kdevelop/commit/958bc087cc1804a054be553f1c81a325590afb12
Git commit 76ddc001950321190def89d2894cf452dd825870 by Milian Wolff. Committed on 14/02/2020 at 09:23. Pushed by mwolff into branch 'master'. Actually use the cmake-file-api for project import, if possible M +1 -0 plugins/cmake/CMakeLists.txt M +1 -1 plugins/cmake/cmakefileapi.cpp A +72 -0 plugins/cmake/cmakefileapiimportjob.cpp [License: LGPL (v2+)] A +52 -0 plugins/cmake/cmakefileapiimportjob.h [License: LGPL (v2+)] M +24 -3 plugins/cmake/cmakemanager.cpp https://invent.kde.org/kde/kdevelop/commit/76ddc001950321190def89d2894cf452dd825870