August 12, 2014

Project generators in python for various IDE (uvision at the moment only)

It's been a while I posted something. I reallocated myself and started a new job, as you could notice, thus I didn't have time to write more news. I can ensure you, there are more things I'll be sharing. Let's begin with the one I have been programming last days.

There was a discussion for quite a while about creating exporters for small projects. A generator which could be easily edited and ported to a new platform or a new project. Many projects have own exporters (stay with a term: project generators), but don't share it with the world.

As some of you might have noticed, there were a problem with projects in CMSIS-DAP mbed repository. Projects are tracked by the version control system, as there are no generators. This introduces some clatter to the project, as IDE updates it's project files, without even changing any settings. Then a user sends a pull request with unintentionally updated project files. Not to mention if for a project there are more targets with various settings, the maintenance becomes cumbersome. What if you change a name of common file? Yes, update all projects which are using it.


I decided to give a shot to write trivial project generators in python based on yaml records. I published them few days ago, but there was no example how use records for a project. Therefore there was published an example for project generators. It is for K20D50M target, blinky demo based on mbed sources:

Project generator - mbed examples [https://github.com/0xc0170]
 
 Currently, project generators support K20D50M target and uvision IDE. There is GCC class but needs more work (planned for upcoming days).


Be aware, it's still in early stage, so the structure of records is subject to change. I published it, primary as I don't have that much free time to be able to expand it dozen of targets and IDE's, therefore I hope that publishing it and providing an example how it works, will attract more developers.
Do you have a project where you could benefit from exporting to various IDE? Give it a try.