- Update gitignore.

- Add launch and launch-only CMake custom targets.
- Temporary workaround for lack of a properly parameterized toolchain file.
- Change all references to CarlaUE4 to CarlaUnreal.
- Separate CMake Options files.
This commit is contained in:
Marcel Pi 2024-03-08 20:31:22 +01:00
parent 730d3f068f
commit 01852e6a6e
11 changed files with 642 additions and 525 deletions

64
.gitignore vendored
View File

@ -1,67 +1,9 @@
.vs/
.vscode/
.cache/
__pycache__/
Build/
out/
Dist/
Doxygen/
Deprecated/PythonClient/dist/
TrafficManager/build/
Util/Build/
Dependencies/
Install/
Plugins/
!Unreal/CarlaUnreal/Plugins
Unreal/CarlaUnreal/Plugins/Streetmap
Unreal/CarlaUnreal/Plugins/HoudiniEngine
/ExportedMaps
/Import/*
!/Import/README.md
*.VC.db
*.VC.opendb
*.o
*.a
*.so
*.lib
*.pyd
*.whl
*.egg
*.egg-info
*.kdev4
*.log
*.pb.cc
*.pb.h
*.pid
*.pri
*.pro
*.py[cod]
*.sln
*.stackdump
*.sublime-workspace
*.workspace
*CodeCompletionFolders.txt
*CodeLitePreProcessor.txt
.aria2c.input
.codelite
.gdb_history
.gtest
.idea
.tags*
__pycache__/
_benchmarks_results/
_images*
_out*
_site
core
profiler.csv
ArgsSync.json
Dist/
out/

View File

@ -1,57 +1,67 @@
#[[
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
de Barcelona (UAB).
This work is licensed under the terms of the MIT license.
For a copy, see <https://opensource.org/licenses/MIT>.
]]
include (FetchContent)
include (ExternalProject)
set (CARLA_DEPENDENCIES_PENDING)
# These checks may be incomplete:
if (LINUX)
set (THREADS_PREFER_PTHREAD_FLAG ON)
find_package (Threads REQUIRED)
endif ()
set (CARLA_DEPENDENCIES)
macro (carla_dependency_add_git NAME URL TAG)
message ("Fetching ${NAME}...")
FetchContent_Declare(
${NAME}
GIT_SUBMODULES_RECURSE ON
GIT_SHALLOW ON
GIT_PROGRESS ON
GIT_REPOSITORY ${URL}
GIT_TAG ${TAG}
OVERRIDE_FIND_PACKAGE
)
list (APPEND CARLA_DEPENDENCIES ${NAME})
endmacro ()
macro (carla_dependency_add_zip NAME URL)
FetchContent_Declare(
${NAME}
URL ${URL}
OVERRIDE_FIND_PACKAGE
)
list (APPEND CARLA_DEPENDENCIES ${NAME})
macro (carla_dependency_add NAME TAG ARCHIVE_URL GIT_URL)
if (PREFER_CLONE)
message ("Cloning ${NAME}...")
FetchContent_Declare(
${NAME}
GIT_REPOSITORY ${GIT_URL}
GIT_TAG ${TAG}
GIT_SUBMODULES_RECURSE ON
GIT_SHALLOW ON
GIT_PROGRESS ON
OVERRIDE_FIND_PACKAGE
${ARGN}
)
list (APPEND CARLA_DEPENDENCIES_PENDING ${NAME})
else ()
message ("Downloading ${NAME}...")
FetchContent_Declare(
${NAME}
URL ${ARCHIVE_URL}
OVERRIDE_FIND_PACKAGE
${ARGN}
)
list (APPEND CARLA_DEPENDENCIES_PENDING ${NAME})
endif ()
endmacro ()
macro (carla_dependencies_make_available)
FetchContent_MakeAvailable (
${CARLA_DEPENDENCIES})
set (CARLA_DEPENDENCIES)
${CARLA_DEPENDENCIES_PENDING})
set (CARLA_DEPENDENCIES_PENDING)
endmacro ()
macro (carla_fetchcontent_option NAME VALUE)
set (${NAME} ${VALUE} CACHE INTERNAL "")
endmacro ()
set (CARLA_DEPENDENCIES_INSTALL_PATH)
# ==== SQLITE3 ====
set (THREADS_PREFER_PTHREAD_FLAG ON)
find_package (Threads REQUIRED)
string (REPLACE "." "" CARLA_SQLITE_TAG ${CARLA_SQLITE_VERSION})
carla_dependency_add_zip (
carla_dependency_add (
sqlite3
${CARLA_SQLITE_TAG}
https://www.sqlite.org/2024/sqlite-amalgamation-${CARLA_SQLITE_TAG}.zip
""
)
carla_dependencies_make_available ()
@ -76,165 +86,144 @@ target_link_libraries (
libsqlite3
)
set (ZLIB_BUILD_EXAMPLES OFF)
carla_dependency_add_zip (
# ==== ZLIB ====
carla_fetchcontent_option (ZLIB_BUILD_EXAMPLES OFF)
carla_dependency_add (
zlib
${CARLA_ZLIB_TAG}
https://github.com/madler/zlib/archive/refs/tags/${CARLA_ZLIB_TAG}.zip
https://github.com/madler/zlib.git
)
carla_dependencies_make_available ()
include_directories (${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) # HACK
include_directories (${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) # @TODO HACK
set (PNG_TESTS OFF)
set (PNG_SHARED OFF)
set (PNG_TOOLS OFF)
set (PNG_BUILD_ZLIB ON)
# ==== LIBPNG ====
carla_fetchcontent_option (PNG_TESTS OFF)
carla_fetchcontent_option (PNG_SHARED OFF)
carla_fetchcontent_option (PNG_TOOLS OFF)
carla_fetchcontent_option (PNG_BUILD_ZLIB ON)
if (WIN32)
set (ZLIB_LIBRARY ${zlib_BINARY_DIR}/zlibstatic${CARLA_DEBUG_AFFIX}.lib)
carla_fetchcontent_option (ZLIB_LIBRARY ${zlib_BINARY_DIR}/zlibstatic${CARLA_DEBUG_AFFIX}.lib)
else ()
set (ZLIB_LIBRARY ${zlib_BINARY_DIR}/libz.a)
carla_fetchcontent_option (ZLIB_LIBRARY ${zlib_BINARY_DIR}/libz.a)
endif ()
set (ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR})
set (ZLIB_LIBRARIES ${ZLIB_LIBRARY})
carla_dependency_add_zip (
carla_fetchcontent_option (ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR})
carla_fetchcontent_option (ZLIB_LIBRARIES ${ZLIB_LIBRARY})
carla_dependency_add (
libpng
${CARLA_LIBPNG_TAG}
https://github.com/pnggroup/libpng/archive/refs/tags/${CARLA_LIBPNG_TAG}.zip
https://github.com/glennrp/libpng.git
)
carla_dependencies_make_available ()
include_directories (${libpng_SOURCE_DIR} ${libpng_BINARY_DIR}) # HACK
include_directories (${libpng_SOURCE_DIR} ${libpng_BINARY_DIR}) # @TODO HACK
if (BUILD_PYTHON_API)
set (BOOST_ENABLE_PYTHON ${BUILD_PYTHON_API})
endif ()
# ==== BOOST ====
carla_dependency_add_zip(
carla_fetchcontent_option (BOOST_ENABLE_PYTHON ${BUILD_PYTHON_API})
carla_fetchcontent_option (BOOST_ENABLE_MPI OFF)
carla_fetchcontent_option (BOOST_LOCALE_WITH_ICU OFF)
carla_fetchcontent_option (BOOST_LOCALE_WITH_ICONV OFF)
carla_fetchcontent_option (BOOST_EXCLUDE_LIBRARIES "iostreams;locale;fiber;log")
carla_dependency_add(
boost
${CARLA_BOOST_TAG}
https://github.com/boostorg/boost/releases/download/${CARLA_BOOST_TAG}/${CARLA_BOOST_TAG}.zip
https://github.com/boostorg/boost.git
)
list (APPEND CARLA_DEPENDENCIES boost)
set (EIGEN_BUILD_PKGCONFIG OFF)
set (BUILD_TESTING OFF)
set (EIGEN_BUILD_DOC OFF)
carla_dependency_add_zip (
# ==== EIGEN ====
carla_fetchcontent_option (EIGEN_BUILD_PKGCONFIG OFF)
carla_fetchcontent_option (BUILD_TESTING OFF)
carla_fetchcontent_option (EIGEN_BUILD_DOC OFF)
carla_dependency_add (
eigen
${CARLA_EIGEN_TAG}
https://gitlab.com/libeigen/eigen/-/archive/${CARLA_EIGEN_TAG}/eigen-${CARLA_EIGEN_TAG}.tar.gz
https://gitlab.com/libeigen/eigen.git
)
carla_dependency_add_zip (
# ==== RPCLIB ====
carla_dependency_add (
rpclib
${CARLA_RPCLIB_TAG}
https://github.com/carla-simulator/rpclib/archive/refs/heads/${CARLA_RPCLIB_TAG}.zip
https://github.com/carla-simulator/rpclib.git
)
carla_dependency_add_zip (
# ==== RECAST ====
carla_fetchcontent_option (RECASTNAVIGATION_BUILDER OFF)
carla_dependency_add (
recastnavigation
${CARLA_RECAST_TAG}
https://github.com/carla-simulator/recastnavigation/archive/refs/heads/${CARLA_RECAST_TAG}.zip
https://github.com/carla-simulator/recastnavigation.git
)
# ==== PROJ ====
if (ENABLE_OSM2ODR)
set (BUILD_TESTING OFF)
set (ENABLE_TIFF OFF)
set (ENABLE_CURL OFF)
carla_fetchcontent_option (BUILD_TESTING OFF)
carla_fetchcontent_option (ENABLE_TIFF OFF)
carla_fetchcontent_option (ENABLE_CURL OFF)
carla_dependency_add (
proj
https://github.com/OSGeo/PROJ/archive/refs/tags/${CARLA_PROJ_TAG}.zip
https://github.com/OSGeo/PROJ.git
${CARLA_PROJ_TAG}
)
endif ()
# ==== XERCESC ====
if (ENABLE_OSM2ODR)
carla_dependency_add (
xercesc
https://github.com/apache/xerces-c/archive/refs/tags/${CARLA_XERCESC_TAG}.zip
https://github.com/apache/xerces-c.git
${CARLA_XERCESC_TAG}
)
endif ()
# ==== LUNASVG ====
if (BUILD_OSM_WORLD_RENDERER)
carla_dependency_add (
lunasvg
https://github.com/sammycage/lunasvg/archive/refs/tags/${CARLA_LUNASVG_TAG}.zip
https://github.com/sammycage/lunasvg.git
${CARLA_LUNASVG_TAG}
)
endif ()
# ==== LIBOSMSCOUT ====
if (BUILD_OSM_WORLD_RENDERER)
carla_dependency_add (
libosmscout
https://github.com/Framstag/libosmscout/archive/refs/tags/${CARLA_LIBOSMSCOUT_TAG}.zip
https://github.com/Framstag/libosmscout.git
${CARLA_LIBOSMSCOUT_TAG}
)
endif ()
# carla_dependency_add (
# gtest
# https://github.com/google/googletest.git
# ${CARLA_GTEST_TAG}
# )
# ==== STREETMAP ====
carla_dependencies_make_available ()
if (BUILD_CARLA_UE)
carla_dependency_add (
StreetMap
https://github.com/carla-simulator/StreetMap.git
https://github.com/carla-simulator/StreetMap/archive/refs/heads/${CARLA_STREETMAP_TAG}.zip
${CARLA_STREETMAP_TAG}
DOWNLOAD_DIR ${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal/Plugins
)
endif ()
#[[
ExternalProject_Add (
recastnavigation
GIT_REPOSITORY https://github.com/carla-simulator/recastnavigation.git
GIT_TAG ${CARLA_RECAST_TAG}
)
ExternalProject_Add (
proj
GIT_REPOSITORY https://github.com/OSGeo/PROJ.git
GIT_TAG ${CARLA_PROJ_TAG}
CMAKE_ARGS
-DSQLITE3_INCLUDE_DIR=${sqlite3_SOURCE_DIR}
-DSQLITE3_LIBRARY=$<TARGET_FILE:libsqlite3>
-DEXE_SQLITE3=$<TARGET_FILE:sqlite3>
-DENABLE_TIFF=OFF
-DENABLE_CURL=OFF
-DBUILD_SHARED_LIBS=OFF
-DBUILD_PROJSYNC=OFF
-DBUILD_PROJINFO=OFF
-DBUILD_CCT=OFF
-DBUILD_CS2CS=OFF
-DBUILD_GEOD=OFF
-DBUILD_GIE=OFF
-DBUILD_PROJ=OFF
-DBUILD_TESTING=OFF
)
add_dependencies (proj sqlite3 libsqlite3)
ExternalProject_Add (
xercesc
GIT_REPOSITORY https://github.com/apache/xerces-c.git
GIT_TAG ${CARLA_XERCESC_TAG}
)
ExternalProject_Add (
libpng
GIT_REPOSITORY https://github.com/glennrp/libpng.git
GIT_TAG ${CARLA_LIBPNG_TAG}
CMAKE_ARGS
-DCMAKE_MODULE_PATH=${CMAKE_MODULE_PATH}
-DPNG_TESTS=OFF
-DPNG_SHARED=OFF
-DPNG_TOOLS=OFF
)
ExternalProject_Add (
lunasvg
GIT_REPOSITORY https://github.com/sammycage/lunasvg.git
)
ExternalProject_Add (
libosmscout
GIT_REPOSITORY https://github.com/Framstag/libosmscout.git
)
ExternalProject_Add (
gtest
GIT_REPOSITORY https://github.com/google/googletest.git
GIT_TAG ${CARLA_GTEST_TAG}
)]]
carla_dependencies_make_available ()

View File

@ -1,266 +1,17 @@
#[[
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
de Barcelona (UAB).
This work is licensed under the terms of the MIT license.
For a copy, see <https://opensource.org/licenses/MIT>.
]]
macro (carla_string_option NAME DESCRIPTION VALUE)
set (${NAME} ${VALUE} CACHE STRING ${DESCRIPTION})
endmacro ()
# ==== Common target flags ====
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
option (
BUILD_CARLA_CLIENT
"Build the LibCarla client."
ON
)
option (
BUILD_CARLA_SERVER
"Build the LibCarla server."
ON
)
option (
ENABLE_LIBCARLA_PYTORCH
"Enable LibCarla-PyTorch."
OFF
)
option (
BUILD_PYTHON_API
"Build the CARLA Python API."
ON
)
option (
BUILD_CARLA_UE
"Build the Carla Unreal Engine project."
OFF
)
option (
ENABLE_ROS2
"Enable ROS2."
OFF
)
option (
ENABLE_OSM2ODR
"Enable OSM2ODR."
OFF
)
option (
ENABLE_RSS
"Enable RSS components (ad-rss-lib)"
OFF
)
option (
INSTALL_LIBCARLA
"Install LibCarla and all of its dependencies."
ON
)
option (
BUILD_OSM_WORLD_RENDERER
"Build OSM World Renderer."
OFF
)
option (
ENABLE_RTTI
"Enable C++ RTTI."
OFF
)
option (
ENABLE_EXCEPTIONS
"Enable C++ Exceptions."
OFF
)
carla_string_option (
CARLA_UNREAL_ENGINE_PATH
"Path to the CARLA fork of Unreal Engine"
""
)
if (EXISTS ${CARLA_UNREAL_ENGINE_PATH})
set (CARLA_HAS_UNREAL_ENGINE_PATH ON)
else ()
set (CARLA_HAS_UNREAL_ENGINE_PATH OFF)
endif ()
if (${BUILD_CARLA_UE})
if (${CARLA_HAS_UNREAL_ENGINE_PATH})
message ("Carla UE project successfully added to build. (UE path: ${CARLA_UNREAL_ENGINE_PATH})")
else ()
message (
FATAL_ERROR
"Could not add UE project to build since the option CARLA_UNREAL_ENGINE_PATH is not set to a valid path (\"${CARLA_UNREAL_ENGINE_PATH}\"). Please set it to point to the root path of your CARLA Unreal Engine installation.")
endif ()
endif ()
# ==== DEPENDENCIES ====
# ==== BOOST ====
carla_string_option (
CARLA_BOOST_VERSION
"Target boost version."
1.84.0
)
carla_string_option (
CARLA_BOOST_TAG
"Target boost git tag."
boost-${CARLA_BOOST_VERSION}
)
# ==== EIGEN ====
carla_string_option (
CARLA_EIGEN_VERSION
"Target Eigen version."
3.4.0
)
carla_string_option (
CARLA_EIGEN_TAG
"Target Eigen git tag."
${CARLA_EIGEN_VERSION}
)
# ==== GOOGLE TEST ====
carla_string_option (
CARLA_GTEST_VERSION
"Target googletest version."
1.14.0
)
carla_string_option (
CARLA_GTEST_TAG
"Target googletest git tag."
v${CARLA_GTEST_VERSION}
)
# ==== LIBPNG ====
carla_string_option (
CARLA_LIBPNG_VERSION
"Target libpng version."
1.6.40
)
carla_string_option (
CARLA_LIBPNG_TAG
"Target libpng git tag."
v${CARLA_LIBPNG_VERSION}
)
# ==== PROJ ====
carla_string_option (
CARLA_PROJ_VERSION
"Target PROJ version."
7.2.1
)
carla_string_option (
CARLA_PROJ_TAG
"Target PROJ git tag."
${CARLA_PROJ_VERSION}
)
# ==== RECAST ====
carla_string_option (
CARLA_RECAST_TAG
"Target recastnavigation git tag."
carla
)
# ==== RPCLIB ====
carla_string_option (
CARLA_RPCLIB_TAG
"Target rpclib git tag."
carla
)
# ==== SQLITE3 ====
carla_string_option (
CARLA_SQLITE_VERSION
"Target SQLite version (major[1].minor[2].patch[2].revision[2])."
3.45.01.00
)
# ==== XERCESC ====
carla_string_option (
CARLA_XERCESC_VERSION
"Target xerces-c version."
3.2.4
)
carla_string_option (
CARLA_XERCESC_TAG
"Target xerces-c git tag."
v${CARLA_XERCESC_VERSION}
)
# ==== ZLIB ====
carla_string_option (
CARLA_ZLIB_VERSION
"Target zlib git tag."
1.3.1)
carla_string_option (
CARLA_ZLIB_TAG
"Target zlib git tag."
v${CARLA_ZLIB_VERSION})
# ==== LUNASVG ====
carla_string_option (
CARLA_LUNASVG_VERSION
"Target lunasvg version."
master
)
carla_string_option (
CARLA_LUNASVG_TAG
"Target lunasvg git tag."
${CARLA_LUNASVG_VERSION}
)
# ==== LIBOSMSCOUT ====
carla_string_option (
CARLA_LIBOSMSCOUT_VERSION
"Target libosmscout version."
master
)
carla_string_option (
CARLA_LIBOSMSCOUT_TAG
"Target libosmscout git tag."
${CARLA_LIBOSMSCOUT_VERSION}
)
# ==== STREETMAP ====
carla_string_option (
CARLA_STREETMAP_VERSION
"Target StreetMap version."
ue5.3
)
carla_string_option (
CARLA_STREETMAP_TAG
"Target StreetMap git tag."
${CARLA_STREETMAP_VERSION}
)
include (${CARLA_WORKSPACE_PATH}/CMake/Options/Common.cmake)
include (${CARLA_WORKSPACE_PATH}/CMake/Options/Unreal.cmake)
include (${CARLA_WORKSPACE_PATH}/CMake/Options/Dependencies.cmake)

View File

@ -1,4 +1,14 @@
set (UE_ROOT /home/marcel/CarlaUnrealEngine5)
#[[
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
de Barcelona (UAB).
This work is licensed under the terms of the MIT license.
For a copy, see <https://opensource.org/licenses/MIT>.
]]
set (UE_ROOT /home/marcel/CarlaUnrealEngine5) # @TODO
# set (UE_ROOT ${CARLA_UNREAL_ENGINE_PATH} CACHE PATH "")
message ("UE_ROOT=${UE_ROOT}")

View File

@ -0,0 +1,87 @@
#[[
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
de Barcelona (UAB).
This work is licensed under the terms of the MIT license.
For a copy, see <https://opensource.org/licenses/MIT>.
]]
option (
BUILD_CARLA_CLIENT
"Build the LibCarla client."
ON
)
option (
BUILD_CARLA_SERVER
"Build the LibCarla server."
ON
)
option (
ENABLE_LIBCARLA_PYTORCH
"Enable LibCarla-PyTorch."
OFF
)
option (
BUILD_PYTHON_API
"Build the CARLA Python API."
ON
)
option (
BUILD_CARLA_UE
"Build the Carla Unreal Engine project."
OFF
)
option (
ENABLE_ROS2
"Enable ROS2."
OFF
)
option (
ENABLE_OSM2ODR
"Enable OSM2ODR."
OFF
)
option (
ENABLE_RSS
"Enable RSS components (ad-rss-lib)"
OFF
)
option (
INSTALL_LIBCARLA
"Install LibCarla and all of its dependencies."
ON
)
option (
BUILD_OSM_WORLD_RENDERER
"Build OSM World Renderer."
OFF
)
option (
ENABLE_RTTI
"Enable C++ RTTI."
OFF
)
option (
ENABLE_EXCEPTIONS
"Enable C++ Exceptions."
OFF
)
option (
PREFER_CLONE
"Whether to clone dependencies instead of directly downloading a compressed archive."
OFF
)

View File

@ -0,0 +1,172 @@
#[[
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
de Barcelona (UAB).
This work is licensed under the terms of the MIT license.
For a copy, see <https://opensource.org/licenses/MIT>.
]]
# ==== BOOST ====
carla_string_option (
CARLA_BOOST_VERSION
"Target boost version."
1.84.0
)
carla_string_option (
CARLA_BOOST_TAG
"Target boost git tag."
boost-${CARLA_BOOST_VERSION}
)
# ==== EIGEN ====
carla_string_option (
CARLA_EIGEN_VERSION
"Target Eigen version."
3.4.0
)
carla_string_option (
CARLA_EIGEN_TAG
"Target Eigen git tag."
${CARLA_EIGEN_VERSION}
)
# ==== GOOGLE TEST ====
carla_string_option (
CARLA_GTEST_VERSION
"Target googletest version."
1.14.0
)
carla_string_option (
CARLA_GTEST_TAG
"Target googletest git tag."
v${CARLA_GTEST_VERSION}
)
# ==== LIBPNG ====
carla_string_option (
CARLA_LIBPNG_VERSION
"Target libpng version."
1.6.40
)
carla_string_option (
CARLA_LIBPNG_TAG
"Target libpng git tag."
v${CARLA_LIBPNG_VERSION}
)
# ==== PROJ ====
carla_string_option (
CARLA_PROJ_VERSION
"Target PROJ version."
7.2.1
)
carla_string_option (
CARLA_PROJ_TAG
"Target PROJ git tag."
${CARLA_PROJ_VERSION}
)
# ==== RECAST ====
carla_string_option (
CARLA_RECAST_TAG
"Target recastnavigation git tag."
carla
)
# ==== RPCLIB ====
carla_string_option (
CARLA_RPCLIB_TAG
"Target rpclib git tag."
carla
)
# ==== SQLITE3 ====
carla_string_option (
CARLA_SQLITE_VERSION
"Target SQLite version (major[1].minor[2].patch[2].revision[2])."
3.45.01.00
)
# ==== XERCESC ====
carla_string_option (
CARLA_XERCESC_VERSION
"Target xerces-c version."
3.2.4
)
carla_string_option (
CARLA_XERCESC_TAG
"Target xerces-c git tag."
v${CARLA_XERCESC_VERSION}
)
# ==== ZLIB ====
carla_string_option (
CARLA_ZLIB_VERSION
"Target zlib git tag."
1.3.1)
carla_string_option (
CARLA_ZLIB_TAG
"Target zlib git tag."
v${CARLA_ZLIB_VERSION})
# ==== LUNASVG ====
carla_string_option (
CARLA_LUNASVG_VERSION
"Target lunasvg version."
master
)
carla_string_option (
CARLA_LUNASVG_TAG
"Target lunasvg git tag."
${CARLA_LUNASVG_VERSION}
)
# ==== LIBOSMSCOUT ====
carla_string_option (
CARLA_LIBOSMSCOUT_VERSION
"Target libosmscout version."
master
)
carla_string_option (
CARLA_LIBOSMSCOUT_TAG
"Target libosmscout git tag."
${CARLA_LIBOSMSCOUT_VERSION}
)
# ==== STREETMAP ====
carla_string_option (
CARLA_STREETMAP_VERSION
"Target StreetMap version."
ue5.3
)
carla_string_option (
CARLA_STREETMAP_TAG
"Target StreetMap git tag."
${CARLA_STREETMAP_VERSION}
)

View File

@ -0,0 +1,50 @@
#[[
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
de Barcelona (UAB).
This work is licensed under the terms of the MIT license.
For a copy, see <https://opensource.org/licenses/MIT>.
]]
option (
CARLA_UNREAL_CONTENT_PREFER_CLONE
"Whether to perform a git clone instead of a direct archive download of the CARLA Unreal assets (EXTREMELY DISCOURAGED)."
OFF
)
carla_string_option (
CARLA_UNREAL_ENGINE_PATH
"Path to the CARLA fork of Unreal Engine."
""
)
if (WIN32)
set (CARLA_UNREAL_RHI_DEFAULT d3d12)
elseif (LINUX)
set (CARLA_UNREAL_RHI_DEFAULT vulkan)
endif ()
carla_string_option (
CARLA_UNREAL_RHI
"Target CARLA Unreal Engine RHI."
"vulkan"
"${CARLA_UNREAL_RHI_DEFAULT}"
)
if (EXISTS ${CARLA_UNREAL_ENGINE_PATH})
set (CARLA_HAS_UNREAL_ENGINE_PATH ON)
else ()
set (CARLA_HAS_UNREAL_ENGINE_PATH OFF)
endif ()
if (${BUILD_CARLA_UE})
if (${CARLA_HAS_UNREAL_ENGINE_PATH})
message ("Carla UE project successfully added to build. (UE path: ${CARLA_UNREAL_ENGINE_PATH})")
else ()
message (
FATAL_ERROR
"Could not add UE project to build since the option CARLA_UNREAL_ENGINE_PATH is not set to a valid path (\"${CARLA_UNREAL_ENGINE_PATH}\"). Please set it to point to the root path of your CARLA Unreal Engine installation.")
endif ()
endif ()

View File

@ -1,3 +1,13 @@
#[[
Copyright (c) 2024 Computer Vision Center (CVC) at the Universitat Autonoma
de Barcelona (UAB).
This work is licensed under the terms of the MIT license.
For a copy, see <https://opensource.org/licenses/MIT>.
]]
cmake_minimum_required (VERSION 3.28.0)
cmake_policy (SET CMP0097 NEW)
@ -41,19 +51,25 @@ set (
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal/Plugins
)
if (NOT WIN32)
set (THREADS_PREFER_PTHREAD_FLAG ON)
set (CMAKE_THREADS_PREFER_PTHREAD_FLAG ON)
find_package (
Threads
REQUIRED
)
endif ()
include (CheckCCompilerFlag)
include (CheckCXXCompilerFlag)
include (CheckLinkerFlag)
include (${CARLA_WORKSPACE_PATH}/CMake/CarlaOptions.cmake)
if (LINUX)
check_linker_flag (
CXX
-lpthread
HAS_PTHREAD
)
if (HAS_PTHREAD)
add_link_options (-lpthread)
endif ()
endif ()
# Similar to configure_file, but also expands variables
# that are set at generate time, like generator expressions.
macro (carla_two_step_configure_file DESTINATION SOURCE)
message ("Configuring file \"${DESTINATION}\"")
# Configure-time step; evaluate variables:
@ -62,6 +78,10 @@ macro (carla_two_step_configure_file DESTINATION SOURCE)
file (GENERATE OUTPUT ${DESTINATION} INPUT ${DESTINATION})
endmacro ()
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
if (WIN32)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set (CARLA_DEBUG_AFFIX d)
@ -72,6 +92,8 @@ if (WIN32)
endif ()
endif ()
set (
CARLA_COMMON_DEFINITIONS
LIBCARLA_IMAGE_WITH_PNG_SUPPORT=true
@ -86,6 +108,7 @@ if (WIN32)
endif ()
set (CARLA_EXCEPTION_DEFINITIONS)
if (ENABLE_EXCEPTIONS)
# Nothing
else ()
@ -95,9 +118,11 @@ else ()
list (APPEND CARLA_EXCEPTION_DEFINITIONS PUGIXML_NO_EXCEPTIONS)
endif ()
include (
${CARLA_WORKSPACE_PATH}/CMake/CarlaDependencies.cmake
)
include (${CARLA_WORKSPACE_PATH}/CMake/CarlaDependencies.cmake)
if (BUILD_CARLA_CLIENT OR BUILD_CARLA_SERVER)
add_subdirectory (LibCarla)

View File

@ -1 +1,2 @@
cache
carla.so
carla.pyd

View File

@ -2,18 +2,6 @@ project (
carla-ue
)
if (WIN32)
set (
CARLA_UE_GENERATE_PROJECT_SCRIPT
${CARLA_UNREAL_ENGINE_PATH}/GenerateProjectFiles.bat
)
else ()
set (
CARLA_UE_GENERATE_PROJECT_SCRIPT
${CARLA_UNREAL_ENGINE_PATH}/GenerateProjectFiles.sh
)
endif ()
set (
CARLA_UE_PATH
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal
@ -29,15 +17,19 @@ set (
${CARLA_UE_PATH}/CarlaUnreal.uproject
)
carla_two_step_configure_file (
${CARLA_UE_PLUGINS_PATH}/Carla/Source/Carla/Carla.Build.cs
${CARLA_UE_PLUGINS_PATH}/Carla/Source/Carla/Carla.Build.cs.in
)
if (WIN32)
set (
CARLA_UE_GENERATE_PROJECT_SCRIPT
${CARLA_UNREAL_ENGINE_PATH}/GenerateProjectFiles.bat
)
else ()
set (
CARLA_UE_GENERATE_PROJECT_SCRIPT
${CARLA_UNREAL_ENGINE_PATH}/GenerateProjectFiles.sh
)
endif ()
carla_two_step_configure_file (
${CARLA_UE_PLUGINS_PATH}/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs
${CARLA_UE_PLUGINS_PATH}/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs.in
)
add_custom_command (
OUTPUT ${CARLA_UE_PATH}/CMakeLists.txt
@ -56,12 +48,28 @@ add_custom_target (
DEPENDS ${CARLA_UE_PATH}/CMakeLists.txt
)
if (CMAKE_TOOLCHAIN_FILE)
cmake_path (
ABSOLUTE_PATH CMAKE_TOOLCHAIN_FILE
BASE_DIRECTORY ${CARLA_WORKSPACE_PATH}
NORMALIZE
OUTPUT_VARIABLE TOOLCHAIN_FILE
)
set (TOOLCHAIN_FILE_OPTION --toolchain=${TOOLCHAIN_FILE})
else ()
set (TOOLCHAIN_FILE_OPTION)
endif ()
add_custom_command (
OUTPUT carla-ue-configure.stamp
COMMAND
${CMAKE_COMMAND} -E touch carla-ue-configure.stamp
COMMENT
"Configuring Carla Unreal..."
COMMAND
${CMAKE_COMMAND} -E touch carla-ue-configure.stamp
COMMAND
${CMAKE_COMMAND}
-S ${CARLA_UE_PATH}
@ -76,13 +84,14 @@ add_custom_target (
carla-ue-generate-project-files
)
add_custom_command (
OUTPUT carla-ue.stamp
VERBATIM
COMMAND
${CMAKE_COMMAND} -E touch carla-ue.stamp
COMMENT
"Building Carla Unreal..."
COMMAND
${CMAKE_COMMAND} -E touch carla-ue.stamp
COMMAND
${CMAKE_COMMAND}
--build ${CMAKE_CURRENT_BINARY_DIR}
@ -98,7 +107,38 @@ add_custom_target (
carla-ue.stamp
)
add_custom_target (
launch-only
COMMAND
${CARLA_UNREAL_ENGINE_PATH}/Engine/Binaries/Linux/UnrealEditor
${CARLA_UE_PROJECT_PATH}
-${CARLA_UNREAL_RHI}
)
add_custom_target (
launch
DEPENDS
carla-ue
launch-only
)
file (
MAKE_DIRECTORY
${CARLA_UE_PATH}/Content/Carla/ExportedMaps
)
carla_two_step_configure_file (
${CARLA_UE_PLUGINS_PATH}/Carla/Source/Carla/Carla.Build.cs
${CARLA_UE_PLUGINS_PATH}/Carla/Source/Carla/Carla.Build.cs.in
)
carla_two_step_configure_file (
${CARLA_UE_PLUGINS_PATH}/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs
${CARLA_UE_PLUGINS_PATH}/CarlaTools/Source/CarlaTools/CarlaTools.Build.cs.in
)

View File

@ -1,4 +1,5 @@
[/Script/Engine.InputSettings]
-AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
-AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
@ -6,6 +7,8 @@
-AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f))
-AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
-AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
-AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f))
+AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
@ -27,46 +30,93 @@
+AxisConfig=(AxisKeyName="MotionController_Right_Grip2Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
+AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False))
bAltEnterTogglesFullscreen=True
bF11TogglesFullscreen=True
bUseMouseForTouch=False
bEnableMouseSmoothing=True
bEnableFOVScaling=True
FOVScale=0.011110
DoubleClickTime=0.200000
bCaptureMouseOnLaunch=False
DefaultViewportMouseCaptureMode=CaptureDuringMouseDown
bDefaultViewportMouseLock=False
DefaultViewportMouseLockMode=DoNotLock
+ActionMappings=(ActionName="RestartLevel",Key=R,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Handbrake",Key=SpaceBar,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="ToggleManualMode",Key=M,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="ToggleHUD",Key=G,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="Jump",Key=Enter,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="ToggleReverse",Key=Q,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="UseTheForce",Key=F,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="ToggleCamera",Key=Tab,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="ChangeWeather",Key=C,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+ActionMappings=(ActionName="ToggleAutopilot",Key=P,bShift=False,bCtrl=False,bAlt=False,bCmd=False)
+AxisMappings=(AxisName="CameraZoom",Key=MouseWheelAxis,Scale=-20.000000)
+AxisMappings=(AxisName="CameraZoom",Key=PageUp,Scale=-10.000000)
+AxisMappings=(AxisName="CameraZoom",Key=PageDown,Scale=10.000000)
+AxisMappings=(AxisName="CameraUp",Key=Up,Scale=1.000000)
+AxisMappings=(AxisName="CameraUp",Key=Down,Scale=-1.000000)
+AxisMappings=(AxisName="CameraRight",Key=Right,Scale=1.000000)
+AxisMappings=(AxisName="CameraRight",Key=Left,Scale=-1.000000)
+AxisMappings=(AxisName="MoveForward",Key=W,Scale=1.000000)
+AxisMappings=(AxisName="MoveRight",Key=D,Scale=1.000000)
+AxisMappings=(AxisName="MoveRight",Key=A,Scale=-1.000000)
+AxisMappings=(AxisName="Brake",Key=B,Scale=1.000000)
+AxisMappings=(AxisName="MoveForward",Key=S,Scale=-1.000000)
+AxisMappings=(AxisName="MoveUp",Key=E,Scale=1.000000)
+AxisMappings=(AxisName="MoveUp",Key=Q,Scale=-1.000000)
bEnableLegacyInputScales=True
bEnableMotionControls=True
bFilterInputByPlatformUser=False
bEnableInputDeviceSubsystem=True
bShouldFlushPressedKeysOnViewportFocusLost=True
bEnableDynamicComponentInputBinding=True
bAlwaysShowTouchInterface=False
bShowConsoleOnFourFingerTap=True
bEnableGestureRecognizer=False
bUseAutocorrect=False
DefaultViewportMouseCaptureMode=CaptureDuringMouseDown
DefaultViewportMouseLockMode=DoNotLock
FOVScale=0.011110
DoubleClickTime=0.200000
+ActionMappings=(ActionName="RestartLevel",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=R)
+ActionMappings=(ActionName="Handbrake",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=SpaceBar)
+ActionMappings=(ActionName="ToggleManualMode",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=M)
+ActionMappings=(ActionName="ToggleHUD",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=G)
+ActionMappings=(ActionName="Jump",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Enter)
+ActionMappings=(ActionName="ToggleReverse",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Q)
+ActionMappings=(ActionName="UseTheForce",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=F)
+ActionMappings=(ActionName="ToggleCamera",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=Tab)
+ActionMappings=(ActionName="ChangeWeather",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=C)
+ActionMappings=(ActionName="ToggleAutopilot",bShift=False,bCtrl=False,bAlt=False,bCmd=False,Key=P)
+AxisMappings=(AxisName="CameraZoom",Scale=-20.000000,Key=MouseWheelAxis)
+AxisMappings=(AxisName="CameraZoom",Scale=-10.000000,Key=PageUp)
+AxisMappings=(AxisName="CameraZoom",Scale=10.000000,Key=PageDown)
+AxisMappings=(AxisName="CameraUp",Scale=1.000000,Key=Up)
+AxisMappings=(AxisName="CameraUp",Scale=-1.000000,Key=Down)
+AxisMappings=(AxisName="CameraRight",Scale=1.000000,Key=Right)
+AxisMappings=(AxisName="CameraRight",Scale=-1.000000,Key=Left)
+AxisMappings=(AxisName="MoveForward",Scale=1.000000,Key=W)
+AxisMappings=(AxisName="MoveRight",Scale=1.000000,Key=D)
+AxisMappings=(AxisName="MoveRight",Scale=-1.000000,Key=A)
+AxisMappings=(AxisName="Brake",Scale=1.000000,Key=B)
+AxisMappings=(AxisName="MoveForward",Scale=-1.000000,Key=S)
+AxisMappings=(AxisName="MoveUp",Scale=1.000000,Key=E)
+AxisMappings=(AxisName="MoveUp",Scale=-1.000000,Key=Q)
DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput
DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent
DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks
ConsoleKey=None
-ConsoleKeys=Tilde
+ConsoleKeys=Tilde