progen - generate and manage project files for embedded
development tools
progen [GLOBAL_ARGUMENT] COMMAND
[ARGUMENTS]
progen allows you to define an embedded project in text
(YAML) files and generate IDE-specific project files based on the rules
defined in these records.
progen supports the following global arguments for all
commands listed below:
- -v
- increase verbosity of output (repeat for even more verbose output)
- -q
- decrease verbosity of output (repeat for even less verbose output)
-
progen init -p PROJECT -tar TARGET_NAME [-dir SCAN_DIR] -o OUTPUT_DIR [-v | -q]
Add progen support to a project
If you want progen support for a project, this is the
command to use. It scans the repository for files and creates 2 YAML
files:
- 1)
- the main project file (projects.yaml), and
- 2)
- a project YAML file
In the project YAML file, there are all sources/includes and other
project-related settings which progen finds in the repository. This
creates a valid progen project file if a folder contains one valid project.
In the case there are many, this command can serve at least as guidance -
edit and move the YAML file accordingly to a folder structure to split
projects.
Arguments
- -p
- project name
- -tar
- target name for the project
- -dir
- directory to scan (default: none; scan all in directory progen was
executed in)
- -o
- directory for generated files
- -v
- increase verbosity of output (repeat for even more verbose output)
- -q
- decrease verbosity of output (repeat for even less verbose output)
-
progen generate -f FILE [-p PROJECT] [-t TOOL] [-b] [-c] [-o OPTIONS] [-j JOBS] [-v | -q]
Export defined projects
Arguments
- -f FILE
- path to projects.yaml file
- -p PROJECT
- name of the project to generate. If not specified, all projects within
projects in projects.yaml are exported
- -t TOOL
- tool name (uvision, iar, etc). If not specified, tools are checked in
records (tool_supported).
- -b
- build the exported project (note: not every tool supports building a
project)
- -c
- copy all files defined for a project to exported directory
- -o OPTIONS
- toolchain options
- -j
- number of concurrent jobs to use for generating projects (default is 1;
not supported by all tools)
- -v
- increase verbosity of output (repeat for even more verbose output)
- -q
- decrease verbosity of output (repeat for even less verbose output)
-
progen build -f FILE [-p PROJECT] [-t TOOL] [-c] [-k] [-o OPTIONS] [-x] [-j JOBS] [-v | -q]
Export a project, then build it. Note that not all tools support
building.
Arguments
- -f FILE
- path to projects.yaml file
- -p PROJECT
- name of the project to build (if not specified, all projects within
projects in projects.yaml are built)
- -t TOOL
- build project files for specified tool
- -c
- copy sources (as it exports first, this is used for exporting prior to
building)
- -k
- clean project before building
- -o OPTIONS
- toolchain options
- -x
- stop on first failure
- -j
- number of concurrent build jobs (default is 1; not supported by all
tools)
- project
- specify projects to be generated and built
- -v
- increase verbosity of output (repeat for even more verbose output)
- -q
- decrease verbosity of output (repeat for even less verbose output)
-
progen list targets [-v | -q]
progen list tools [-v | -q]
progen list -f FILE projects [-v | -q]
List targets, tools or projects
Arguments
- targets
- list all supported targets
- tools
- list all supported tools
- projects
- list all projects the repository supports (requires -f argument
specified)
- -f FILE
- path to projects.yaml
- -v
- increase verbosity of output (repeat for even more verbose output)
- -q
- decrease verbosity of output (repeat for even less verbose output)
-
progen clean -f FILE -p PROJECT [-t TOOL] [-v | -q]
Remove progen files/folders
This command removes progen-related files/folders. If progen
generates data to various folders (for example, a per-project directory
somewhere), this command will remove those folders.
Arguments
- -f FILE
- path to projects.yaml file
- -p PROJECT
- the project name which should be cleaned (removed)
- -t TOOL
- the tool name (if not specified, tools are taken from
tools_supported)
- project
- specify projects to be cleaned (removed)
- -v
- increase verbosity of output (repeat for even more verbose output)
- -q
- decrease verbosity of output (repeat for even less verbose output)
progen supports generating projects for the following
tools:
- •
- uVision4 and uVision5
- •
- IAR
- •
- Makefile (GCC ARM)
- •
- Makefile (ARMCC)
- •
- Cmake (GCC ARM)
- •
- CoIDE (GCC ARM)
- •
- Eclipse (Makefile with GCC ARM)
- •
- Sublime (Makefile with GCC ARM)
- •
- Visual studio (Makefile with GCC ARM)
To generate a uvision project file for the k20d50m_blinky
target:
-
progen generate -f projects.yaml -p k20d50m_blinky -t uvision
Copyright 2014-15 Martin Kojtal
This manual page is based on the progen documentation. It was
created by Nick Morrott <nickm@debian.org> for the Debian GNU/Linux
system, but may be used by others.
valinor(1), progendef(1)
Getting Started Guide:
https://github.com/project-generator/project_generator/wiki/Getting_started
Project Generator examples:
https://github.com/project-generator/project_generator_mbed_examples