Hello! Since about July of 2018, I've been trying to design an interpreter library for the CMake language, common for the cmake, cpack, and ctest tools. It was my idea that I could create an extensible library for the CMake project, that could make it easier to add commands, generators, and integration into other scripting languages.
Today, I'm calling it quits. It turns out that, even after retrying several times with fewer requirements, that it's just too much work for one person (probably too much for two or three people as well.) I've uploaded all the repositories of the several attempts I've made at doing this. https://gitlab.kitware.com/tay10r/cmake-interpretation The cmake-interpretation is probably the furthest I've taken any of the projects, and was the first attempt I made at the idea. I believe I posted this project in the mailing list as cmake-lang when I was first starting it out. See tag 'last-known-working-state' if you try to build it. https://gitlab.kitware.com/tay10r/cmEngine The cmEngine project was written once in C++ and then over again in C. The version I uploaded is the C version. The cmEngine project is neat because the interpreter can entirely be sandboxed and the testing for it is very elaborate (80% test coverage.) I would say this project has the best foundation. It's also got the most documentation. https://gitlab.kitware.com/tay10r/cmlang This is the latest attempt at the redesign. This version has the fastest lexer+parser by far. Rudimentary testing indicated to me that the lexer+parser beat the one in original CMake project by a decent margin. This is probably due to the use of memory mapping the source file and fewer number of calls to malloc. The diagnostics in this project are probably the best and most expressive. Feel free to pick apart these projects anyway you choose to. I'm fine with any of them being relicensed to Apache 2.0, MIT, or BSD (in that order of preference) if anyone decides to use them.
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake-developers