PROGEN(1)
π PROGEN(1) π
okay bestie, welcome to the manual page for progen β the project generator that lives in your terminal and is, no exaggeration, that girl. this is the User Commands section, and we are about to get you fully caught up. no cap. β¨
β¨ NAME β¨
progen β generate and manage project files for embedded development tools π οΈπ
π¦ SYNOPSIS π¦
progen [GLOBAL_ARGUMENT] COMMAND [ARGUMENTS]
πΈ DESCRIPTION πΈ
so here's the vibe: progen lets you define an embedded project in text (YAML) files and then generate IDE-specific project files based on the rules defined in these records. that's it. that's the whole serve. write it once in YAML, let progen do the rest, main character energy only. π
π GLOBAL ARGUMENTS π
progen supports the following global arguments for all the commands listed below, so these are like the universal accessories that go with every outfit:
-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 β literally the glow-up command. β¨
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:
- the main project file (
projects.yaml), and - 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. lowkey a starter kit, highkey a lifesaver. π«Ά
Arguments
-pβ project name-tarβ target name for the project-dirβ directory to scan (default: none; scan all in directoryprogenwas 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 β the moment where your YAML becomes real files, it's giving manifestation. π₯
Arguments
-fFILE β path toprojects.yamlfile-pPROJECT β name of the project to generate. If not specified, all projects within projects inprojects.yamlare exported-tTOOL β 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-oOPTIONS β toolchain options-jβ number of concurrent jobs to use for generating projects (default is1; 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 β so pls check before you come for it. π
Arguments
-fFILE β path toprojects.yamlfile-pPROJECT β name of the project to build (if not specified, all projects within projects inprojects.yamlare built)-tTOOL β 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-oOPTIONS β toolchain options-xβ stop on first failure π-jβ number of concurrent build jobs (default is1; 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 β the window-shopping command, obsessed. ποΈ
Arguments
targetsβ list all supported targetstoolsβ list all supported toolsprojectsβ list all projects the repository supports (requires-fargument specified)-fFILE β path toprojects.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 β the spring cleaning episode. π§Ή
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
-fFILE β path toprojects.yamlfile-pPROJECT β the project name which should be cleaned (removed)-tTOOL β the tool name (if not specified, tools are taken fromtools_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 β the whole roster, and every single one of them ate:
- 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
look at that. one line. iconic behaviour. π
π 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. ty bestie for your service. π
π 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
and that's the whole page, bestie. go forth and generate. π β¨
version 0.12.0 β dated February 2021 πΈ β no cap, that's genuinely the version and date this page is signed off with, so if you were looking for the receipts, there they are. bye bestie, ily, go build something ππ¦π
π¦ where this page comes from
- debian trixie: python3-project-generator 0.12.0-2 Β· Apache-2.0
- ubuntu noble: python3-project-generator 0.12.0-2 Β· Apache-2.0
- ubuntu questing: python3-project-generator 0.12.0-2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms