-
Notifications
You must be signed in to change notification settings - Fork 96
Templates
Project templates are located in the templates directory. Each tool has own template. The data are injected via python module jinja2 or just raw data, this depends on the tool. The recommended approach is to use what tool provides. For example for uvision is to use xml format and then just write all data via dic to xml. Because tool like this has so many options, writing jinja2 with all those thousands options is time-consuming, hard to maintain (what if they add new option). Using the format tool defines, we just add progen data. Please look at them, they are fairly simple for some tools, or more advanced for some.
You can use already created project with some tools. For example, if there is working IAR project, use ewp file as a template for the project, this file will be used to obtain all settings. Progen injects its data (sources, includes, macros) to parsed project file and exports it.
The template file can be per project or per repository. Refer to records section for more info.
The quickest way to start is to use a valid project file, and insert jinja2. It can always be later switched to completely generated from python to any format.
### uVision template fileuVision tool provides default template dictionary which is used in case a user does not provide own project. The optional template file is .uvproj/.uvprojx file.
Default templates for uVision: uvision.uvmpw, uvision.uvoptx and uvision.uvproj
### IAR template fileIAR tool provides default template dictionary which is used in case a user does not provide own project. The optional template file for a project is .ewp file.
Default templates for IAR: iar.ewd, iar.ewp and iar.eww.
### Makefile template fileMakefile template file is generic. It should provide all options for building a project. There are non-generic, specific for each tool, like GCC ARM or ARMCC.
Default template: makefile.tmpl
### CoIDE template fileCoIDE tool provides default template dictionary which is used in case a user does not provide own project. The optional template file for a project is .coproj file.
Progen uses jinja2 in this case as we were having difficulties to export valid project via xml.
Default template: coide.coproj.tmpl
### Eclipse Makefile GNU ARM template fileUser's template not supported.
Eclipse uses jinja2 predefined template file, which is used for exporting.
Default template: eclipse.project.tmpl, eclipse_makefile.cproject.tmpl
### Sublime TextUser's template not supported.
Sublime text uses jinja2 predefined template file, which is used for exporting.
Default template: None
### CMake template fileWe currently provide only CMake for GCC ARM.
Default template: cmakelistgccarm.tmpl
### Visual studio template fileVisual studio template file is a jinja2 template. We generate 2 smaller files from python to xml, but the main project files are in jinja2.
Default template: visual_studio.vcxproj.filters.tmpl, visual_studio.vcxproj.tmpl
** Project generator wiki, 0xc0170 **