1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244
|
% PROGEN(1) __VERSION__ | User Commands
%
% February 2021
# 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
: 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 **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)
## 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
```
# COPYRIGHT
Copyright 2014-15 Martin Kojtal
# AUTHOR
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.
# 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
|