From your checkout directory, with automatic detection of encoders
cmake -B build-server . -GNinja -DWIVRN_BUILD_CLIENT=OFF -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build-serverIt is possible to disable specific encoders, by adding options
-DWIVRN_USE_NVENC=OFF
-DWIVRN_USE_VAAPI=OFF
-DWIVRN_USE_VULKAN_ENCODE=OFF
-DWIVRN_USE_X264=OFF
Force specific audio backends
-DWIVRN_USE_PIPEWIRE=ON
-DWIVRN_USE_PULSEAUDIO=ON
Systemd service and pretty hostname support
-DWIVRN_USE_SYSTEMD=ON
Lighthouse driver support for use with lighthouse-tracked devices
-DWIVRN_FEATURE_STEAMVR_LIGHTHOUSE=ON
Additionally, if your environment requires absolute paths inside the OpenXR runtime manifest, you can add -DWIVRN_OPENXR_MANIFEST_TYPE=absolute to the build configuration.
The WiVRn dashboard requires Qt6, and the WiVRn server.
From your checkout directory, compile both the server and the dashboard:
cmake -B build-dashboard . -GNinja -DWIVRN_BUILD_CLIENT=OFF -DWIVRN_BUILD_SERVER=ON -DWIVRN_BUILD_DASHBOARD=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build-dashboardSee Server for the server compile options.
As Arch package names: git pkgconf glslang cmake jdk17-openjdk librsvg cli11 ktx_software-git (AUR)
OpenSSL build dependencies are also needed, as described here, in particular perl 5.
Download sdkmanager commandline tool and extract it to any directory.
Create your ANDROID_HOME directory, for instance ~/Android.
Review and accept the licenses with
sdkmanager --sdk_root="${HOME}/Android" --licensesInstall the correct cmake version with
sdkmanager --install "cmake;3.31.5"Your device may refuse to install an unsigned apk, so you must create signing keys before building the client
# Create key, then enter the password and other information that the tool asks for
keytool -genkey -v -keystore ks.keystore -alias default_key -keyalg RSA -keysize 2048 -validity 10000
# Substitute your password that you entered in the command above instead of YOUR_PASSWORD
echo signingKeyPassword="YOUR_PASSWORD" > gradle.properties
Once you have generated the keys, the apk will be automatically signed at build time
From the main directory.
export ANDROID_HOME=~/Android
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk/
./gradlew assembleReleaseOutputs will be in build/outputs/apk/release/WiVRn-release.apk
Before using adb you must enable usb debugging on your device:
- Pico - https://developer.picoxr.com/document/unity-openxr/set-up-the-development-environment/ (see first step)
- Quest - https://developer.oculus.com/documentation/unity/unity-env-device-setup/#headset-setup (see "Set Up Meta Headset" and "Test an App on Headset" until step 4)
Also add your device in udev rules: https://wiki.archlinux.org/title/Android_Debug_Bridge#Adding_udev_rules
Then connect the device via usb to your computer and execute the following commands
# Start adb server
adb start-server
# Check if the device is connected
adb devices
# Install apk
adb install build/outputs/apk/release/WiVRn-release.apk
# When you're done, you can stop the adb server
adb kill-server