lovr/COMPILING.md

2.8 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

  • LuaJIT
  • GLFW (3.2+)
  • OpenGL (3+)
  • assimp
  • OpenVR (1.0.5, for lovr.headset)
  • PhysicsFS
  • OpenAL (1.17+ recommended for HRTF support)
  • FreeType
  • Emscripten (optional, for compiling for web)

See lovr-deps for a GitHub repo containing all of these as submodules.

Windows (CMake)

First, install lovr-deps:

cd lovr
git clone --recursive https://github.com/bjornbytes/lovr-deps deps

Next, use CMake to generate the build files:

mkdir build
cd build
cmake ..

This should output a Visual Studio solution, which can be built using Visual Studio. Or you can just build it with CMake:

cmake --build .

The executable will then exist at /path/to/lovr/build/Debug/lovr.exe. The recommended way to create and run a game from this point is:

  • Create a shortcut to the lovr.exe executable somewhere convenient.
  • Create a folder for your game: MySuperAwesomeGame.
  • Create a main.lua file in the folder and put your code in there.
  • Drag the MySuperAwesomeGame folder onto the shortcut to lovr.exe.

Unix (CMake)

First, clone OpenVR. For this example, we'll clone openvr into the same directory that lovr was cloned into.

git clone --branch v1.0.5 https://github.com/ValveSoftware/openvr.git

Next, install the other dependencies above using your package manager of choice:

brew install assimp glfw3 luajit physfs freetype openal-soft

On OSX, you'll need to set the DYLD_LIBRARY_PATH environment variable to be /path/to/openvr/lib/osx32.

Next, build using CMake:

mkdir build
cd build
cmake .. -DOPENVR_DIR=../../openvr
cmake --build .

The lovr executable should exist in lovr/build now. You can run a game like this:

./lovr /path/to/myGame

You can also copy or symlink LÖVR into a directory on your PATH environment variable (e.g. /usr/local/bin) and run games from anywhere by just typing lovr.

WebVR

First, install the Emscripten SDK. Make sure you're running this branch of Emscripten.

mkdir build
cd build
emcmake cmake -DCMAKE_BUILD_TYPE=Release ..
emmake make -j2

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.