From 0fe84aa9b1490a860e4a7ba88fcfe5342d314ad6 Mon Sep 17 00:00:00 2001 From: Bartok9 Date: Fri, 31 Jul 2026 05:25:27 -0400 Subject: [PATCH] fix(build): salvage Ubuntu/UE compile hygiene (credit @zimmy87 #4561) Export UnrealImageCapture, drop Linux packaging stdc++ force-links, and stop adding standalone c++fs/stdc++fs once filesystem lives in the stdlib. --- Unreal/Plugins/AirSim/Source/AirSim.Build.cs | 6 ------ Unreal/Plugins/AirSim/Source/UnrealImageCapture.h | 2 +- cmake/cmake-modules/CommonSetup.cmake | 5 +++-- 3 files changed, 4 insertions(+), 9 deletions(-) diff --git a/Unreal/Plugins/AirSim/Source/AirSim.Build.cs b/Unreal/Plugins/AirSim/Source/AirSim.Build.cs index 17024a35b6..e3e2db549f 100644 --- a/Unreal/Plugins/AirSim/Source/AirSim.Build.cs +++ b/Unreal/Plugins/AirSim/Source/AirSim.Build.cs @@ -105,12 +105,6 @@ private void AddOSLibDependencies(ReadOnlyTargetRules Target) PublicAdditionalLibraries.Add("dxguid.lib"); } - if (Target.Platform == UnrealTargetPlatform.Linux) - { - // needed when packaging - PublicAdditionalLibraries.Add("stdc++"); - PublicAdditionalLibraries.Add("supc++"); - } } static void CopyFileIfNewer(string srcFilePath, string destFolder) diff --git a/Unreal/Plugins/AirSim/Source/UnrealImageCapture.h b/Unreal/Plugins/AirSim/Source/UnrealImageCapture.h index 07d6df8944..7320c6479c 100644 --- a/Unreal/Plugins/AirSim/Source/UnrealImageCapture.h +++ b/Unreal/Plugins/AirSim/Source/UnrealImageCapture.h @@ -5,7 +5,7 @@ #include "common/ImageCaptureBase.hpp" #include "common/common_utils/UniqueValueMap.hpp" -class UnrealImageCapture : public msr::airlib::ImageCaptureBase +class AIRSIM_API UnrealImageCapture : public msr::airlib::ImageCaptureBase { public: typedef msr::airlib::ImageCaptureBase::ImageType ImageType; diff --git a/cmake/cmake-modules/CommonSetup.cmake b/cmake/cmake-modules/CommonSetup.cmake index 11d0c9bcb2..2b1e9b47e8 100644 --- a/cmake/cmake-modules/CommonSetup.cmake +++ b/cmake/cmake-modules/CommonSetup.cmake @@ -59,9 +59,10 @@ macro(CommonSetup) if (${CMAKE_CXX_COMPILER_ID} MATCHES "Clang") set(CMAKE_CXX_FLAGS "-stdlib=libc++ -Wno-documentation -Wno-unknown-warning-option ${CMAKE_CXX_FLAGS}") find_package(LLVM REQUIRED CONFIG) - set(CXX_EXP_LIB "-L${LLVM_LIBRARY_DIRS} -lc++fs -ferror-limit=10") + # c++17 filesystem is in the standard library; do not force c++fs/stdc++fs. + set(CXX_EXP_LIB "-L${LLVM_LIBRARY_DIRS} -ferror-limit=10") else() - set(CXX_EXP_LIB "-lstdc++fs -fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel") + set(CXX_EXP_LIB "-fmax-errors=10 -Wnoexcept -Wstrict-null-sentinel") endif () endif ()