# Build system * [__Setup__](#setup) * [__LibCarla__](#libcarla) * [__CarlaUE4 and Carla plugin__](#carlaue4-and-carla-plugin) * [__PythonAPI__](#pythonapi) > _This document is a work in progress, only the Linux build system is taken into account here._ The most challenging part of the setup is to compile all the dependencies and modules to be compatible with a) Unreal Engine in the server-side, and b) Python in the client-side. The goal is to be able to call Unreal Engine's functions from a separate Python process. ![modules](img/build_modules.jpg) In Linux, we compile CARLA and all the dependencies with clang-8.0 and C++14 standard. We however link against different runtime C++ libraries depending on where the code going to be used, since all the code that is going to be linked with Unreal Engine needs to be compiled using `libc++`. --- ## Setup Command ```sh make setup ``` Get and compile dependencies * llvm-8 (libc++ and libc++abi) * rpclib-2.2.1 (twice, with libstdc++ and libc++) * boost-1.72.0 (headers and boost_python for libstdc++) * googletest-1.8.1 (with libc++) --- ## LibCarla Compiled with CMake (minimum version required CMake 3.9). Command ```sh make LibCarla ``` Two configurations:
Server | Client | Unit tests | Yes | No |
---|---|---|
Requirements | rpclib, gtest, boost | rpclib, boost |
std runtime | LLVM's libc++ |
Default libstdc++ |
Output | headers and test exes | ibcarla_client.a |
Required by | Carla plugin | PythonAPI |