3.6 KiB
Compiling LÖVR
You might want to compile LÖVR from source so you can use LÖVR on other operating systems or create a custom build. Below is a guide for setting up all the dependencies and compiling the code on various operating systems.
Dependencies
- Lua or LuaJIT
- GLFW (3.2+)
- OpenGL (3.3, ES3, or WebGL 2)
- assimp
- OpenVR (1.0.9, for
lovr.headset
) - PhysicsFS
- OpenAL (1.17+ recommended for HRTF support)
- FreeType
- msdfgen
- ODE (for
lovr.physics
) - Emscripten (optional, for compiling for web)
These can be found as submodules in the deps
directory of the repository. To initialize the
submodules, clone LÖVR with the --recursive
option or run this command in an existing repo:
git submodule update --init
Windows
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
.
macOS
Install the dependencies using your package manager of choice:
brew install assimp glfw3 luajit physfs freetype openal-soft ode
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 exists on your path. Once that's done, you can run a game like this:
lovr /path/to/myGame
Linux
On Arch Linux, first install necessary dependencies:
pacman -S assimp glfw-x11 luajit physfs freetype2 openal ode
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
Currently, there are performance issues between SteamVR and OpenGL apps. These are being rapidly resolved with newer versions of graphics drivers and SteamVR.
WebVR
First, install the Emscripten SDK. Make sure you're running this branch of Emscripten.
Unix:
mkdir build
cd build
emcmake cmake -DCMAKE_BUILD_TYPE=Release ..
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.html
, lovr.js
, and lovr.js.mem
. To package a game, run:
python /path/to/emscripten/tools/file_packager.py game.data --preload /path/to/game@/ --js-output=game.js
Which will output game.js
and game.data
. The lovr.html
file will need to be modified to
include game.js
in a script tag.
Troubleshooting
- If you get "CMake no CMAKE_CXX_COMPILER found" on Windows, then install Visual Studio and create a blank C++ project, which will prompt you to install the compilers and tools necessary to compile LÖVR.