Compiling the LÖVR code yourself lets you create a custom LÖVR build so you can add your own features or run it on other operating systems. Below is a guide for setting up all the dependencies and compiling the code on various types of systems.
LÖVR depends on the following libraries. They are included as submodules in the deps
directory of
the repository, so make sure you clone with the --recursive
flag or run git submodule update
--init
in an existing repository.
lovr.headset
)lovr.physics
)From the lovr folder, run these commands to create a build folder and compile the project using CMake:
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .
The executable will then exist at /path/to/lovr/build/Debug/lovr.exe
. A LÖVR project (a folder
containing a main.lua
script) can then be dropped onto lovr.exe
to run it, or it can be run
via the command line as lovr.exe path/to/project
.
Install the dependencies using your package manager of choice:
$ brew install assimp glfw3 luajit physfs openal-soft ode libccd
Next, build using CMake, as above:
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .
The lovr executable should exist in lovr/build
now. It's recommended to set up an alias or
symlink so that this executable can be found in your PATH environment variable. Once that's done,
you can run a project like this:
$ lovr /path/to/myGame
You may need to set the
PKG_CONFIG_PATH
environment variable for OpenAL to be located properly. If you run into this, see Troubleshooting below for more info.
First, install the dependencies using your package manager of choice.
$ pacman -S assimp glfw-x11 luajit physfs openal ode
$ sudo apt-get install build-essential cmake libassimp-dev libglfw3-dev libluajit-5.1-dev libphysfs-dev libopenal-dev libode-dev
Then, build with CMake:
$ mkdir build
$ cd build
$ cmake ..
$ cmake --build .
On Linux, LÖVR needs to run within the Steam Runtime. To do this, first install Steam. Next, install the Steam udev rules. Then, run LÖVR within the Steam runtime:
$ ~/.steam/steam/ubuntu12_32/steam-runtime/run.sh lovr
If you receive errors related to libstdc++
, set the LD_PRELOAD
environment variable when running
the command:
$ LD_PRELOAD='/usr/$LIB/libstdc++.so.6 /usr/$LIB/libgcc_s.so.1' ~/.steam/steam/ubuntu12_32/steam-runtime/run.sh lovr
First, install the Emscripten SDK.
Unix:
$ mkdir build
$ cd build
$ emcmake cmake ..
$ emmake make -j2
Windows (from a Visual Studio Command Prompt, make sure the Emscripten SDK is on PATH):
$ mkdir build
$ cd build
$ emcmake cmake -G "NMake Makefiles" ..
$ emmake nmake
The above commands will output lovr.js
, lovr.wasm
, and lovr.html
. The easiest way to run LÖVR
from here is to use emrun
:
$ emrun --browser firefox lovr.html
To package a game, run:
$ python "$EMSCRIPTEN/tools/file_packager.py" game.data --no-heap-copy --preload /path/to/game@/ --js-output=game.js
Which will output game.js
and game.data
. You can then include the game.js
script on the HTML
page (before the lovr.js script tag) to run the project.
For an improved WebVR workflow with live-reloading, check out lovr-webvr-server
.
/usr/local/opt/openal-soft/lib/pkgconfig
) to your PKG_CONFIG_PATH
environment variable.
Installing openal-soft with brew will print out a message telling you how to do this.