Re: [cmake-developers] Creating a Keil uVision generator

2017-01-09 Thread Brad King
On 01/02/2017 06:27 PM, Paul Wilkinson wrote:
> As with the Visual Studio generators, a generator for uVision projects would
> ideally be a multi-configuration generator.

Yes, the layouts sounds similar.  A uVision project generator implementation
could be modeled after the VS 2015 generator.  It would be nice to use the
cmXMLWriter for the actual writing of the files if they are XML syntax
(the VS generator would ideally do this too but pre-dated the helper).

> 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.

This may be a problem.  Unless CMake's buildsystem model:

 https://cmake.org/cmake/help/v3.7/manual/cmake-buildsystem.7.html

can be mapped cleanly to uVision project files then it may not be a good fit.

> 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.

Unfortunately that case sounds so limited that a special case to support it
would not be appropriate for inclusion in CMake.  Way back in the VS 6 days
when CMake started we used template project files for generation, and they
were very painful to maintain and extend.

Thanks,
-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


[cmake-developers] Creating a Keil uVision generator

2017-01-03 Thread Paul Wilkinson
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