Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup and harmonize Carla build #7919

Open
wants to merge 4 commits into
base: dev
Choose a base branch
from

Conversation

berndgassmann
Copy link
Contributor

@berndgassmann berndgassmann commented Jul 8, 2024

Ensure that actually only the unreal sysroot is deployed for all C as well C++ compilations including dependencies. That ensures the server is NOT anymore linked against the system glibc (which is in Ubuntu22.04 incompatible with the Unreal one). As a consequence no local clang installation required anymore to build under Linux.

Harmonized naming split into client/server (instead of libcpp and libstdcpp) to ensure nothing mixed up (and there were things mixed up before!)

Refactor C# Unreal build using CarlaRules base class to provide common functionality. Fixing windows build without ROS2 and added intitial windows build with ROS2

Restrict to one DDS-Domain-Participant for carla-server (Fixes bind address already in use exception on with ROS2).

Due to continued segfaults in reallocations of MallocBinned2 in conjunction with ROS2 enforce using AnsiMalloc calls under Linux (see https://forums.unrealengine.com/t/dealing-with-allocator-mismatches-with-external-libraries/1416830)

Use C++20 to allow for more robust struct initialization (see https://en.cppreference.com/w/cpp/language/aggregate_initialization), added Eigen C++20 patches and required CARLA changes to cope with C++20 compilation errors
Be aware: This change requires the Unreal PR
(https://github.com/CarlaUnreal/UnrealEngine/pull/23)

Move forward to g++-13

Minors:

  • Fix make clean call
  • Update osm2odr commit with build fix (Fix build with Unreal sysroot sumo#6)
  • Update ad-rss to 4.4.5 (supports boost 1.80)
  • Fix windows install scripts and forward arguments for building libcarla
  • Adapt codeformat.py to python3 using clang-format-14

Description

Fixes #

Where has this been tested?

tested build of:

  • make launch
  • make launch ARGS="--ros2"
  • make check
  • make PythonAPI
  • make PythonAPI.rss
  • make package ARGS="--ros2"

Additional tests: launched carla from installed package and verified basic ros2 is working:

  • Added ROS2=True to DefaultGame.ini
  • Started carla-server and ensured /clock is published
  • Started manual_control.py and ensured that some sensor data is sent out
    (Note: This last step only worked without "bind failed expection" after DdsDomainParticipant became a singleton in carla-server)
  • Python version(s): ... 3.10
  • Unreal Engine version(s): ... 4.26

Possible Drawbacks


This change is Reviewable

Ensure that actually only the unreal sysroot is deployed for all C as
well C++ compilations including dependencies. That ensures the server is
NOT anymore linked against the system glibc (which is in Ubuntu22.04
incompatible with the Unreal one). As a consequence no local clang
installation required anymore to build under Linux.

Harmonized naming split into client/server (instead of libcpp and
libstdcpp) to ensure nothing mixed up (and there were things mixed up
before!)

Refactor C# Unreal build using CarlaRules base class to provide common
functionality. Fixing windows build without ROS2 and added intitial
windows build with ROS2

Restrict to one DDS-Domain-Participant for carla-server (Fixes bind
address already in use exception on with ROS2).

Due to continued segfaults in reallocations of MallocBinned2 in
conjunction with ROS2 enforce using AnsiMalloc calls under Linux (see
https://forums.unrealengine.com/t/dealing-with-allocator-mismatches-with-external-libraries/1416830)

Use C++20 to allow for more robust struct initialization (see
https://en.cppreference.com/w/cpp/language/aggregate_initialization),
added Eigen C++20 patches and required CARLA changes to cope with C++20
compilation errors
Be aware: This change requires the Unreal PR
(CarlaUnreal/UnrealEngine#23)

Move forward to g++-13

Minors:
- Fix make clean call
- Update osm2odr commit with build fix
(carla-simulator/sumo#6)
- Update ad-rss to 4.4.5 (supports boost 1.80)
- Fix windows install scripts and forward arguments for building
libcarla
- Adapt codeformat.py to python3 using clang-format-14
@berndgassmann berndgassmann requested a review from a team as a code owner July 8, 2024 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant