On 01/11/2017 04:23 PM, Shmuel H, wrote: > a few endless discussions about this topic
Previous discussions have not ended in a new language being integrated, but that does not mean they failed. Several challenges w.r.t. the internal architecture were identified. A lot of progress has been made in addressing some of those, but there is more work to do. The goal is to separate the representation of the build system model that is fed to the generators from the current CMake language implementation. Once that is done then other approaches/languages can be added to build the model instead of using the current language exclusively. > My current design is using Python as an extension for the regular > CMakeLists.txt files: if there is a CMakeLists.py file, it would be loaded. We'd rather not introduce Python as a dependency of CMake's distribution, even optionally. It may be reasonable to have optional support when Python can be found at runtime. However, any such approach would need to avoid requiring dynamic loading of plugins into CMake or any kind of stable C++ API to be maintained. Since previous such discussions we've now had the cmake-server mode introduced. It allows programs written in any language to communicate with CMake through a JSON protocol. Currently the protocol is very minimal and geared toward IDEs that want to get a representation of the build system after configuration of a build tree. A similar approach could be used to interact with external processes during configuration. Such a protocol would allow programs written in any language to be used for defining CMake build systems. Previous discussions have also identified the value of having a declarative specification format. This is largely orthogonal to the procedural language that drives the configuration process because any such language could still have a command/step that loads the declarative part. -Brad -- 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: http://public.kitware.com/mailman/listinfo/cmake-developers