2024-03-04 20:10:00 +08:00
|
|
|
project (
|
2024-03-12 20:04:01 +08:00
|
|
|
carla-unreal
|
|
|
|
VERSION
|
|
|
|
${CARLA_VERSION}
|
|
|
|
LANGUAGES
|
|
|
|
CXX
|
|
|
|
DESCRIPTION
|
|
|
|
"Open-source simulator for autonomous driving research."
|
2024-03-04 20:10:00 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
set (
|
|
|
|
CARLA_UE_PATH
|
2024-03-04 20:33:51 +08:00
|
|
|
${CARLA_WORKSPACE_PATH}/Unreal/CarlaUnreal
|
2024-03-04 20:10:00 +08:00
|
|
|
)
|
|
|
|
|
2024-03-07 00:20:13 +08:00
|
|
|
set (
|
|
|
|
CARLA_UE_PLUGINS_PATH
|
|
|
|
${CARLA_UE_PATH}/Plugins
|
|
|
|
)
|
|
|
|
|
2024-03-15 03:03:32 +08:00
|
|
|
set (
|
|
|
|
CARLA_UE_CARLA_PATH
|
|
|
|
${CARLA_UE_PLUGINS_PATH}/Carla
|
|
|
|
)
|
|
|
|
|
|
|
|
set (
|
|
|
|
CARLA_UE_CARLA_TOOLS_PATH
|
|
|
|
${CARLA_UE_PLUGINS_PATH}/CarlaTools
|
|
|
|
)
|
|
|
|
|
2024-03-04 20:10:00 +08:00
|
|
|
set (
|
|
|
|
CARLA_UE_PROJECT_PATH
|
2024-03-04 20:33:51 +08:00
|
|
|
${CARLA_UE_PATH}/CarlaUnreal.uproject
|
2024-03-04 20:10:00 +08:00
|
|
|
)
|
|
|
|
|
2024-03-14 23:27:10 +08:00
|
|
|
if (ENABLE_ROS2)
|
|
|
|
set (LAUNCH_ARGS ${LAUNCH_ARGS} --ros2)
|
|
|
|
endif()
|
|
|
|
|
2024-03-09 03:31:22 +08:00
|
|
|
if (WIN32)
|
|
|
|
set (
|
2024-03-11 19:30:24 +08:00
|
|
|
CARLA_UE_GENERATE_PROJECT_FILES_COMMAND
|
2024-03-09 03:31:22 +08:00
|
|
|
${CARLA_UNREAL_ENGINE_PATH}/GenerateProjectFiles.bat
|
2024-03-11 19:30:24 +08:00
|
|
|
-project=${CARLA_UE_PROJECT_PATH}
|
|
|
|
-CMakefile
|
|
|
|
-game
|
|
|
|
-engine
|
2024-03-09 03:31:22 +08:00
|
|
|
)
|
|
|
|
else ()
|
|
|
|
set (
|
2024-03-11 19:30:24 +08:00
|
|
|
CARLA_UE_GENERATE_PROJECT_FILES_COMMAND
|
2024-03-09 03:31:22 +08:00
|
|
|
${CARLA_UNREAL_ENGINE_PATH}/GenerateProjectFiles.sh
|
2024-03-11 19:30:24 +08:00
|
|
|
-project=${CARLA_UE_PROJECT_PATH}
|
|
|
|
-CMakefile
|
|
|
|
-game
|
|
|
|
-engine
|
2024-03-09 03:31:22 +08:00
|
|
|
)
|
|
|
|
endif ()
|
|
|
|
|
2024-03-07 00:20:13 +08:00
|
|
|
|
|
|
|
|
2024-03-08 00:11:15 +08:00
|
|
|
add_custom_command (
|
2024-03-12 18:01:37 +08:00
|
|
|
OUTPUT
|
|
|
|
${CARLA_UE_PATH}/CMakeLists.txt
|
2024-03-07 00:20:13 +08:00
|
|
|
COMMENT
|
|
|
|
"Generating UE project files for CARLA..."
|
2024-03-04 20:10:00 +08:00
|
|
|
COMMAND
|
2024-03-11 19:30:24 +08:00
|
|
|
${CARLA_UE_GENERATE_PROJECT_FILES_COMMAND}
|
2024-03-11 04:42:58 +08:00
|
|
|
# Remember to add this on most Unreal-related commands,
|
|
|
|
# otherwise nothing is printed while running the command:
|
|
|
|
USES_TERMINAL
|
2024-03-12 18:01:37 +08:00
|
|
|
VERBATIM
|
2024-03-04 20:10:00 +08:00
|
|
|
)
|
|
|
|
|
2024-03-07 00:20:13 +08:00
|
|
|
add_custom_target (
|
2024-03-12 20:04:01 +08:00
|
|
|
carla-unreal-generate-project-files
|
2024-03-11 19:30:24 +08:00
|
|
|
DEPENDS
|
|
|
|
${CARLA_UE_PATH}/CMakeLists.txt
|
2024-03-08 00:11:15 +08:00
|
|
|
)
|
|
|
|
|
2024-03-12 23:50:08 +08:00
|
|
|
set (
|
|
|
|
UE_DEPENDENCIES
|
2024-03-12 18:01:37 +08:00
|
|
|
carla-server
|
2024-03-12 18:20:17 +08:00
|
|
|
libsqlite3
|
|
|
|
Boost::asio
|
|
|
|
Boost::python
|
|
|
|
Boost::numpy
|
|
|
|
Boost::geometry
|
|
|
|
Boost::gil
|
|
|
|
Eigen3::Eigen
|
|
|
|
zlibstatic
|
|
|
|
png_static
|
2024-03-15 03:03:32 +08:00
|
|
|
rpc
|
|
|
|
)
|
|
|
|
|
|
|
|
set (
|
|
|
|
CARLA_UNREAL_INCLUDE_PATHS_FILE_PATH
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/Includes.inc
|
|
|
|
)
|
|
|
|
|
|
|
|
set (
|
|
|
|
CARLA_UNREAL_INCLUDE_PATHS
|
|
|
|
${sqlite3_SOURCE_DIR}
|
|
|
|
)
|
|
|
|
|
|
|
|
foreach (UE_DEP ${UE_DEPENDENCIES})
|
|
|
|
list (
|
|
|
|
APPEND
|
|
|
|
CARLA_UNREAL_INCLUDE_PATHS
|
|
|
|
"$<TARGET_PROPERTY:${UE_DEP},INTERFACE_INCLUDE_DIRECTORIES>"
|
|
|
|
)
|
|
|
|
endforeach ()
|
|
|
|
|
|
|
|
set (
|
|
|
|
CARLA_UNREAL_LIBRARIES_PATHS_FILE_PATH
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/Libraries.inc
|
2024-03-12 18:01:37 +08:00
|
|
|
)
|
|
|
|
|
2024-03-15 03:03:32 +08:00
|
|
|
set (
|
|
|
|
CARLA_UNREAL_LIBRARIES
|
|
|
|
$<TARGET_FILE:libsqlite3>
|
|
|
|
)
|
|
|
|
|
|
|
|
foreach (UE_DEP ${UE_DEPENDENCIES})
|
|
|
|
get_target_property (UE_DEP_TYPE ${UE_DEP} TYPE)
|
|
|
|
if (NOT ("${UE_DEP_TYPE}" STREQUAL "INTERFACE_LIBRARY"))
|
|
|
|
list (
|
|
|
|
APPEND
|
|
|
|
CARLA_UNREAL_LIBRARIES
|
|
|
|
"$<TARGET_FILE:${UE_DEP}>"
|
|
|
|
)
|
|
|
|
endif ()
|
|
|
|
endforeach ()
|
|
|
|
|
2024-03-12 23:50:08 +08:00
|
|
|
add_dependencies (
|
|
|
|
carla-unreal-generate-project-files
|
|
|
|
${UE_DEPENDENCIES}
|
|
|
|
)
|
|
|
|
|
2024-03-09 03:31:22 +08:00
|
|
|
|
|
|
|
|
|
|
|
if (CMAKE_TOOLCHAIN_FILE)
|
|
|
|
cmake_path (
|
2024-03-15 03:03:32 +08:00
|
|
|
ABSOLUTE_PATH
|
|
|
|
CMAKE_TOOLCHAIN_FILE
|
|
|
|
BASE_DIRECTORY
|
|
|
|
${CARLA_WORKSPACE_PATH}
|
2024-03-09 03:31:22 +08:00
|
|
|
NORMALIZE
|
2024-03-15 03:03:32 +08:00
|
|
|
OUTPUT_VARIABLE
|
|
|
|
TOOLCHAIN_FILE
|
2024-03-09 03:31:22 +08:00
|
|
|
)
|
2024-03-12 20:04:01 +08:00
|
|
|
set (
|
|
|
|
TOOLCHAIN_FILE_OPTION
|
|
|
|
--toolchain=${TOOLCHAIN_FILE}
|
|
|
|
)
|
2024-03-09 03:31:22 +08:00
|
|
|
else ()
|
|
|
|
set (TOOLCHAIN_FILE_OPTION)
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-08 00:11:15 +08:00
|
|
|
add_custom_command (
|
2024-03-12 18:01:37 +08:00
|
|
|
OUTPUT
|
2024-03-15 03:03:32 +08:00
|
|
|
${CARLA_UNREAL_INCLUDE_PATHS_FILE_PATH}
|
|
|
|
${CARLA_UNREAL_LIBRARIES_PATHS_FILE_PATH}
|
2024-03-08 00:11:15 +08:00
|
|
|
COMMENT
|
|
|
|
"Configuring Carla Unreal..."
|
2024-03-15 03:03:32 +08:00
|
|
|
COMMAND ${CMAKE_COMMAND} -E rm -f ${CARLA_UNREAL_INCLUDE_PATHS_FILE_PATH}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E echo "${CARLA_UNREAL_INCLUDE_PATHS}" >> ${CARLA_UNREAL_INCLUDE_PATHS_FILE_PATH}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CARLA_UNREAL_INCLUDE_PATHS_FILE_PATH} ${CARLA_UE_CARLA_PATH}/Includes.def
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CARLA_UNREAL_INCLUDE_PATHS_FILE_PATH} ${CARLA_UE_CARLA_TOOLS_PATH}/Includes.def
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E rm -f ${CARLA_UNREAL_LIBRARIES_PATHS_FILE_PATH}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E echo "${CARLA_UNREAL_LIBRARIES}" >> ${CARLA_UNREAL_LIBRARIES_PATHS_FILE_PATH}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CARLA_UNREAL_LIBRARIES_PATHS_FILE_PATH} ${CARLA_UE_CARLA_PATH}/Libraries.def
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${CARLA_UNREAL_LIBRARIES_PATHS_FILE_PATH} ${CARLA_UE_CARLA_TOOLS_PATH}/Libraries.def
|
2024-03-09 03:31:22 +08:00
|
|
|
COMMAND
|
2024-03-11 19:30:24 +08:00
|
|
|
${CMAKE_COMMAND}
|
|
|
|
-S ${CARLA_UE_PATH}
|
|
|
|
-B ${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
${TOOLCHAIN_FILE_OPTION}
|
2024-03-11 04:42:58 +08:00
|
|
|
USES_TERMINAL
|
2024-03-12 18:01:37 +08:00
|
|
|
VERBATIM
|
2024-03-08 00:11:15 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
add_custom_target (
|
2024-03-12 20:04:01 +08:00
|
|
|
carla-unreal-configure
|
2024-03-07 00:20:13 +08:00
|
|
|
DEPENDS
|
2024-03-15 03:03:32 +08:00
|
|
|
${CARLA_UNREAL_INCLUDE_PATHS_FILE_PATH}
|
|
|
|
${CARLA_UNREAL_LIBRARIES_PATHS_FILE_PATH}
|
2024-03-08 00:11:15 +08:00
|
|
|
)
|
|
|
|
|
2024-03-12 18:01:37 +08:00
|
|
|
add_dependencies (
|
2024-03-12 20:04:01 +08:00
|
|
|
carla-unreal-configure
|
|
|
|
carla-unreal-generate-project-files
|
2024-03-12 18:01:37 +08:00
|
|
|
)
|
|
|
|
|
2024-03-09 03:31:22 +08:00
|
|
|
|
|
|
|
|
2024-03-08 00:11:15 +08:00
|
|
|
add_custom_command (
|
2024-03-12 18:01:37 +08:00
|
|
|
OUTPUT
|
2024-03-12 20:04:01 +08:00
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/carla-unreal.stamp
|
2024-03-07 00:20:13 +08:00
|
|
|
COMMENT
|
2024-03-08 00:11:15 +08:00
|
|
|
"Building Carla Unreal..."
|
2024-03-07 00:20:13 +08:00
|
|
|
COMMAND
|
|
|
|
${CMAKE_COMMAND}
|
2024-03-08 00:11:15 +08:00
|
|
|
--build ${CMAKE_CURRENT_BINARY_DIR}
|
|
|
|
--target CarlaUnrealEditor
|
2024-03-11 19:30:24 +08:00
|
|
|
COMMAND
|
|
|
|
${CMAKE_COMMAND}
|
2024-03-12 20:04:01 +08:00
|
|
|
-E touch carla-unreal.stamp
|
2024-03-11 04:42:58 +08:00
|
|
|
USES_TERMINAL
|
2024-03-12 18:01:37 +08:00
|
|
|
VERBATIM
|
2024-03-08 00:11:15 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
add_custom_target (
|
2024-03-12 20:04:01 +08:00
|
|
|
carla-unreal
|
2024-03-08 00:11:15 +08:00
|
|
|
DEPENDS
|
2024-03-12 20:04:01 +08:00
|
|
|
carla-unreal.stamp
|
2024-03-07 00:20:13 +08:00
|
|
|
)
|
2024-03-04 20:10:00 +08:00
|
|
|
|
2024-03-12 18:01:37 +08:00
|
|
|
add_dependencies (
|
2024-03-12 20:04:01 +08:00
|
|
|
carla-unreal
|
|
|
|
carla-unreal-configure
|
2024-03-12 18:01:37 +08:00
|
|
|
)
|
|
|
|
|
2024-03-09 03:31:22 +08:00
|
|
|
|
|
|
|
|
2024-03-11 16:20:27 +08:00
|
|
|
if (WIN32)
|
|
|
|
set (EXE_EXT .exe)
|
2024-03-11 16:13:55 +08:00
|
|
|
set (UE_SYSTEM_NAME Win64)
|
|
|
|
elseif (LINUX)
|
2024-03-12 20:04:01 +08:00
|
|
|
set (EXE_EXT)
|
2024-03-11 16:13:55 +08:00
|
|
|
set (UE_SYSTEM_NAME Linux)
|
2024-03-12 20:04:01 +08:00
|
|
|
elseif (APPLE)
|
|
|
|
set (EXE_EXT)
|
|
|
|
set (UE_SYSTEM_NAME Mac)
|
2024-03-11 16:13:55 +08:00
|
|
|
else ()
|
2024-03-13 22:38:31 +08:00
|
|
|
carla_error ("Unknown target system.")
|
2024-03-11 16:13:55 +08:00
|
|
|
endif ()
|
|
|
|
|
2024-03-12 20:04:01 +08:00
|
|
|
set (
|
|
|
|
UNREAL_EDITOR_PATH
|
|
|
|
${CARLA_UNREAL_ENGINE_PATH}/Engine/Binaries/${UE_SYSTEM_NAME}/UnrealEditor${EXE_EXT}
|
2024-03-09 03:31:22 +08:00
|
|
|
)
|
|
|
|
|
2024-03-12 23:54:59 +08:00
|
|
|
set (
|
|
|
|
LAUNCH_DEPENDENCIES
|
|
|
|
carla-unreal
|
|
|
|
)
|
|
|
|
|
|
|
|
if (BUILD_PYTHON_API)
|
|
|
|
list (
|
|
|
|
APPEND
|
|
|
|
LAUNCH_DEPENDENCIES
|
|
|
|
carla-python-api
|
|
|
|
)
|
|
|
|
endif ()
|
|
|
|
|
2024-03-15 02:08:12 +08:00
|
|
|
|
|
|
|
|
2024-03-09 03:31:22 +08:00
|
|
|
add_custom_target (
|
2024-03-15 02:08:12 +08:00
|
|
|
launch-only
|
2024-03-12 18:01:37 +08:00
|
|
|
COMMENT
|
|
|
|
"Launching Carla Unreal..."
|
|
|
|
COMMAND
|
2024-03-12 20:04:01 +08:00
|
|
|
${UNREAL_EDITOR_PATH}
|
2024-03-12 18:01:37 +08:00
|
|
|
${CARLA_UE_PROJECT_PATH}
|
|
|
|
-${CARLA_UNREAL_RHI}
|
|
|
|
${LAUNCH_ARGS}
|
|
|
|
USES_TERMINAL
|
|
|
|
VERBATIM
|
|
|
|
)
|
|
|
|
|
2024-03-15 02:08:12 +08:00
|
|
|
|
|
|
|
|
|
|
|
add_custom_target (
|
|
|
|
launch
|
2024-03-15 03:03:32 +08:00
|
|
|
COMMENT
|
|
|
|
"Launching Carla Unreal..."
|
|
|
|
COMMAND
|
|
|
|
${UNREAL_EDITOR_PATH}
|
|
|
|
${CARLA_UE_PROJECT_PATH}
|
|
|
|
-${CARLA_UNREAL_RHI}
|
|
|
|
${LAUNCH_ARGS}
|
|
|
|
USES_TERMINAL
|
|
|
|
VERBATIM
|
2024-03-15 02:08:12 +08:00
|
|
|
)
|
|
|
|
|
2024-03-12 18:01:37 +08:00
|
|
|
add_dependencies (
|
|
|
|
launch
|
2024-03-12 23:54:59 +08:00
|
|
|
${LAUNCH_DEPENDENCIES}
|
2024-03-09 03:31:22 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-04 20:10:00 +08:00
|
|
|
file (
|
|
|
|
MAKE_DIRECTORY
|
|
|
|
${CARLA_UE_PATH}/Content/Carla/ExportedMaps
|
2024-03-09 03:31:22 +08:00
|
|
|
)
|