.\" Automatically generated by Pandoc 2.9.2.1 .\" .TH "PROGEN" "1" "February 2021" "0.11.0" "User Commands" .hy .SH NAME .PP \f[B]progen\f[R] - generate and manage project files for embedded development tools .SH SYNOPSIS .PP \f[B]progen\f[R] [\f[B]GLOBAL_ARGUMENT\f[R]] \f[B]COMMAND\f[R] [\f[B]ARGUMENTS\f[R]] .SH DESCRIPTION .PP \f[B]progen\f[R] 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. .SH GLOBAL ARGUMENTS .PP \f[B]progen\f[R] supports the following global arguments for all commands listed below: .TP -v increase verbosity of output (repeat for even more verbose output) .TP -q decrease verbosity of output (repeat for even less verbose output) .SH COMMANDS .SS init .IP .nf \f[C] progen init -p PROJECT -tar TARGET_NAME [-dir SCAN_DIR] -o OUTPUT_DIR [-v | -q] \f[R] .fi .PP Add \f[B]progen\f[R] support to a project .PP If you want \f[B]progen\f[R] support for a project, this is the command to use. It scans the repository for files and creates 2 YAML files: .IP "1)" 3 the main project file (projects.yaml), and .IP "2)" 3 a project YAML file .PP In the project YAML file, there are all sources/includes and other project-related settings which \f[B]progen\f[R] 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. .PP \f[B]Arguments\f[R] .TP -p project name .TP -tar target name for the project .TP -dir directory to scan (default: none; scan all in directory \f[B]progen\f[R] was executed in) .TP -o directory for generated files .TP -v increase verbosity of output (repeat for even more verbose output) .TP -q decrease verbosity of output (repeat for even less verbose output) .SS generate .IP .nf \f[C] progen generate -f FILE [-p PROJECT] [-t TOOL] [-b] [-c] [-o OPTIONS] [-j JOBS] [-v | -q] \f[R] .fi .PP Export defined projects .PP \f[B]Arguments\f[R] .TP -f \f[I]FILE\f[R] path to projects.yaml file .TP -p \f[I]PROJECT\f[R] name of the project to generate. If not specified, all projects within projects in projects.yaml are exported .TP -t \f[I]TOOL\f[R] tool name (uvision, iar, etc). If not specified, tools are checked in records (tool_supported). .TP -b build the exported project (note: not every tool supports building a project) .TP -c copy all files defined for a project to exported directory .TP -o \f[I]OPTIONS\f[R] toolchain options .TP -j number of concurrent jobs to use for generating projects (default is 1; not supported by all tools) .TP -v increase verbosity of output (repeat for even more verbose output) .TP -q decrease verbosity of output (repeat for even less verbose output) .SS build .IP .nf \f[C] progen build -f FILE [-p PROJECT] [-t TOOL] [-c] [-k] [-o OPTIONS] [-x] [-j JOBS] [-v | -q] \f[R] .fi .PP Export a project, then build it. Note that not all tools support building. .PP \f[B]Arguments\f[R] .TP -f \f[I]FILE\f[R] path to projects.yaml file .TP -p \f[I]PROJECT\f[R] name of the project to build (if not specified, all projects within projects in projects.yaml are built) .TP -t \f[I]TOOL\f[R] build project files for specified tool .TP -c copy sources (as it exports first, this is used for exporting prior to building) .TP -k clean project before building .TP -o \f[I]OPTIONS\f[R] toolchain options .TP -x stop on first failure .TP -j number of concurrent build jobs (default is 1; not supported by all tools) .TP project specify projects to be generated and built .TP -v increase verbosity of output (repeat for even more verbose output) .TP -q decrease verbosity of output (repeat for even less verbose output) .SS list .IP .nf \f[C] progen list targets [-v | -q] progen list tools [-v | -q] progen list -f FILE projects [-v | -q] \f[R] .fi .PP List targets, tools or projects .PP \f[B]Arguments\f[R] .TP targets list all supported targets .TP tools list all supported tools .TP projects list all projects the repository supports (requires -f argument specified) .TP -f \f[I]FILE\f[R] path to projects.yaml .TP -v increase verbosity of output (repeat for even more verbose output) .TP -q decrease verbosity of output (repeat for even less verbose output) .SS clean .IP .nf \f[C] progen clean -f FILE -p PROJECT [-t TOOL] [-v | -q] \f[R] .fi .PP Remove \f[B]progen\f[R] files/folders .PP 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. .PP \f[B]Arguments\f[R] .TP -f \f[I]FILE\f[R] path to projects.yaml file .TP -p \f[I]PROJECT\f[R] the project name which should be cleaned (removed) .TP -t \f[I]TOOL\f[R] the tool name (if not specified, tools are taken from tools_supported) .TP project specify projects to be cleaned (removed) .TP -v increase verbosity of output (repeat for even more verbose output) .TP -q decrease verbosity of output (repeat for even less verbose output) .SH TOOLS .PP \f[B]progen\f[R] supports generating projects for the following tools: .IP \[bu] 2 uVision4 and uVision5 .IP \[bu] 2 IAR .IP \[bu] 2 Makefile (GCC ARM) .IP \[bu] 2 Makefile (ARMCC) .IP \[bu] 2 Cmake (GCC ARM) .IP \[bu] 2 CoIDE (GCC ARM) .IP \[bu] 2 Eclipse (Makefile with GCC ARM) .IP \[bu] 2 Sublime (Makefile with GCC ARM) .IP \[bu] 2 Visual studio (Makefile with GCC ARM) .SH EXAMPLES .PP To generate a uvision project file for the k20d50m_blinky target: .IP .nf \f[C] progen generate -f projects.yaml -p k20d50m_blinky -t uvision \f[R] .fi .SH COPYRIGHT .PP Copyright 2014-15 Martin Kojtal .SH AUTHOR .PP This manual page is based on the progen documentation. It was created by Nick Morrott for the Debian GNU/Linux system, but may be used by others. .SH SEE ALSO .PP \f[B]valinor\f[R](1), \f[B]progendef\f[R](1) .PP Getting Started Guide: https://github.com/project-generator/project_generator/wiki/Getting_started .PP Project Generator examples: https://github.com/project-generator/project_generator_mbed_examples