google / filament

Filament is a real-time physically based rendering engine for Android, iOS, Windows, Linux, macOS, and WebGL2
https://google.github.io/filament/
Apache License 2.0
17.37k stars 1.84k forks source link

fail to build Material.cpp on windows msvc #7774

Closed bcq028 closed 2 months ago

bcq028 commented 2 months ago

Describe the bug fail to build project on windows. image

I try to add include in material.h and runs well. image

To Reproduce pull and try to build.

Expected behavior

build without error.

Screenshots

Logs FAILED: filament/CMakeFiles/filament.dir/src/Material.cpp.obj C:\PROGRA~1\MIB055~1\2022\COMMUN~1\VC\Tools\MSVC\1439~1.335\bin\Hostx64\x64\cl.exe /nologo /TP -DFILAMENT_DFG_LUT_SIZE=128 -DFILAMENT_ENABLE_FEATURE_LEVEL_0 -DFILAMENT_ENABLE_MATDBG=1 -DFILAMENT_IBL_LITE=1 -DFILAMENT_METAL_HANDLE_ARENA_SIZE_IN_MB=8 -DFILAMENT_MIN_COMMAND_BUFFERS_SIZE_IN_MB=2 -DFILAMENT_OPENGL_HANDLE_ARENA_SIZE_IN_MB=4 -DFILAMENT_PER_FRAME_COMMANDS_SIZE_IN_MB=2 -DFILAMENT_PER_RENDER_PASS_ARENA_SIZE_IN_MB=3 -DFILAMENT_SUPPORTS_OPENGL -DSYSTRACE_TAG=2 -ID:\Projects\filament\filament\include -ID:\Projects\filament\cmake-build-debug\filament -ID:\Projects\filament\filament\src -ID:\Projects\filament\filament\backend\include -ID:\Projects\filament\libs\math\include -ID:\Projects\filament\libs\utils\include -ID:\Projects\filament\third_party\robin-map\tnt.. -ID:\Projects\filament\libs\filaflat\include -ID:\Projects\filament\libs\filabridge\include -ID:\Projects\filament\libs\ibl\include -ID:\Projects\filament\libs\matdbg\include -ID:\Projects\filament\third_party\civetweb\tnt..\include -ID:\Projects\filament\libs\filamat\include -ID:\Projects\filament\cmake-build-debug\shaders -ID:\Projects\filament\third_party\smol-v\tnt..\source -ID:\Projects\filament\cmake-build-debug\include -ID:\Projects\filament\third_party\glslang\glslang\tnt..\Include -ID:\Projects\filament\third_party\glslang\glslang\tnt..\Public -ID:\Projects\filament\third_party\glslang\glslang\tnt..\MachineIndependent -ID:\Projects\filament\third_party\glslang\SPIRV\tnt.. -ID:\Projects\filament\third_party\glslang\SPIRV\tnt.... -ID:\Projects\filament\third_party\spirv-tools\include -ID:\Projects\filament\third_party\spirv-tools..\spirv-headers\include -ID:\Projects\filament\third_party\spirv-cross\tnt.. /DWIN32 /D_WINDOWS /GR /EHsc /MP /std:c++latest /W0 /Zc:__cplusplus -D_USE_MATH_DEFINES=1 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE -DTNT_DEV /Zi /Ob0 /Od /RTC1 /Z7 /D_ITERATOR_DEBUG_LEVEL=0 -MDd /MTd /W3 /showIncludes /Fofilament\CMakeFiles\filament.dir\src\Material.cpp.obj /Fdfilament\CMakeFiles\filament.dir\filament.pdb /FS -c D:\Projects\filament\filament\src\Material.cpp cl : Command line warning D9025 : overriding '/Zi' with '/Z7' cl : Command line warning D9025 : overriding '/MDd' with '/MTd' cl : Command line warning D9025 : overriding '/W0' with '/W3' D:\Projects\filament\filament\backend\include\private\backend\DriverAPI.inc(129): warning C4068: unknown pragma 'clang' D:\Projects\filament\filament\backend\include\private\backend\DriverAPI.inc(130): warning C4068: unknown pragma 'clang' D:\Projects\filament\filament\backend\include\private\backend\DriverAPI.inc(524): warning C4068: unknown pragma 'clang' D:\Projects\filament\libs\math\include\math/half.h(193): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. D:\Projects\filament\libs\math\include\math/half.h(193): warning C4996: 'std::float_denorm_style': warning STL4042: std::float_denorm_style, std::numeric_limits::has_denorm, and std::numeric_limits::has_denorm_loss are deprecated in C++23. You can define _SILENCE_CXX23_DENORM_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\limits(26): note: see declaration of 'std::float_denorm_style' D:\Projects\filament\filament\backend\include\private/backend/DriverAPI.inc(129): warning C4068: unknown pragma 'clang' D:\Projects\filament\filament\backend\include\private/backend/DriverAPI.inc(130): warning C4068: unknown pragma 'clang' D:\Projects\filament\filament\backend\include\private/backend/DriverAPI.inc(524): warning C4068: unknown pragma 'clang' D:\Projects\filament\filament\backend\include\private/backend/CommandStream.h(68): warning C4146: unary minus operator applied to unsigned type, result still unsigned D:\Projects\filament\filament\backend\include\private\backend\DriverAPI.inc(129): warning C4068: unknown pragma 'clang' D:\Projects\filament\filament\backend\include\private\backend\DriverAPI.inc(130): warning C4068: unknown pragma 'clang' D:\Projects\filament\filament\backend\include\private\backend\DriverAPI.inc(524): warning C4068: unknown pragma 'clang' D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<48,8>': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\type_traits(1214): note: see declaration of 'std::aligned_storage' D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): note: the template instantiation context (the oldest one first) is D:\Projects\filament\filament\src\PostProcessManager.h(385): note: see reference to class template instantiation 'tsl::robin_map<std::string_view,filament::PostProcessManager::PostProcessMaterial,std::hash,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>' being compiled with [ Key=std::string_view, T=filament::PostProcessManager::PostProcessMaterial ] D:\Projects\filament\third_party\robin-map\tsl/robin_map.h(116): note: see reference to class template instantiation 'tsl::detail_robin_hash::robin_hash<std::pair<Key,T>,tsl::robin_map<Key,T,std::hash,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::KeySelect,tsl::robin_map<Key,T,std::hash,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::ValueSelect,Hash,KeyEqual,Allocator,false,GrowthPolicy>' being compiled with [ Key=std::string_view, T=filament::PostProcessManager::PostProcessMaterial, Hash=std::hash, KeyEqual=std::equal_to, Allocator=std::allocator<std::pair<std::string_view,filament::PostProcessManager::PostProcessMaterial>>, GrowthPolicy=tsl::rh::power_of_two_growth_policy<2> ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(349): note: see reference to class template instantiation 'tsl::detail_robin_hash::bucket_entry<std::pair<Key,T>,true>' being compiled with [ Key=std::string_view, T=filament::PostProcessManager::PostProcessMaterial ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<48,8>::type': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<8,8>': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\type_traits(1214): note: see declaration of 'std::aligned_storage' D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): note: the template instantiation context (the oldest one first) is D:\Projects\filament\filament\src\ResourceList.h(30): note: see reference to class template instantiation 'tsl::robin_set<void ,std::hash,std::equal_to,std::allocator<void >,false,tsl::rh::power_of_two_growth_policy<2>>' being compiled with [ Key=void ] D:\Projects\filament\third_party\robin-map\tsl/robin_set.h(102): note: see reference to class template instantiation 'tsl::detail_robin_hash::robin_hash<Key,tsl::robin_set<Key,std::hash,std::equal_to,std::allocator<void >,false,tsl::rh::power_of_two_growth_policy<2>>::KeySelect,void,Hash,KeyEqual,Allocator,false,GrowthPolicy>' being compiled with [ Key=void , Hash=std::hash<void >, KeyEqual=std::equal_to<void >, Allocator=std::allocator<void >, GrowthPolicy=tsl::rh::power_of_two_growth_policy<2> ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(349): note: see reference to class template instantiation 'tsl::detail_robin_hash::bucket_entry<void *,true>' being compiled D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<8,8>::type': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<16,8>': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\type_traits(1214): note: see declaration of 'std::aligned_storage' D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): note: the template instantiation context (the oldest one first) is D:\Projects\filament\filament\src\HwVertexBufferInfoFactory.h(119): note: see reference to class template instantiation 'filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>' being compiled D:\Projects\filament\filament\src\Bimap.h(63): note: see reference to class template instantiation 'tsl::robin_map<filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyDelegate,Value,filament::Bimap<filament::HwVertexBufferInfoFactory::Key,Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyHasherDelegate,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>' being compiled with [ Value=filament::HwVertexBufferInfoFactory::Value, Key=filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyDelegate, T=filament::HwVertexBufferInfoFactory::Value ] D:\Projects\filament\third_party\robin-map\tsl/robin_map.h(116): note: see reference to class template instantiation 'tsl::detail_robin_hash::robin_hash<std::pair<Key,T>,tsl::robin_map<Key,T,filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyHasherDelegate,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::KeySelect,tsl::robin_map<Key,T,filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyHasherDelegate,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::ValueSelect,Hash,KeyEqual,Allocator,false,GrowthPolicy>' being compiled with [ Key=filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyDelegate, T=filament::HwVertexBufferInfoFactory::Value, Hash=filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyHasherDelegate, KeyEqual=std::equal_to<filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyDelegate>, Allocator=std::allocator<std::pair<filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyDelegate,filament::HwVertexBufferInfoFactory::Value>>, GrowthPolicy=tsl::rh::power_of_two_growth_policy<2> ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(349): note: see reference to class template instantiation 'tsl::detail_robin_hash::bucket_entry<std::pair<Key,T>,true>' being compiled with [ Key=filament::Bimap<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::Value,filament::HwVertexBufferInfoFactory::KeyHasher,filament::HwVertexBufferInfoFactory::ValueHasher,utils::STLAllocator<filament::HwVertexBufferInfoFactory::Key,filament::HwVertexBufferInfoFactory::PoolAllocatorArena>>::KeyDelegate, T=filament::HwVertexBufferInfoFactory::Value ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<16,8>::type': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<8,4>': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\type_traits(1214): note: see declaration of 'std::aligned_storage' D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): note: the template instantiation context (the oldest one first) is D:\Projects\filament\libs\utils\include\utils/SingleInstanceComponentManager.h(48): note: while compiling class template 'utils::SingleInstanceComponentManager' D:\Projects\filament\libs\utils\include\utils/SingleInstanceComponentManager.h(261): note: see reference to class template instantiation 'tsl::robin_map<utils::Entity,utils::SingleInstanceComponentManager::Instance,utils::Entity::Hasher,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>' being compiled with [ Key=utils::Entity, T=utils::SingleInstanceComponentManager::Instance ] D:\Projects\filament\third_party\robin-map\tsl/robin_map.h(116): note: see reference to class template instantiation 'tsl::detail_robin_hash::robin_hash<std::pair<Key,T>,tsl::robin_map<Key,T,utils::Entity::Hasher,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::KeySelect,tsl::robin_map<Key,T,utils::Entity::Hasher,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::ValueSelect,Hash,KeyEqual,Allocator,false,GrowthPolicy>' being compiled with [ Key=utils::Entity, T=utils::SingleInstanceComponentManager::Instance, Hash=utils::Entity::Hasher, KeyEqual=std::equal_to, Allocator=std::allocator<std::pair<utils::Entity,utils::SingleInstanceComponentManager::Instance>>, GrowthPolicy=tsl::rh::power_of_two_growth_policy<2> ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(349): note: see reference to class template instantiation 'tsl::detail_robin_hash::bucket_entry<std::pair<Key,T>,true>' being compiled with [ Key=utils::Entity, T=utils::SingleInstanceComponentManager::Instance ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<8,4>::type': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<80,8>': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\type_traits(1214): note: see declaration of 'std::aligned_storage' D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): note: the template instantiation context (the oldest one first) is D:\Projects\filament\libs\matdbg\include\matdbg/DebugServer.h(103): note: see reference to class template instantiation 'tsl::robin_map<filament::matdbg::MaterialKey,filament::matdbg::MaterialRecord,std::hash,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>' being compiled with [ Key=filament::matdbg::MaterialKey, T=filament::matdbg::MaterialRecord ] D:\Projects\filament\third_party\robin-map\tsl/robin_map.h(116): note: see reference to class template instantiation 'tsl::detail_robin_hash::robin_hash<std::pair<Key,T>,tsl::robin_map<Key,T,std::hash,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::KeySelect,tsl::robin_map<Key,T,std::hash,std::equal_to,std::allocator<std::pair<Key,T>>,false,tsl::rh::power_of_two_growth_policy<2>>::ValueSelect,Hash,KeyEqual,Allocator,false,GrowthPolicy>' being compiled with [ Key=filament::matdbg::MaterialKey, T=filament::matdbg::MaterialRecord, Hash=std::hash, KeyEqual=std::equal_to, Allocator=std::allocator<std::pair<filament::matdbg::MaterialKey,filament::matdbg::MaterialRecord>>, GrowthPolicy=tsl::rh::power_of_two_growth_policy<2> ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(349): note: see reference to class template instantiation 'tsl::detail_robin_hash::bucket_entry<std::pair<Key,T>,true>' being compiled with [ Key=filament::matdbg::MaterialKey, T=filament::matdbg::MaterialRecord ] D:\Projects\filament\third_party\robin-map\tsl\robin_hash.h(282): warning C4996: 'std::aligned_storage<80,8>::type': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. D:\Projects\filament\filament\src\details/Engine.h(517): warning C4996: 'std::aligned_storage<648,8>::type': warning STL4034: std::aligned_storage and std::aligned_storage_t are deprecated in C++23. Prefer alignas(T) std::byte t_buff[sizeof(T)]. You can define _SILENCE_CXX23_ALIGNED_STORAGE_DEPRECATION_WARNING or _SILENCE_ALL_CXX23_DEPRECATION_WARNINGS to suppress this warning. C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\memory(3138): error C2027: use of undefined type 'filament::MaterialParser' D:\Projects\filament\filament\src\details/Engine.h(87): note: see declaration of 'filament::MaterialParser' C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\memory(3138): note: the template instantiation context (the oldest one first) is D:\Projects\filament\filament\src\details/Material.h(313): note: see reference to class template instantiation 'std::unique_ptr<filament::MaterialParser,std::default_delete>' being compiled C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\memory(3158): note: see reference to class template instantiation 'std::default_delete' being compiled C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\memory(3137): note: while compiling class template member function 'void std::default_delete::operator ()(_Ty *) noexcept const' with [ _Ty=filament::MaterialParser ] C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\memory(3249): note: see the first reference to 'std::default_delete::operator ()' in 'std::unique_ptr<filament::MaterialParser,std::default_delete>::~unique_ptr' D:\Projects\filament\filament\src\details/Material.h(314): note: see the first reference to 'std::unique_ptr<filament::MaterialParser,std::default_delete>::~unique_ptr' in 'filament::FMaterial::setPendingEdits' C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\memory(3138): error C2338: static_assert failed: 'can't delete an incomplete type' C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\include\memory(3139): warning C4150: deletion of pointer to incomplete type 'filament::MaterialParser'; no destructor called D:\Projects\filament\filament\src\details/Engine.h(87): note: see declaration of 'filament::MaterialParser' Desktop (please complete the following information):