progen1
Generate and manage project files for embedded development tools
Usage
progen [GLOBAL_ARGUMENT]
COMMAND
[ARGUMENTS]
Overview
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.
Global arguments
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) |
Commands
init
-
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
progenwas 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)
generate
-
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)
build
-
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)
list
-
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)
clean
-
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)
Tools
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) |
Examples
To generate a uvision project file for the k20d50m_blinky target:
-
progen generate -f projects.yaml -p k20d50m_blinky -t uvision
Releases
11 releases since Debian 3.0 (Woody); the text changed 4 times.
-b since Debian 10 (Buster);
-c since Debian 10 (Buster);
-dir since Debian 10 (Buster);
-f since Debian 10 (Buster);
-j since Debian 11 (Bullseye);
-k since Debian 11 (Bullseye);
-o since Debian 10 (Buster);
-p since Debian 10 (Buster);
-q since Debian 11 (Bullseye);
-t since Debian 10 (Buster);
-tar since Debian 10 (Buster);
-v since Debian 11 (Bullseye);
-x since Debian 11 (Bullseye).
--help until Debian 8 (Jessie);
-h until Debian 8 (Jessie);
-lower until Debian 8 (Jessie).