Skip to content

Commit da1fcb9

Browse files
author
Bernd Gassmann
committed
Use only UnrealSysroot clang
- no local clang installation required anymore
1 parent f5a90a2 commit da1fcb9

File tree

6 files changed

+28
-40
lines changed

6 files changed

+28
-40
lines changed

Docs/build_linux.md

Lines changed: 6 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ CARLA requires many different kinds of software to run. Some are built during th
4040
sudo apt-get update &&
4141
sudo apt-get install wget software-properties-common &&
4242
sudo add-apt-repository ppa:ubuntu-toolchain-r/test &&
43-
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key|sudo apt-key add
43+
sudo apt-get update
4444
```
4545

4646
!!! Warning
@@ -50,43 +50,27 @@ To avoid compatibility issues between Unreal Engine and the CARLA dependencies,
5050

5151
__Ubuntu 22.04__.
5252
```sh
53-
sudo apt-add-repository "deb http://archive.ubuntu.com/ubuntu focal main universe"
54-
sudo apt-get update
55-
sudo apt-get install build-essential clang-10 lld-10 g++-13 cmake ninja-build libvulkan1 python python3 python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git git-lfs
56-
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 &&
57-
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 180 &&
53+
sudo apt-get install build-essential g++-13 cmake ninja-build libvulkan1 python python3 python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git git-lfs
5854
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 180
5955
```
6056

6157
__Ubuntu 20.04__.
6258
```sh
63-
sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal main"
64-
sudo apt-get update
65-
sudo apt-get install build-essential clang-10 lld-10 g++-13 cmake ninja-build libvulkan1 python python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
66-
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-10/bin/clang++ 180 &&
67-
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-10/bin/clang 180
59+
sudo apt-get install build-essential g++-13 cmake ninja-build libvulkan1 python python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
6860
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 180
6961
```
7062

7163
__Ubuntu 18.04__.
7264

7365
```sh
74-
sudo apt-add-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main"
75-
sudo apt-get update
76-
sudo apt-get install build-essential clang-8 lld-8 g++-13 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
77-
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-8/bin/clang++ 180 &&
78-
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-8/bin/clang 180
66+
sudo apt-get install build-essential g++-13 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
7967
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 180
8068
```
8169

8270
__Ubuntu 16.04__.
8371

8472
```sh
85-
sudo apt-add-repository "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main" &&
86-
sudo apt-get update
87-
sudo apt-get install build-essential clang-8 lld-8 g++-13 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng16-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
88-
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-8/bin/clang++ 180 &&
89-
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-8/bin/clang 180
73+
sudo apt-get install build-essential g++-13 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng16-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
9074
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 180
9175
```
9276

@@ -95,11 +79,7 @@ __Previous Ubuntu versions__.
9579
We strongly advise using Ubuntu 18.04 or later to build CARLA. However, you may attempt to build CARLA on older versions of Ubuntu with the following commands:
9680

9781
```sh
98-
sudo apt-add-repository "deb http://apt.llvm.org/<code_name>/ llvm-toolchain-<code_name>-8 main" &&
99-
sudo apt-get update
100-
sudo apt-get install build-essential clang-8 lld-8 g++-13 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng16-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
101-
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/lib/llvm-8/bin/clang++ 180 &&
102-
sudo update-alternatives --install /usr/bin/clang clang /usr/lib/llvm-8/bin/clang 180
82+
sudo apt-get install build-essential g++-13 cmake ninja-build libvulkan1 python python-pip python-dev python3-dev python3-pip libpng16-dev libtiff5-dev libjpeg-dev tzdata sed curl unzip autoconf libtool rsync libxml2-dev git
10383
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 180
10484
```
10585

LibCarla/cmake/client/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ if (BUILD_RSS_VARIANT)
2121
install(FILES ${spdlog_file} DESTINATION lib)
2222
list(APPEND ADRSS_LIBS ${spdlog_file})
2323

24-
set(proj_include_dir ${ADRSS_INSTALL_DIR}/../../proj-install/include)
25-
set(proj_lib ${ADRSS_INSTALL_DIR}/../../proj-install/lib/libproj.a)
24+
set(proj_include_dir ${PROJ_CLIENT_INCLUDE})
25+
set(proj_lib ${PROJ_CLIENT_LIBPATH}/libproj.a)
2626
install(DIRECTORY ${proj_include_dir} DESTINATION include/system)
2727
list(APPEND ADRSS_INCLUDE_DIRS ${proj_include_dir})
2828
install(FILES ${proj_lib} DESTINATION lib)

Util/BuildTools/BuildCarlaUE4.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
DOC_STRING="Build and launch CarlaUE4."
88

9-
USAGE_STRING="Usage: $0 [-h|--help] [--build] [--rebuild] [--launch] [--clean] [--hard-clean] [--opengl]"
9+
USAGE_STRING="Usage: $0 [-h|--help] [--build] [--rebuild] [--launch] [--clean] [--hard-clean] [--opengl] [--ros2]"
1010

1111
REMOVE_INTERMEDIATE=false
1212
HARD_CLEAN=false

Util/BuildTools/BuildPythonAPI.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,10 @@ while [[ $# -gt 0 ]]; do
4848
esac
4949
done
5050

51-
export CC="clang"
52-
export CXX="clang++"
51+
UNREAL_SYSROOT="$UE4_ROOT/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu"
52+
export CC="${UNREAL_SYSROOT}/bin/clang"
53+
export CXX="${UNREAL_SYSROOT}/bin/clang++"
54+
export PATH="${UNREAL_SYSROOT}/bin:$PATH"
5355

5456
source $(dirname "$0")/Environment.sh
5557

Util/BuildTools/Package.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
DOC_STRING="Makes a packaged version of CARLA and other content packages ready for distribution."
88

9-
USAGE_STRING="Usage: $0 [-h|--help] [--config={Debug,Development,Shipping}] [--no-zip] [--clean-intermediate] [--packages=Name1,Name2,...] [--target-archive=] [--archive-sufix=]"
9+
USAGE_STRING="Usage: $0 [-h|--help] [--config={Debug,Development,Shipping}] [--no-zip] [--clean-intermediate] [--packages=Name1,Name2,...] [--target-archive=] [--archive-sufix=] [--ros2]"
1010

1111
PACKAGES="Carla"
1212
DO_TARBALL=true
@@ -20,7 +20,7 @@ ARCHIVE_SUFIX=""
2020
EDITOR_ROS2_FLAGS=""
2121

2222

23-
OPTS=`getopt -o h --long help,config:,no-zip,clean-intermediate,carsim,packages:,python-version,target-archive:,archive-sufix:, -n 'parse-options' -- "$@"`
23+
OPTS=`getopt -o h --long help,config:,no-zip,clean-intermediate,carsim,packages:,python-version,target-archive:,archive-sufix:,ros2 -n 'parse-options' -- "$@"`
2424

2525
eval set -- "$OPTS"
2626

Util/BuildTools/Setup.sh

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,11 @@ pushd ${CARLA_BUILD_FOLDER} >/dev/null
5555

5656
LLVM_INCLUDE="${UE4_ROOT}/Engine/Source/ThirdParty/Linux/LibCxx/include/c++/v1"
5757
LLVM_LIBPATH="${UE4_ROOT}/Engine/Source/ThirdParty/Linux/LibCxx/lib/Linux/x86_64-unknown-linux-gnu"
58-
UNREAL_HOSTED_CFLAGS="--sysroot=$UE4_ROOT/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/ -isystem ${LLVM_INCLUDE}"
59-
UNREAL_SYSTEM_LIBPATH="$UE4_ROOT/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/usr/lib"
60-
UNREAL_HOSTED_LINKER_FLAGS="--sysroot=$UE4_ROOT/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu/ -L${LLVM_LIBPATH} -L${UNREAL_SYSTEM_LIBPATH} -lc++ -lc++abi"
58+
UNREAL_SYSROOT="$UE4_ROOT/Engine/Extras/ThirdPartyNotUE/SDKs/HostLinux/Linux_x64/v17_clang-10.0.1-centos7/x86_64-unknown-linux-gnu"
59+
UNREAL_HOSTED_CFLAGS="--sysroot=${UNREAL_SYSROOT} -isystem ${LLVM_INCLUDE}"
60+
UNREAL_SYSTEM_LIBPATH="${UNREAL_SYSROOT}/usr/lib"
61+
UNREAL_HOSTED_LINKER_FLAGS="--sysroot=${UNREAL_SYSROOT} -L${LLVM_LIBPATH} -L${UNREAL_SYSTEM_LIBPATH} -lc++ -lc++abi"
62+
6163

6264
CARLA_CFLAGS="-fPIC -w"
6365
CARLA_CXXFLAGS="-std=c++20 -DBOOST_ERROR_CODE_HEADER_ONLY"
@@ -66,9 +68,9 @@ CARLA_SERVER_CFLAGS="${UNREAL_HOSTED_CFLAGS} ${CARLA_CFLAGS}"
6668
CARLA_SERVER_CXXFLAGS="${CARLA_SERVER_CFLAGS} ${CARLA_CXXFLAGS} -stdlib=libc++ -DBOOST_NO_EXCEPTIONS -DASIO_NO_EXCEPTIONS"
6769
CARLA_SERVER_LINKER_FLAGS="${UNREAL_HOSTED_LINKER_FLAGS} -L${LIBCARLA_INSTALL_SERVER_FOLDER}/lib/"
6870

69-
export CC="clang"
70-
export CXX="clang++"
71-
71+
export CC="${UNREAL_SYSROOT}/bin/clang"
72+
export CXX="${UNREAL_SYSROOT}/bin/clang++"
73+
export PATH="${UNREAL_SYSROOT}/bin:$PATH"
7274

7375
# ==============================================================================
7476
# -- Generate Version.h --------------------------------------------------------
@@ -755,8 +757,10 @@ PROJ_VERSION=7.2
755757
PROJ_REPO=https://github.com/OSGeo/PROJ
756758

757759
PROJ_BASENAME=proj
758-
PROJ_CLIENT_LIB=${PROJ_BASENAME}-client-install/lib/libproj.a
760+
PROJ_CLIENT_LIBPATH=${PROJ_BASENAME}-client-install/lib
761+
PROJ_CLIENT_LIB=${PROJ_CLIENT_LIBPATH}/libproj.a
759762
PROJ_SERVER_LIB=${PROJ_BASENAME}-server-install/lib/libproj.a
763+
PROJ_CLIENT_INCLUDE=${PROJ_BASENAME}-client-install/include
760764

761765
if [[ -d ${PROJ_BASENAME}-client-install && -d ${PROJ_BASENAME}-server-install ]] ; then
762766
log "PROJ already installed."
@@ -1092,6 +1096,8 @@ elseif (CMAKE_BUILD_TYPE STREQUAL "Pytorch")
10921096
elseif (CMAKE_BUILD_TYPE STREQUAL "Client")
10931097
set(BOOST_INCLUDE_PATH "${BOOST_CLIENT_INCLUDE}")
10941098
set(BOOST_LIB_PATH "${BOOST_CLIENT_LIBPATH}")
1099+
set(PROJ_INCLUDE_PATH "${PROJ_CLIENT_INCLUDE}")
1100+
set(PROJ_LIBPATH "${PROJ_CLIENT_LIBPATH}")
10951101
set(RPCLIB_INCLUDE_PATH "${RPCLIB_CLIENT_INCLUDE}")
10961102
set(RPCLIB_LIB_PATH "${RPCLIB_CLIENT_LIBPATH}")
10971103
set(GTEST_INCLUDE_PATH "${GTEST_CLIENT_INCLUDE}")

0 commit comments

Comments
 (0)