Your first application

Pick a prefix, run an installer and start the program it installs.

Pick a prefix

Complete the desktop component setup first. Direct3D applications also need the graphics DLLs and runtime path.

Give the application a prefix of its own:

export RAVEN_PREFIX="$HOME/.local/share/raven/my-first-app"

Raven creates the Windows folders the first time it opens the prefix. Keep the same value for everything you do with that application.

Install it

Run the vendor’s installer the way you would on Windows:

build/native/raven --run-process --execution=native \
  --timeout-ms=600000 --desktop=wayland /path/to/setup.exe

Raven attempts an automatic snapshot for recognised installers. Create a manual snapshot when you need a guaranteed checkpoint: run build/native/raven --snapshot-prefix before-install first, check that it succeeds and confirm the checkpoint with build/native/raven --list-snapshots. Installer detection and snapshot creation can fail; do not assume a rollback point exists.

Start it

The installed program is under drive_c/Program Files (or Program Files (x86) for 32-bit software) inside the prefix:

build/native/raven --run-process --execution=native \
  --timeout-ms=600000 --desktop=wayland \
  "$RAVEN_PREFIX/drive_c/Program Files/App/app.exe"

--timeout-ms is how long Raven lets the program run, in milliseconds; the example gives it ten minutes. Without it the limit is five seconds, which suits quick tests and little else.

Console programs

Connect a command-line tool to your terminal with --stdio=inherit:

build/native/raven --run-process --execution=native \
  --timeout-ms=60000 --stdio=inherit /path/to/program.exe

Pass arguments

Everything after -- goes to the program:

build/native/raven --run-process --execution=native \
  --timeout-ms=60000 --stdio=inherit /path/to/program.exe -- --version

The options before the program keep this order: timeout, desktop, stdio. The command-line reference has the details.

If it does not work

Keep the terminal output and see troubleshooting. A report with the application version and the exact command is the quickest to fix.