Skip to content

Client cpp with all features#167

Merged
jonyMarino merged 1 commit into
mainfrom
feature/cpp_client
Jul 2, 2026
Merged

Client cpp with all features#167
jonyMarino merged 1 commit into
mainfrom
feature/cpp_client

Conversation

@jonyMarino

Copy link
Copy Markdown
Contributor

Fixes: #13

About

Add Project AirSim C++ client, packaging, docs, tests, and CI

Description

This PR adds the new native C++ client for Project AirSim and modernizes its build/distribution flow.

What Changed

  • Added the CMake-based C++ client build under client/cpp.
  • Replaced legacy Visual Studio project-based client builds with CMake/Ninja targets.
  • Added ProjectAirsimClientLib and ProjectAirSimMessageLib as CMake-built libraries.
  • Added a final merged static library package target:
    • Windows: ProjectAirSimCppClient.lib
    • Linux: libProjectAirSimCppClient.a
  • Added install/package support through CPack, including:
    • versioned client archives
    • public headers
    • examples
    • scripts
    • CMake package config files
    • package README
  • Added C++ client examples and scenario runners for drones, rovers, sensors, lidar, radar, static sensors, and environment actors.
  • Added C++ client unit/integration test scaffolding with fake NNGI support.
  • Added documentation for the C++ client and linked it from the docs index.
  • Updated build scripts to support:
    • cpp_client_debug
    • cpp_client_release
    • package_cpp_client
  • Improved build.cmd Visual Studio/MSVC detection:
    • supports standalone builds without UE_ROOT
    • uses the latest installed MSVC toolset when Unreal-specific pinning is not required
    • handles Program Files (x86) paths safely
  • Added GitHub Actions CI for the C++ client on:
    • Windows 2022
    • Ubuntu 22.04
    • Ubuntu 24.04
  • Added CI smoke tests that build a consumer project using find_package(ProjectAirSimCppClient) and ProjectAirSim::Client.

Notes

The package exposes a single final static library for consumers instead of requiring users to link multiple internal libraries directly.

How Has This Been Tested?

  • Built and packaged the C++ client locally on Windows and Linux.
  • Verified the generated package can be consumed by an external CMake project.
  • Ran actionlint against the new GitHub Actions workflow.
  • Ran git diff --check.

Screenshots and videos (if appropriate):

---------

Co-authored-by: aurebidart <aure.bidart@gmail.com>
Co-authored-by: Lucas Scheinkerman <lucas.scheinkerman@gmail.com>
Co-authored-by: Marina Gloc <marina@iamaisim.com>
Co-authored-by: jonyMarino <jony@iamaisim.com>
@jonyMarino
jonyMarino merged commit fa404d0 into main Jul 2, 2026
6 checks passed
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.

C++ client for Linux and Windows

2 participants