Scroll to navigation

PROGEN(1) User Commands PROGEN(1)

NAME

progen - generate and manage project files for embedded development tools

SYNOPSIS

progen [GLOBAL_ARGUMENT] COMMAND [ARGUMENTS]

DESCRIPTION

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
enable verbose mode, which increases progress information
-vvv
enable debug mode

COMMANDS

init


progen init -p PROJECT -tar TARGET_NAME [-dir SCAN_DIR] -o OUTPUT_DIR

    

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

generate


progen generate -f FILE [-p PROJECT] [-t TOOL] [-b] [-c]

    

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

build


progen build -f FILE [-p PROJECT] [-c]

    

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)
-c
copy sources (as it exports first, this is used for exporting prior to building)

list


progen list targets
progen list tools
progen list -f FILE project

    

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

clean


progen clean -f FILE -p PROJECT [-t TOOL]

    

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)

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

    

COPYRIGHT

Copyright 2014-15 Martin Kojtal

AUTHOR

This manual page is based on the progen documentation. It was created by Nick Morrott <knowledgejunkie@gmail.com> for the Debian GNU/Linux system, but may be used by others

SEE ALSO

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

December 2018 0.9.13