From 9b200fc33abbfedeffdf357183fd1468336cf19b Mon Sep 17 00:00:00 2001 From: Evan Mezeske Date: Thu, 9 Oct 2025 16:06:18 -0700 Subject: [PATCH] Some trivial changes to compile under most recent MSVC as a CMake sub-project (#9275) * Add a workaround for Filament's breaking change to add_subdirectory for Abseil, see: https://github.com/google/filament/issues/8611 * Fix #pragma warning syntax for MSVC * Only search for an external Abseil dependency if a new option FILAMENT_USE_EXTERNAL_ABSL is set --- filament/src/details/View.h | 6 +++--- third_party/abseil/tnt/CMakeLists.txt | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/filament/src/details/View.h b/filament/src/details/View.h index 9157db72b4..b1e02a8063 100644 --- a/filament/src/details/View.h +++ b/filament/src/details/View.h @@ -82,8 +82,8 @@ class JobSystem; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" #elif defined(_MSC_VER) -#pragma warning push -#pragma warning disable : 4996 +#pragma warning(push) +#pragma warning(disable : 4996) #endif namespace filament { @@ -663,7 +663,7 @@ FILAMENT_DOWNCAST(View) #if defined(__clang__) #pragma clang diagnostic pop #elif defined(_MSC_VER) -#pragma warning pop +#pragma warning(pop) #endif #endif // TNT_FILAMENT_DETAILS_VIEW_H diff --git a/third_party/abseil/tnt/CMakeLists.txt b/third_party/abseil/tnt/CMakeLists.txt index 8481d7ad3f..0e6959c0b3 100644 --- a/third_party/abseil/tnt/CMakeLists.txt +++ b/third_party/abseil/tnt/CMakeLists.txt @@ -1,4 +1,10 @@ -add_subdirectory(../ "${CMAKE_CURRENT_BINARY_DIR}/abseil") +option(FILAMENT_USE_EXTERNAL_ABSL "Use find_package to locate an external Abseil dependency" OFF) + +if (FILAMENT_USE_EXTERNAL_ABSL) + find_package(absl CONFIG QUIET) +else() + add_subdirectory(../ "${CMAKE_CURRENT_BINARY_DIR}/abseil") +endif() # To make Abseil easy for clients to link against, we create a dummy target just for installation # purposes and combine all of Abseil's libraries into a single, easy to link against static library.