diff --git a/CMake/Common.cmake b/CMake/Common.cmake index e441de9f6..f8f72642c 100644 --- a/CMake/Common.cmake +++ b/CMake/Common.cmake @@ -39,9 +39,9 @@ endif () if (WIN32) add_compile_definitions (_CRT_SECURE_NO_WARNINGS) - - check_cxx_compiler_flag(/utf-8 HAS_MSVC_UTF8) + check_cxx_compiler_flag (/utf-8 HAS_MSVC_UTF8) if (HAS_MSVC_UTF8) + # @TODO This causes warnings with MASM. A better approach should be looked into. add_compile_options (/utf-8) endif () endif () @@ -49,7 +49,7 @@ endif () set (CARLA_COMMON_DEFINITIONS) foreach (FORMAT ${LIBCARLA_IMAGE_SUPPORTED_FORMATS}) - carla_message ("Enabling CARLA image support for \"${FORMAT}\".") + carla_message_verbose ("Enabling CARLA image support for \"${FORMAT}\".") string (TOUPPER "${FORMAT}" FORMAT_UPPERCASE) list (APPEND CARLA_COMMON_DEFINITIONS LIBCARLA_IMAGE_SUPPORT_${FORMAT_UPPERCASE}=1) endforeach () @@ -61,6 +61,19 @@ if (WIN32) list (APPEND CARLA_COMMON_DEFINITIONS _USE_MATH_DEFINES) endif () +if (WIN32) + set (EXE_EXT .exe) + set (UE_SYSTEM_NAME Win64) +elseif (LINUX) + set (EXE_EXT) + set (UE_SYSTEM_NAME Linux) +elseif (APPLE) + set (EXE_EXT) + set (UE_SYSTEM_NAME Mac) +else () + carla_error ("Unknown target system.") +endif () + # ================================ # Exception Definitions # ================================ diff --git a/CMake/Dependencies.cmake b/CMake/Dependencies.cmake index 6a4ae60cd..2b4352318 100644 --- a/CMake/Dependencies.cmake +++ b/CMake/Dependencies.cmake @@ -94,8 +94,9 @@ target_link_libraries ( libsqlite3 ) -# ==== ZLIB ==== + +# ==== ZLIB ==== carla_dependency_option (ZLIB_BUILD_EXAMPLES OFF) carla_dependency_add ( zlib @@ -117,8 +118,9 @@ endif () carla_dependency_option (ZLIB_INCLUDE_DIRS ${zlib_SOURCE_DIR} ${zlib_BINARY_DIR}) carla_dependency_option (ZLIB_LIBRARIES ${ZLIB_LIBRARY}) -# ==== LIBPNG ==== + +# ==== LIBPNG ==== carla_dependency_option (PNG_SHARED OFF) carla_dependency_option (PNG_STATIC ON) if (APPLE) @@ -143,11 +145,6 @@ include_directories ( # ==== BOOST ==== - -carla_dependency_option (BOOST_ENABLE_PYTHON ${BUILD_PYTHON_API}) -carla_dependency_option (BOOST_ENABLE_MPI OFF) -carla_dependency_option (BOOST_LOCALE_WITH_ICU OFF) -carla_dependency_option (BOOST_LOCALE_WITH_ICONV OFF) set ( BOOST_INCLUDED_PROJECTS asio @@ -155,11 +152,22 @@ set ( python date_time geometry - gil container variant2 + gil +) +set ( + BOOST_EXCLUDED_PROJECTS + # filesystem # <- Boost.GIL links with Boost.filesystem, so we can't remove the dependency yet. ) carla_dependency_option (BOOST_INCLUDE_LIBRARIES "${BOOST_INCLUDED_PROJECTS}") +carla_dependency_option (BOOST_EXCLUDE_LIBRARIES "${BOOST_EXCLUDED_PROJECTS}") +carla_dependency_option (BOOST_ENABLE_PYTHON ${BUILD_PYTHON_API}) +carla_dependency_option (BOOST_ENABLE_MPI OFF) +carla_dependency_option (BOOST_LOCALE_WITH_ICU OFF) +carla_dependency_option (BOOST_LOCALE_WITH_ICONV OFF) +carla_dependency_option (BOOST_GIL_BUILD_EXAMPLES OFF) +carla_dependency_option (BOOST_GIL_BUILD_HEADER_TESTS OFF) carla_dependency_add( boost ${CARLA_BOOST_TAG} @@ -167,8 +175,9 @@ carla_dependency_add( https://github.com/boostorg/boost.git ) -# ==== EIGEN ==== + +# ==== EIGEN ==== carla_dependency_option (EIGEN_BUILD_PKGCONFIG OFF) carla_dependency_option (BUILD_TESTING OFF) carla_dependency_option (EIGEN_BUILD_DOC OFF) @@ -179,8 +188,9 @@ carla_dependency_add ( https://gitlab.com/libeigen/eigen.git ) -# ==== RPCLIB ==== + +# ==== RPCLIB ==== carla_dependency_add ( rpclib ${CARLA_RPCLIB_TAG} @@ -188,8 +198,9 @@ carla_dependency_add ( https://github.com/carla-simulator/rpclib.git ) -# ==== RECAST ==== + +# ==== RECAST ==== carla_dependency_option (RECASTNAVIGATION_BUILDER ON) carla_dependency_add ( recastnavigation @@ -198,9 +209,10 @@ carla_dependency_add ( https://github.com/carla-simulator/recastnavigation.git ) -# ==== PROJ ==== + if (ENABLE_OSM2ODR) + # ==== PROJ ==== carla_dependency_option (BUILD_TESTING OFF) carla_dependency_option (ENABLE_TIFF OFF) carla_dependency_option (ENABLE_CURL OFF) @@ -212,9 +224,10 @@ if (ENABLE_OSM2ODR) ) endif () -# ==== XERCESC ==== + if (ENABLE_OSM2ODR) + # ==== XERCESC ==== carla_dependency_add ( xercesc ${CARLA_XERCESC_TAG} @@ -223,20 +236,18 @@ if (ENABLE_OSM2ODR) ) endif () -# ==== LUNASVG ==== + if (BUILD_OSM_WORLD_RENDERER) + # ==== LUNASVG ==== carla_dependency_add ( lunasvg ${CARLA_LUNASVG_TAG} https://github.com/sammycage/lunasvg/archive/refs/tags/${CARLA_LUNASVG_TAG}.zip https://github.com/sammycage/lunasvg.git ) -endif () -# ==== LIBOSMSCOUT ==== - -if (BUILD_OSM_WORLD_RENDERER) + # ==== LIBOSMSCOUT ==== carla_dependency_add ( libosmscout ${CARLA_LIBOSMSCOUT_TAG} @@ -245,9 +256,10 @@ if (BUILD_OSM_WORLD_RENDERER) ) endif () -# ==== STREETMAP ==== + if (BUILD_CARLA_UNREAL) + # ==== STREETMAP ==== carla_dependency_add ( StreetMap ${CARLA_STREETMAP_TAG} diff --git a/CMake/Options.cmake b/CMake/Options.cmake index 0c22be476..3d5a1f9c6 100644 --- a/CMake/Options.cmake +++ b/CMake/Options.cmake @@ -104,12 +104,6 @@ carla_option ( OFF ) -carla_option ( - BUILD_PYTHON_API_WHEEL_PACKAGE - "Whether to build the CARLA python API wheel package." - ON -) - carla_option ( ENABLE_PEP517 "Whether to use PEP 517." @@ -146,6 +140,12 @@ carla_string_option ( /usr/bin/gcc-12 ) +carla_option ( + VERBOSE_CONFIGURE + "Whether to emit extra messages during CMake configure." + OFF +) + # ================================ @@ -198,18 +198,14 @@ carla_string_option ( "${CARLA_UNREAL_RHI_DEFAULT}" ) -if (${BUILD_CARLA_UNREAL}) -if (${CARLA_HAS_UNREAL_ENGINE_PATH}) - carla_message ( - "Carla UE project successfully added to build. (UE path: ${CARLA_UNREAL_ENGINE_PATH})" - ) -else () - carla_error ( - "Could not add UE project to build since the carla_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 () +if (BUILD_CARLA_UNREAL) + if (NOT ${CARLA_HAS_UNREAL_ENGINE_PATH}) + carla_error ( + "Could not add UE project to build since the carla_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 () carla_string_option ( @@ -380,7 +376,6 @@ carla_string_option ( ${CARLA_LIBOSMSCOUT_VERSION} ) - # ==== STREETMAP ==== carla_string_option ( @@ -394,3 +389,45 @@ carla_string_option ( "Target StreetMap git tag." ${CARLA_STREETMAP_VERSION} ) + +# ==== FASTDDS ==== + +carla_string_option ( + CARLA_FASTDDS_VERSION + "Target Fast-DDS version." + 2.11.2 +) + +carla_string_option ( + CARLA_FASTDDS_TAG + "Target Fast-DDS git tag." + ${CARLA_FASTDDS_VERSION} +) + +# ==== FASTCDR ==== + +carla_string_option ( + CARLA_FASTCDR_VERSION + "Target Fast-CDR version." + 2.2.x +) + +carla_string_option ( + CARLA_FASTCDR_TAG + "Target Fast-CDR git tag." + ${CARLA_FASTCDR_VERSION} +) + +# ==== FOONATHAN MEMORY VENDOR ==== + +carla_string_option ( + CARLA_FOONATHAN_MEMORY_VENDOR_VERSION + "Target foonathan_memory_vendor version." + master +) + +carla_string_option ( + CARLA_FOONATHAN_MEMORY_VENDOR_TAG + "Target foonathan_memory_vendor git tag." + ${CARLA_FOONATHAN_MEMORY_VENDOR_VERSION} +) diff --git a/CMake/Util.cmake b/CMake/Util.cmake index 3d2c71735..bc8ad99d6 100644 --- a/CMake/Util.cmake +++ b/CMake/Util.cmake @@ -1,20 +1,15 @@ -# Similar to configure_file, but also expands variables -# that are set at generate time, like generator expressions. -function (carla_two_step_configure_file DESTINATION SOURCE) - carla_message ("Configuring file ${DESTINATION}") - # Configure-time step; evaluate variables: - configure_file (${SOURCE} ${DESTINATION} @ONLY) - # Generate-time step; evaluate generator expressions: - file (GENERATE OUTPUT ${DESTINATION} INPUT ${DESTINATION}) -endfunction () - - - # message wrapper for normal messages. function (carla_message) message (STATUS "CARLA: " ${ARGN}) endfunction () +# message wrapper for normal messages. +function (carla_message_verbose) + if (VERBOSE_CONFIGURE) + message (STATUS "CARLA: " ${ARGN}) + endif () +endfunction () + # message() wrapper for warnings. @@ -39,7 +34,7 @@ endfunction () macro (carla_option NAME DESCRIPTION VALUE) option (${NAME} ${DESCRIPTION} ${VALUE}) - carla_message ("(option) ${NAME} : ${${NAME}}") + carla_message_verbose ("(option) ${NAME} : ${${NAME}}") get_property (DOCS GLOBAL PROPERTY CARLA_OPTION_DOCS) string ( APPEND @@ -55,7 +50,7 @@ endmacro () macro (carla_string_option NAME DESCRIPTION VALUE) set (${NAME} "${VALUE}") - carla_message ("(option) ${NAME} : \"${${NAME}}\"") + carla_message_verbose ("(option) ${NAME} : \"${${NAME}}\"") get_property (DOCS GLOBAL PROPERTY CARLA_OPTION_DOCS) string ( APPEND @@ -69,6 +64,18 @@ endmacro () +# Similar to configure_file, but also expands variables +# that are set at generate time, like generator expressions. +function (carla_two_step_configure_file DESTINATION SOURCE) + carla_message_verbose ("Configuring file ${DESTINATION}") + # Configure-time step; evaluate variables: + configure_file (${SOURCE} ${DESTINATION} @ONLY) + # Generate-time step; evaluate generator expressions: + file (GENERATE OUTPUT ${DESTINATION} INPUT ${DESTINATION}) +endfunction () + + + # If, for some reason, CARLA is configured with CMake<3.5, this is necessary: if (${CMAKE_VERSION} VERSION_LESS 3.5) include (CMakeParseArguments) @@ -139,6 +146,34 @@ endfunction () +if (VERBOSE_CONFIGURE) + macro (carla_print_cmake_variable NAME) + carla_message ("${NAME}: \'${${NAME}}\'") + endmacro () + + carla_print_cmake_variable (CMAKE_C_COMPILER) + carla_print_cmake_variable (CMAKE_CXX_COMPILER) + carla_print_cmake_variable (CMAKE_ASM_COMPILER) + carla_print_cmake_variable (CMAKE_AR) + carla_print_cmake_variable (CMAKE_C_COMPILER_AR) + carla_print_cmake_variable (CMAKE_CXX_COMPILER_AR) + carla_print_cmake_variable (CMAKE_OBJCOPY) + carla_print_cmake_variable (CMAKE_ADDR2LINE) + carla_print_cmake_variable (CMAKE_C_COMPILER_RANLIB) + carla_print_cmake_variable (CMAKE_CXX_COMPILER_RANLIB) + carla_print_cmake_variable (CMAKE_LINKER) + carla_print_cmake_variable (CMAKE_NM) + carla_print_cmake_variable (CMAKE_OBJDUMP) + carla_print_cmake_variable (CMAKE_RANLIB) + carla_print_cmake_variable (CMAKE_READELF) + carla_print_cmake_variable (CMAKE_STRIP) + carla_print_cmake_variable (COVERAGE_COMMAND) + carla_print_cmake_variable (CMAKE_CXX_STANDARD_LIBRARIES) + carla_print_cmake_variable (CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES) +endif () + + + carla_add_target_docs ( NAME clean TYPE Builtin diff --git a/CMakeLists.txt b/CMakeLists.txt index 86f203546..c9ce579dd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,9 +8,14 @@ ]] +set ( + CARLA_CMAKE_MINIMUM_REQUIRED_VERSION + 3.27.2 +) + cmake_minimum_required ( VERSION - 3.27.2 + ${CARLA_CMAKE_MINIMUM_REQUIRED_VERSION} ) cmake_policy (SET CMP0097 NEW) diff --git a/LibCarla/CMakeLists.txt b/LibCarla/CMakeLists.txt index 2dd46d352..473609cad 100644 --- a/LibCarla/CMakeLists.txt +++ b/LibCarla/CMakeLists.txt @@ -11,11 +11,6 @@ set ( ${CARLA_WORKSPACE_PATH}/LibCarla/source ) -set ( - LIBCARLA_THIRD_PARTY_SOURCE_PATH - ${LIBCARLA_SOURCE_PATH}/third-party -) - carla_two_step_configure_file ( ${LIBCARLA_SOURCE_PATH}/carla/Version.h ${LIBCARLA_SOURCE_PATH}/carla/Version.h.in @@ -59,9 +54,9 @@ if (BUILD_CARLA_SERVER) file ( GLOB LIBCARLA_SERVER_SOURCES_THIRD_PARTY - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/odrSpiral/*.cpp - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/moodycamel/*.cpp - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/pugixml/*.cpp + ${LIBCARLA_SOURCE_PATH}/third-party/odrSpiral/*.cpp + ${LIBCARLA_SOURCE_PATH}/third-party/moodycamel/*.cpp + ${LIBCARLA_SOURCE_PATH}/third-party/pugixml/*.cpp ) file ( @@ -107,9 +102,9 @@ if (BUILD_CARLA_SERVER) file ( GLOB LIBCARLA_SERVER_HEADERS_THIRD_PARTY - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/odrSpiral/*.h - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/moodycamel/*.h - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/pugixml/*.hpp + ${LIBCARLA_SOURCE_PATH}/third-party/odrSpiral/*.h + ${LIBCARLA_SOURCE_PATH}/third-party/moodycamel/*.h + ${LIBCARLA_SOURCE_PATH}/third-party/pugixml/*.hpp ) carla_add_library ( @@ -206,10 +201,10 @@ if (BUILD_CARLA_CLIENT) file ( GLOB LIBCARLA_CLIENT_HEADERS_THIRD_PARTY - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/odrSpiral/*.h - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/moodycamel/*.h - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/pugixml/*.hpp - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/pugixml/*.h + ${LIBCARLA_SOURCE_PATH}/third-party/odrSpiral/*.h + ${LIBCARLA_SOURCE_PATH}/third-party/moodycamel/*.h + ${LIBCARLA_SOURCE_PATH}/third-party/pugixml/*.hpp + ${LIBCARLA_SOURCE_PATH}/third-party/pugixml/*.h ) file ( @@ -257,8 +252,8 @@ if (BUILD_CARLA_CLIENT) file ( GLOB LIBCARLA_CLIENT_SOURCES_THIRD_PARTY - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/odrSpiral/*.cpp - ${LIBCARLA_THIRD_PARTY_SOURCE_PATH}/pugixml/*.cpp + ${LIBCARLA_SOURCE_PATH}/third-party/odrSpiral/*.cpp + ${LIBCARLA_SOURCE_PATH}/third-party/pugixml/*.cpp ) carla_add_library ( diff --git a/PythonAPI/CMakeLists.txt b/PythonAPI/CMakeLists.txt index 1cbc22b5e..9a1907aa9 100644 --- a/PythonAPI/CMakeLists.txt +++ b/PythonAPI/CMakeLists.txt @@ -23,13 +23,47 @@ set ( RecastNavigation::DetourCrowd ) -get_target_property (Boost_asio_TARGET_NAME Boost::asio ALIASED_TARGET) -get_target_property (Boost_python_TARGET_NAME Boost::python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR} ALIASED_TARGET) -get_target_property (Boost_geometry_TARGET_NAME Boost::geometry ALIASED_TARGET) -get_target_property (Boost_gil_TARGET_NAME Boost::gil ALIASED_TARGET) -get_target_property (RecastNavigation_Recast_TARGET_NAME RecastNavigation::Recast ALIASED_TARGET) -get_target_property (RecastNavigation_Detour_TARGET_NAME RecastNavigation::Detour ALIASED_TARGET) -get_target_property (RecastNavigation_DetourCrowd_TARGET_NAME RecastNavigation::DetourCrowd ALIASED_TARGET) +get_target_property ( + Boost_asio_TARGET_NAME + Boost::asio + ALIASED_TARGET +) + +get_target_property ( + Boost_python_TARGET_NAME + Boost::python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR} + ALIASED_TARGET +) + +get_target_property ( + Boost_geometry_TARGET_NAME + Boost::geometry + ALIASED_TARGET +) + +get_target_property ( + Boost_gil_TARGET_NAME + Boost::gil + ALIASED_TARGET +) + +get_target_property ( + RecastNavigation_Recast_TARGET_NAME + RecastNavigation::Recast + ALIASED_TARGET +) + +get_target_property ( + RecastNavigation_Detour_TARGET_NAME + RecastNavigation::Detour + ALIASED_TARGET +) + +get_target_property ( + RecastNavigation_DetourCrowd_TARGET_NAME + RecastNavigation::DetourCrowd + ALIASED_TARGET +) set ( CARLA_PYTHON_API_CARLA_PATH diff --git a/PythonAPI/carla/CMakeLists.txt.in b/PythonAPI/carla/CMakeLists.txt.in index da0dee5b3..d79c0654b 100644 --- a/PythonAPI/carla/CMakeLists.txt.in +++ b/PythonAPI/carla/CMakeLists.txt.in @@ -1,6 +1,6 @@ cmake_minimum_required ( VERSION - @CMAKE_MAJOR_VERSION@.@CMAKE_MINOR_VERSION@.@CMAKE_PATCH_VERSION@ + @CARLA_CMAKE_MINIMUM_REQUIRED_VERSION@ ) project ( @@ -47,7 +47,7 @@ set ( ${CMAKE_CURRENT_SOURCE_DIR} ) -carla_message ( +carla_message_verbose ( "Selected Python executable: ${Python3_EXECUTABLE} (Interpreter ID: ${Python3_INTERPRETER_ID})" ) diff --git a/Ros2Native/CMakeLists.txt b/Ros2Native/CMakeLists.txt index f8dd9b6b8..31d8a92dd 100644 --- a/Ros2Native/CMakeLists.txt +++ b/Ros2Native/CMakeLists.txt @@ -1,10 +1,14 @@ -cmake_minimum_required (VERSION 3.28.0) +cmake_minimum_required ( + VERSION + ${CARLA_CMAKE_MINIMUM_REQUIRED_VERSION} +) project (carla-ros2-native-project) include (ExternalProject) set (PROJECT_INSTALL_PATH ${CMAKE_CURRENT_BINARY_DIR}/install) + set (PROJECT_CMAKE_FLAGS -DCMAKE_CXX_COMPILER=${GXX_COMPILER} -DCMAKE_C_COMPILER=${GCC_COMPILER} @@ -15,13 +19,13 @@ set (PROJECT_CMAKE_FLAGS ExternalProject_add ( foonathan_memory - URL https://github.com/eProsima/foonathan_memory_vendor/archive/refs/heads/master.zip + URL https://github.com/eProsima/foonathan_memory_vendor/archive/refs/heads/${CARLA_FOONATHAN_MEMORY_VENDOR_TAG}.zip CMAKE_ARGS ${PROJECT_CMAKE_FLAGS} -DBUILD_SHARED_LIBS=ON -DFOONATHAN_MEMORY_FORCE_VENDORED_BUILD=ON ) ExternalProject_add ( fastcdr - URL https://github.com/eProsima/Fast-CDR/archive/refs/heads/1.1.x.zip + URL https://github.com/eProsima/Fast-CDR/archive/refs/heads/${CARLA_FASTCDR_TAG}.zip CMAKE_ARGS ${PROJECT_CMAKE_FLAGS} ) @@ -30,7 +34,7 @@ ExternalProject_add ( ExternalProject_add ( fastdds GIT_REPOSITORY https://github.com/eProsima/Fast-DDS.git - GIT_TAG 2.11.2 + GIT_TAG ${CARLA_FASTDDS_TAG} CMAKE_ARGS ${PROJECT_CMAKE_FLAGS} -DTHIRDPARTY_Asio=FORCE -DTHIRDPARTY_TinyXML2=FORCE -DCOMPILE_TOOLS=OFF DEPENDS foonathan_memory fastcdr ) diff --git a/Ros2Native/LibCarlaRos2Native/CMakeLists.txt b/Ros2Native/LibCarlaRos2Native/CMakeLists.txt index 86d0061a6..cdd293597 100644 --- a/Ros2Native/LibCarlaRos2Native/CMakeLists.txt +++ b/Ros2Native/LibCarlaRos2Native/CMakeLists.txt @@ -1,44 +1,63 @@ -cmake_minimum_required (VERSION 3.28.0) +cmake_minimum_required ( + VERSION + 3.27.2 +) -project(carla-ros2-native) +project ( + carla-ros2-native +) -set (LIBCARLA_SOURCE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../../LibCarla/source) - -file ( - GLOB - LIBCARLA_ROS2_SOURCES - ${LIBCARLA_SOURCE_PATH}/carla/ros2/publishers/*.cpp - ${LIBCARLA_SOURCE_PATH}/carla/ros2/subscribers/*.cpp - ${LIBCARLA_SOURCE_PATH}/carla/ros2/listeners/*.cpp - ${LIBCARLA_SOURCE_PATH}/carla/ros2/types/*.cpp +set ( + LIBCARLA_SOURCE_PATH + ${CMAKE_CURRENT_SOURCE_DIR}/../../LibCarla/source ) file ( - GLOB - LIBCARLA_ROS2_HEADERS - ${LIBCARLA_SOURCE_PATH}/carla/ros2/publishers/*.h - ${LIBCARLA_SOURCE_PATH}/carla/ros2/subscribers/*.h - ${LIBCARLA_SOURCE_PATH}/carla/ros2/listeners/*.h - ${LIBCARLA_SOURCE_PATH}/carla/ros2/types/*.h + GLOB + LIBCARLA_ROS2_SOURCES + ${LIBCARLA_SOURCE_PATH}/carla/ros2/publishers/*.cpp + ${LIBCARLA_SOURCE_PATH}/carla/ros2/subscribers/*.cpp + ${LIBCARLA_SOURCE_PATH}/carla/ros2/listeners/*.cpp + ${LIBCARLA_SOURCE_PATH}/carla/ros2/types/*.cpp +) + +file ( + GLOB + LIBCARLA_ROS2_HEADERS + ${LIBCARLA_SOURCE_PATH}/carla/ros2/publishers/*.h + ${LIBCARLA_SOURCE_PATH}/carla/ros2/subscribers/*.h + ${LIBCARLA_SOURCE_PATH}/carla/ros2/listeners/*.h + ${LIBCARLA_SOURCE_PATH}/carla/ros2/types/*.h ) add_library ( - carla-ros2-native - SHARED - ${LIBCARLA_ROS2_HEADERS} - ${LIBCARLA_ROS2_SOURCES} + carla-ros2-native + SHARED + ${LIBCARLA_ROS2_HEADERS} + ${LIBCARLA_ROS2_SOURCES} ) -target_include_directories (carla-ros2-native SYSTEM PRIVATE - ${LIBCARLA_SOURCE_PATH} - ${CMAKE_INSTALL_PREFIX}/include +target_include_directories ( + carla-ros2-native + SYSTEM PRIVATE + ${LIBCARLA_SOURCE_PATH} + ${CMAKE_INSTALL_PREFIX}/include ) -target_compile_definitions (carla-ros2-native PUBLIC - BOOST_ASIO_ENABLE_BUFFER_DEBUGGING +target_compile_definitions ( + carla-ros2-native + PUBLIC + BOOST_ASIO_ENABLE_BUFFER_DEBUGGING ) -target_link_libraries(carla-ros2-native - ${CMAKE_INSTALL_PREFIX}/lib/libfastrtps.so) +target_link_libraries ( + carla-ros2-native + ${CMAKE_INSTALL_PREFIX}/lib/libfastrtps.so +) -install (TARGETS carla-ros2-native DESTINATION lib) +install ( + TARGETS + carla-ros2-native + DESTINATION + lib +) diff --git a/Unreal/CMakeLists.txt b/Unreal/CMakeLists.txt index 1d71637f7..fab494261 100644 --- a/Unreal/CMakeLists.txt +++ b/Unreal/CMakeLists.txt @@ -66,19 +66,6 @@ if (ENABLE_ROS2_DEMO) set (LAUNCH_ARGS ${LAUNCH_ARGS} --ros2-demo) endif() -if (WIN32) - set (EXE_EXT .exe) - set (UE_SYSTEM_NAME Win64) -elseif (LINUX) - set (EXE_EXT) - set (UE_SYSTEM_NAME Linux) -elseif (APPLE) - set (EXE_EXT) - set (UE_SYSTEM_NAME Mac) -else () - carla_error ("Unknown target system.") -endif () - set ( UNREAL_EDITOR_PATH ${CARLA_UNREAL_ENGINE_PATH}/Engine/Binaries/${UE_SYSTEM_NAME}/UnrealEditor${EXE_EXT} @@ -86,9 +73,8 @@ set ( set (CARLA_UE_CONTENT_CHECK_PATH ${CARLA_UE_PATH}/Content/Carla/Blueprints) if (IS_DIRECTORY ${CARLA_UE_CONTENT_CHECK_PATH}) - carla_message ("CARLA Unreal Content - FOUND") + carla_message_verbose ("CARLA Unreal Content - FOUND") else () - carla_message ("CARLA Unreal Content - MISSING") carla_warning ("Could not find CARLA Content, download it or running the editor will result in a crash.") endif () @@ -380,8 +366,11 @@ function ( set (PACKAGE_CONFIGURATION "default (shipping)") endif () + set (TARGET_NAME_SHORT package${TARGET_NAME_SUFFIX}) + set (TARGET_NAME carla-unreal-${TARGET_NAME_SHORT}) + carla_add_custom_target ( - carla-unreal-package${TARGET_NAME_SUFFIX} + ${TARGET_NAME} "Create a CARLA package in ${PACKAGE_CONFIGURATION} mode." COMMAND ${CARLA_UE_BUILD_COMMAND_PREFIX} @@ -413,9 +402,9 @@ function ( USES_TERMINAL VERBATIM ) - + add_custom_command ( - TARGET carla-unreal-package${TARGET_NAME_SUFFIX} + TARGET ${TARGET_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E echo "********** PACKAGE CREATING VERSION FILE UNREAL PACKAGE EXTRA FILES STARTED **********" COMMAND ${CMAKE_COMMAND} @@ -449,21 +438,24 @@ function ( ) add_dependencies ( - carla-unreal-package${TARGET_NAME_SUFFIX} + ${TARGET_NAME} carla-unreal-editor ) carla_add_custom_target ( - package${TARGET_NAME_SUFFIX} + ${TARGET_NAME_SHORT} "Create a CARLA package in ${PACKAGE_CONFIGURATION} mode." ) add_dependencies ( - package${TARGET_NAME_SUFFIX} - carla-unreal-package${TARGET_NAME_SUFFIX} + ${TARGET_NAME_SHORT} + ${TARGET_NAME} ) + endfunction() + + # Docs for UE5 build configurations: # https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/DevelopmentSetup/BuildConfigurations/ add_carla_ue_package_target("" Shipping) @@ -488,12 +480,6 @@ set ( VERBATIM ) -carla_add_custom_target ( - launch - "Build and open CARLA in the Unreal Editor." - ${CARLA_LAUNCH_TARGET_OPTIONS} -) - if (WIN32) set ( PRELAUNCH_CONTENT_CHECK_COMMAND @@ -517,12 +503,6 @@ carla_add_custom_target ( VERBATIM ) -add_dependencies ( - launch - carla-unreal-editor - check-unreal-content -) - carla_add_custom_target ( launch-only "Open CARLA in the Unreal Editor. This will not rebuild outdated targets." @@ -534,6 +514,18 @@ add_dependencies ( check-unreal-content ) +carla_add_custom_target ( + launch + "Build and open CARLA in the Unreal Editor." + ${CARLA_LAUNCH_TARGET_OPTIONS} +) + +add_dependencies ( + launch + carla-unreal-editor + check-unreal-content +) + set_property ( DIRECTORY APPEND PROPERTY ADDITIONAL_CLEAN_FILES "${CARLA_UE_PATH}/Binaries"