Command "open-project"

This command opens a LibrePCB project and lets you execute some tasks with it.

Command
./librepcb-cli open-project --help
Output
Usage: ./librepcb-cli [options] open-project [command_options] project
LibrePCB Command Line Interface

Options:
  -h, --help                         Print this message.
  -V, --version                      Displays version information.
  -v, --verbose                      Verbose output.
  --erc                              Run the electrical rule check, print all
                                     non-approved warnings/errors and report
                                     failure (exit code = 1) if there are
                                     non-approved messages.
  --drc                              Run the design rule check, print all
                                     non-approved warnings/errors and report
                                     failure (exit code = 1) if there are
                                     non-approved messages.
  --drc-settings <file>              Override DRC settings by providing a *.lp
                                     file containing custom settings. If not
                                     set, the settings from the boards will be
                                     used instead.
  --run-job <name>                   Run a particular output job. Can be given
                                     multiple times to run multiple jobs.
  --run-jobs                         Run all existing output jobs.
  --jobs <file>                      Override output jobs with a *.lp file
                                     containing custom jobs. If not set, the
                                     jobs from the project will be used instead.
  --outdir <path>                    Override the output base directory of
                                     jobs. If not set, the standard output
                                     directory from the project is used.
  --export-schematics <file>         Export schematics to given file(s).
                                     Existing files will be overwritten.
                                     Supported file extensions: pdf, svg, bmp,
                                     cur, ico, jpeg, jpg, pbm, pgm, png, ppm,
                                     xbm, xpm
  --export-bom <file>                Export generic BOM to given file(s).
                                     Existing files will be overwritten.
                                     Supported file extensions: csv
  --export-board-bom <file>          Export board-specific BOM to given
                                     file(s). Existing files will be
                                     overwritten. Supported file extensions: csv
  --bom-attributes <attributes>      Comma-separated list of additional
                                     attributes to be exported to the BOM.
                                     Example: "SUPPLIER, SKU"
  --export-pcb-fabrication-data      Export PCB fabrication data
                                     (Gerber/Excellon) according the fabrication
                                     output settings of boards. Existing files
                                     will be overwritten.
  --pcb-fabrication-settings <file>  Override PCB fabrication output settings
                                     by providing a *.lp file containing custom
                                     settings. If not set, the settings from the
                                     boards will be used instead.
  --export-pnp-top <file>            Export pick&place file for automated
                                     assembly of the top board side. Existing
                                     files will be overwritten. Supported file
                                     extensions: csv, gbr
  --export-pnp-bottom <file>         Export pick&place file for automated
                                     assembly of the bottom board side. Existing
                                     files will be overwritten. Supported file
                                     extensions: csv, gbr
  --export-netlist <file>            Export netlist file for automated PCB
                                     testing. Existing files will be
                                     overwritten. Supported file extensions:
                                     d356
  --board <name>                     The name of the board(s) to export. Can be
                                     given multiple times. If not set, all
                                     boards are exported.
  --board-index <index>              Same as '--board', but allows to specify
                                     boards by index instead of by name.
  --remove-other-boards              Remove all boards not specified with
                                     '--board[-index]' from the project before
                                     executing all the other actions. If
                                     '--board[-index]' is not passed, all boards
                                     will be removed. Pass '--save' to save the
                                     modified project to disk.
  --variant <name>                   The name of the assembly variant(s) to
                                     export. Can be given multiple times. If not
                                     set, all assembly variants are exported.
  --variant-index <index>            Same as '--variant', but allows to specify
                                     assembly variants by index instead of by
                                     name.
  --set-default-variant <name>       Move the specified assembly variant to the
                                     top before executing all the other actions.
                                     Pass '--save' to save the modified project
                                     to disk.
  --save                             Save project before closing it (useful to
                                     upgrade file format).
  --strict                           Fail if the project files are not strictly
                                     canonical, i.e. there would be changes when
                                     saving the project. Note that this option
                                     is not available for *.lppz files.

Arguments:
  open-project                       Open a project to execute project-related
                                     tasks.
  project                            Path to project file (*.lpp[z]).

Examples

Run ERC, DRC and Output Jobs

This command is useful for Continuous Integration of LibrePCB projects because it reports failure if you check in projects with non-approved ERC or DRC messages. In addition, it generates all production data files of the configured output jobs so you don’t have to do it manually.

Command
./librepcb-cli open-project --erc --drc --run-jobs MyProject.lpp
Output
Open project 'MyProject.lpp'...
Run ERC...
  Approved messages: 7
  Non-approved messages: 2
    - [WARNING] Net signal connected to less than two pins: "CAN_RX"
    - [WARNING] Net signal connected to less than two pins: "JTCK"
Run DRC...
  Board 'default':
    Approved messages: 0
    Non-approved messages: 5
      - [ERROR] Clearance copper ↔ hole < 0.25 mm
      - [ERROR] Clearance copper ↔ hole < 0.25 mm
      - [ERROR] Clearance drill ↔ drill < 0.35 mm
      - [ERROR] Clearance plane ↔ board outline < 0.3 mm
      - [ERROR] Clearance plane ↔ board outline < 0.3 mm
Run output job 'Schematic PDF'...
  => 'output/v1/MyProject_v1_Schematic.pdf'
Run output job 'Gerber/Excellon'...
  => 'output/v1/gerber/MyProject_v1_DRILLS-NPTH.drl'
  => 'output/v1/gerber/MyProject_v1_DRILLS-PTH.drl'
  => 'output/v1/gerber/MyProject_v1_OUTLINES.gbr'
  => 'output/v1/gerber/MyProject_v1_COPPER-TOP.gbr'
  => 'output/v1/gerber/MyProject_v1_COPPER-BOTTOM.gbr'
  => 'output/v1/gerber/MyProject_v1_SOLDERMASK-TOP.gbr'
  => 'output/v1/gerber/MyProject_v1_SOLDERMASK-BOTTOM.gbr'
  => 'output/v1/gerber/MyProject_v1_SILKSCREEN-TOP.gbr'
  => 'output/v1/gerber/MyProject_v1_SILKSCREEN-BOTTOM.gbr'
  => 'output/v1/gerber/MyProject_v1_SOLDERPASTE-TOP.gbr'
  => 'output/v1/gerber/MyProject_v1_SOLDERPASTE-BOTTOM.gbr'
Finished with errors!

In this example, the application reported errors and exited with code 1 because there are non-approved ERC/DRC messages.