2.7 KiB
Compiling jujube
jujube uses the meson build system. Only time will tell if this turned out to be a wise choice, I wanted to try something other than CMake.
Regardless of the target platform the build steps are pretty much the same :
- Get an up-to-date C++ compiler (compatible with C++17 at least)
- Install (or build) the dependencies :
- meson : the build system, installation explained here
- SFML 2.5.1 : the game framework
- possibly others
- Download the code from the repo
- Go to your terminal and type
(Replacing the$ cd {jujube repo root} $ CXX={your compiler} meson build $ cd build $ ninja
{...}
s with what you chose)
and voila !
If you managed to compile jujube with another toolchain I did not mention here you're very welcome to do a PR appending the relevant parts of this doc.
Linux
You need at least gcc 9.0.0
The meson install is pretty straightforward.
For SFML, If you want to use another compiler than the one shipped with your system you may need to re-build SFML yourself using the compiler you chose. Here's their docs. Don't forget to manually specify the compiler (and maybe the library install path) at the configuration step (when you run meson build
).
Windows
This section explains how to setup MSYS2 to compile jujube. MSYS2 is most likely not the only way to go but it's my favorite way of getting a very recent gnu-friendly toolchain on windows.
MSYS2
Installing MSYS2 is extremly straightforward and detailed on their website.
Once you're done pacman -Syu
ing and pacman -Su
ing your system you can install the required packages for jujube :
$ pacman -S mingw-w64-x86_64-sfml
then you can just use the same build commands as the Linux section but from the MSYS2 terminal
MacOS
clang-9 from brew's llvm package
If you do not have it already, install Homebrew. When it's done use it to install basically everything :
$ brew install llvm sfml openal-soft
Once it's done (llvm is huge, go do something else while it installs), open a terminal, cd
to your local copy of jujube's repo and use this carefully crafted command to setup your build folder :
$ LLVM=$(brew --prefix llvm) \
CC=$LLVM/bin/clang \
CXX=$LLVM/bin/clang++ \
LD=$LLVM/bin/ld.lld \
AR=$LLVM/bin/llvm-ar \
RANLIB=$LLVM/bin/llvm-ranlib \
PKG_CONFIG_PATH+=$(brew --prefix sfml)/lib/pkgconfig:$(brew --prefix openal-soft)/lib/pkgconfig \
LDFLAGS+="-L$LLVM/lib -Wl,-rpath,$LLVM/lib" \
CPPFLAGS+="-I$LLVM/include -I$LLVM/include/c++/v1/" \
meson build
then just
$ cd build
$ ninja