Hi all, I am involved in a software project targeting a handful of ARM Cortex-M microcontrollers. We develop the software using the Keil uVision v5 IDE [1]. We are considering whether CMake could help us with some of the limitations we encounter using uVision alone.
Does anyone have experience or insight in to creating a CMake generator for an embedded systems IDE like uVision? Read on for some technical details. A uVision project's structure appears _roughly_ similar to a Microsoft Visual Studio 12 project. uVision has a Multi-Project Workspace (.uvmpw) rather than a VS solution (.sln), and a uVision Project (.uvprojx) instead of a VS project (.vcxproj). One notable difference in the XML schemas: in uVision, the source file elements are a child of the target elements (a uVision "target" is comparable to a VS "configuration"), in contrast to VS's approach where a configuration-specific option is a child of the source file element and has a "Condition" attribute. As with the Visual Studio generators, a generator for uVision projects would ideally be a multi-configuration generator. I expect there are many concepts in CMake that wouldn't map to a uVision option, and vice-versa. For example the "Packs" system used by uVision might not mesh well with what CMake understands as a library. For my limited requirements -- a single project workspace, where the project consists of exactly one executable and no libraries other than some third-party libraries passed to linker -- I expect we could make do with a skeleton/template .uvprojx and the CMake generator would fill in the gaps for the source files. Some of the benefits I would imagine we would get from such a generator: - more human-friendly and diff-friendly project files (CMakeLists.txt instead of .uvprojx) - avoiding a combinatorial explosion of configurations by using the CMake language and its cache variables. [1] http://www2.keil.com/mdk5/uvision/ Thanks, Paul Wilkinson http://www.cmedrobotics.com/ ________________________________ This e-mail message is confidential and for use by the addressee only. If you are not the intended recipient, you must not use, disclose, copy or forward this transmission. Please return the message to the sender by replying to it and then delete the message from your computer. Cambridge Medical Robotics shall not be held liable to any person resulting from the use of any information contained in this e-mail and shall not be liable to any person who acts or omits to do anything in reliance upon it. Cambridge Medical Robotics does not accept responsibility for changes made to this message after it was sent. Company Information: Name: Cambridge Medical Robotics Limited. Registered Address: Unit 2, Crome Lea Business Park, Madingley Road, Cambridge, CB23 7PH, UK. Registered as a Company in England: 08863657 VAT Number: GB 186 4383 74. i...@cmedrobotics.com -- 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