An FPGA project often has more than one board or part. Keep those choices in
targets/ and select one explicitly instead of editing the project descriptor
before every build.
The command
rr target list
rr target show <name>
rr target set <name>
rr target without a subcommand prints the active configuration. list shows
the available target files. show prints the resolved YAML, and set changes
the active target used by subsequent commands.
Result
In a new project with no target files, the command is explicit:
No targets found in targets/ Create a target: mkdir -p targets && cp project.yml targets/my_board.yml
Create a target file, edit its board and part values, then select it:
mkdir -p targets
cp project.yml targets/board_a.yml
rr target set board_a
rr target
The selected target is then the input to rr sim, rr synth, and the other
project commands. Commit target files when they represent supported hardware;
do not commit a generated selection that only exists on one workstation.
What this avoids
The target file is the boundary between project structure and board-specific values. A second board should be another target file, not a forked source tree or a hand-edited vendor project.