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.
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
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++)
Compiled with CMake (minimum version required CMake 3.9).
|Requirements||rpclib, gtest, boost||rpclib, boost|
|std runtime|| LLVM's
|Output||headers and test exes||
|Required by||Carla plugin||PythonAPI|
CarlaUE4 and Carla plugin
Both compiled at the same step with Unreal Engine build tool. They require the
UE4_ROOT environment variable set.
To launch Unreal Engine's Editor run
Compiled using Python's
setuptools ("setup.py"). Currently requires the following to be installed in the machine: Python, libpython-dev, and
libboost-python-dev; both for Python 2.7 and 3.5.
It creates two "egg" packages
This package can be directly imported into a Python script by adding it to the system path.
#!/usr/bin/env python import sys sys.path.append( 'PythonAPI/dist/carla-X.X.X-py%d.%d-linux-x86_64.egg' % (sys.version_info.major, sys.version_info.minor)) import carla # ...
Alternatively, it can be installed with
easy_install2 --user --no-deps PythonAPI/dist/carla-X.X.X-py2.7-linux-x86_64.egg easy_install3 --user --no-deps PythonAPI/dist/carla-X.X.X-py3.7-linux-x86_64.egg