From 0b358bbd1cf3a9438f663dc6ba6b7de925780f03 Mon Sep 17 00:00:00 2001 From: NancyLi1013 Date: Fri, 19 Jul 2019 01:53:05 -0700 Subject: [PATCH 01/11] [angle] Update to the latest commit. --- ports/angle/001-fix-uwp.patch | 536 +++++++++++++++++----------------- ports/angle/CONTROL | 2 +- ports/angle/portfile.cmake | 4 +- 3 files changed, 265 insertions(+), 277 deletions(-) diff --git a/ports/angle/001-fix-uwp.patch b/ports/angle/001-fix-uwp.patch index 818282ee2fbc38..36c9aad34eb4ac 100644 --- a/ports/angle/001-fix-uwp.patch +++ b/ports/angle/001-fix-uwp.patch @@ -1,274 +1,262 @@ -diff --git a/src/common/system_utils_win.cpp b/src/common/system_utils_win.cpp -index e4c146091..974b1b3ba 100644 ---- a/src/common/system_utils_win.cpp -+++ b/src/common/system_utils_win.cpp -@@ -110,7 +110,7 @@ class Win32Library : public Library - int ret = snprintf(buffer, MAX_PATH, "%s.%s", libraryName, GetSharedLibraryExtension()); - if (ret > 0 && ret < MAX_PATH) - { -- mModule = LoadLibraryA(buffer); -+ // mModule = LoadLibraryA(buffer); - } - } - -diff --git a/src/libANGLE/renderer/d3d/RendererD3D.cpp b/src/libANGLE/renderer/d3d/RendererD3D.cpp -index 2a8d0221b..362c95a6f 100644 ---- a/src/libANGLE/renderer/d3d/RendererD3D.cpp -+++ b/src/libANGLE/renderer/d3d/RendererD3D.cpp -@@ -229,7 +229,6 @@ GLenum DefaultGLErrorCode(HRESULT hr) - { - switch (hr) - { -- case D3DERR_OUTOFVIDEOMEMORY: - case E_OUTOFMEMORY: - return GL_OUT_OF_MEMORY; - default: -diff --git a/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp b/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp -index 9da5cfdae..6eaab6aa7 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp -+++ b/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp -@@ -14,6 +14,7 @@ - - #include "common/tls.h" - #include "common/utilities.h" -+#include "common/debug.h" - #include "libANGLE/Buffer.h" - #include "libANGLE/Context.h" - #include "libANGLE/Display.h" -@@ -1189,10 +1190,11 @@ void Renderer11::generateDisplayExtensions(egl::DisplayExtensions *outExtensions - outExtensions->robustResourceInitialization = true; - - // Compositor Native Window capabilies require WinVer >= 1803 -- if (CompositorNativeWindow11::IsSupportedWinRelease()) -- { -- outExtensions->windowsUIComposition = true; -- } -+#ifdef ANGLE_ENABLE_WINDOWS_STORE -+ outExtensions->windowsUIComposition = NativeWindow11WinRT::IsSupportedWin10Release(); -+#else -+outExtensions->windowsUIComposition = CompositorNativeWindow11::IsSupportedWinRelease(); -+#endif - } - - angle::Result Renderer11::flush(Context11 *context11) -@@ -1266,16 +1268,24 @@ NativeWindowD3D *Renderer11::createNativeWindow(EGLNativeWindowType window, - const egl::Config *config, - const egl::AttributeMap &attribs) const - { -- auto useWinUiComp = window != nullptr && !NativeWindow11Win32::IsValidNativeWindow(window); -+#ifdef ANGLE_ENABLE_WINDOWS_STORE -+ auto useWinUiComp = window != nullptr && !NativeWindow11WinRT::IsValidNativeWindow(window); -+#else -+ auto useWinUiComp = window != nullptr && !NativeWindow11Win32::IsValidNativeWindow(window); -+#endif - - if (useWinUiComp) - { -- return new CompositorNativeWindow11(window, config->alphaSize > 0); -+#ifdef ANGLE_ENABLE_WINDOWS_STORE -+ return new NativeWindow11WinRT(window, config->alphaSize > 0); -+#else -+ return new CompositorNativeWindow11(window, config->alphaSize > 0); -+#endif - } - else - { - #ifdef ANGLE_ENABLE_WINDOWS_STORE -- UNUSED_VARIABLE(attribs); -+ ANGLE_UNUSED_VARIABLE(attribs); - return new NativeWindow11WinRT(window, config->alphaSize > 0); - #else - return new NativeWindow11Win32( -diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp -index cb2f279e4..a8761e29c 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp -+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp -@@ -145,6 +145,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, - unsigned int width, - unsigned int height, - bool containsAlpha, -+ unsigned int samples, - IDXGISwapChain1 **swapChain) - { - if (device == nullptr || factory == nullptr || swapChain == nullptr || width == 0 || -@@ -158,6 +159,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, - swapChainDesc.Height = height; - swapChainDesc.Format = format; - swapChainDesc.Stereo = FALSE; -+ swapChainDesc.SampleDesc.Count = samples; - swapChainDesc.SampleDesc.Count = 1; - swapChainDesc.SampleDesc.Quality = 0; - swapChainDesc.BufferUsage = -@@ -213,11 +215,9 @@ HRESULT GetCoreWindowSizeInPixels(const ComPtr displayProperties; -+ ComPtr displayProperties; - -- if (SUCCEEDED(GetActivationFactory( -- HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), -- displayProperties.GetAddressOf()))) -+ if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayInformation).Get(), displayProperties.GetAddressOf()))) - { - float dpi = 96.0f; - if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi))) -diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h -index ae57cfb83..983a20ada 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h -+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h -@@ -36,6 +36,7 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, - unsigned int width, - unsigned int height, - bool containsAlpha, -+ unsigned int samples, - IDXGISwapChain1 **swapChain) override; - - protected: -@@ -49,7 +50,7 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, - ComPtr> mPropertyMap; - }; - --[uuid(7F924F66 - EBAE - 40E5 - A10B - B8F35E245190)] class CoreWindowSizeChangedHandler -+[uuid(7F924F66-EBAE-40E5-A10B-B8F35E245190)] class CoreWindowSizeChangedHandler - : public Microsoft::WRL::RuntimeClass< - Microsoft::WRL::RuntimeClassFlags, - IWindowSizeChangedEventHandler> -diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h b/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h -index 708e8a212..aa6c6f375 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h -+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h -@@ -53,6 +53,7 @@ class InspectableNativeWindow - unsigned int width, - unsigned int height, - bool containsAlpha, -+ unsigned int samples, - IDXGISwapChain1 **swapChain) = 0; - - bool getClientRect(RECT *rect) -diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp -index 8972ca227..ed3576a8c 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp -+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp -@@ -13,6 +13,8 @@ - #include "libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h" - #include "libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h" - -+#include -+ - using namespace Microsoft::WRL; - using namespace Microsoft::WRL::Wrappers; - -@@ -88,6 +90,7 @@ HRESULT NativeWindow11WinRT::createSwapChain(ID3D11Device *device, - DXGI_FORMAT format, - UINT width, - UINT height, -+ UINT samples, - IDXGISwapChain **swapChain) - { - if (mImpl) -@@ -95,7 +98,7 @@ HRESULT NativeWindow11WinRT::createSwapChain(ID3D11Device *device, - IDXGIFactory2 *factory2 = d3d11::DynamicCastComObject(factory); - IDXGISwapChain1 *swapChain1 = nullptr; - HRESULT result = -- mImpl->createSwapChain(device, factory2, format, width, height, mHasAlpha, &swapChain1); -+ mImpl->createSwapChain(device, factory2, format, width, height, mHasAlpha, samples, &swapChain1); - SafeRelease(factory2); - *swapChain = static_cast(swapChain1); - return result; -@@ -119,4 +122,44 @@ bool NativeWindow11WinRT::IsValidNativeWindow(EGLNativeWindowType window) - return IsCoreWindow(window) || IsSwapChainPanel(window) || IsEGLConfiguredPropertySet(window); - } - -+bool NativeWindow11WinRT::IsSupportedWin10Release() -+{ -+ HSTRING className, contractName; -+ HSTRING_HEADER classNameHeader, contractNameHeader; -+ boolean isSupported = false; -+ -+ const wchar_t *str = static_cast(RuntimeClass_Windows_Foundation_Metadata_ApiInformation); -+ unsigned int length; -+ SizeTToUInt32(::wcslen(str), &length); -+ HRESULT hr = WindowsCreateStringReference(RuntimeClass_Windows_Foundation_Metadata_ApiInformation, length, &classNameHeader, &className); -+ -+ if (FAILED(hr)) -+ { -+ return isSupported; -+ } -+ -+ Microsoft::WRL::ComPtr api; -+ -+ hr = RoGetActivationFactory(className, __uuidof(ABI::Windows::Foundation::Metadata::IApiInformationStatics), &api); -+ -+ if (FAILED(hr)) -+ { -+ return isSupported; -+ } -+ -+ str = static_cast(L"Windows.Foundation.UniversalApiContract"); -+ SizeTToUInt32(::wcslen(str), &length); -+ hr = WindowsCreateStringReference(L"Windows.Foundation.UniversalApiContract", length, &contractNameHeader, -+ &contractName); -+ -+ if (FAILED(hr)) -+ { -+ return isSupported; -+ } -+ -+ api->IsApiContractPresentByMajor(contractName, 6, &isSupported); -+ -+ return isSupported; -+} -+ - } // namespace rx -diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h -index eac5b21b7..36b20371e 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h -+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h -@@ -34,11 +34,13 @@ class NativeWindow11WinRT : public NativeWindow11 - DXGI_FORMAT format, - UINT width, - UINT height, -+ UINT samples, - IDXGISwapChain **swapChain) override; - - void commitChange() override; - - static bool IsValidNativeWindow(EGLNativeWindowType window); -+ static bool IsSupportedWin10Release(); - - private: - bool mHasAlpha; -diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp -index af0beb635..9f7face1b 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp -+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp -@@ -247,6 +247,7 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device, - unsigned int width, - unsigned int height, - bool containsAlpha, -+ unsigned int samples, - IDXGISwapChain1 **swapChain) - { - if (device == nullptr || factory == nullptr || swapChain == nullptr || width == 0 || -diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h -index 09642eec5..1f2c090d5 100644 ---- a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h -+++ b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h -@@ -28,6 +28,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, - unsigned int width, - unsigned int height, - bool containsAlpha, -+ unsigned int samples, - IDXGISwapChain1 **swapChain) override; - - protected: -@@ -43,7 +44,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, - ComPtr mSwapChain; - }; - --[uuid(8ACBD974 - 8187 - 4508 - AD80 - AEC77F93CF36)] class SwapChainPanelSizeChangedHandler -+[uuid(8ACBD974-8187-4508-AD80-AEC77F93CF36)] class SwapChainPanelSizeChangedHandler - : public Microsoft::WRL::RuntimeClass< - Microsoft::WRL::RuntimeClassFlags, - ABI::Windows::UI::Xaml::ISizeChangedEventHandler> +diff --git a/src/libANGLE/renderer/d3d/RendererD3D.cpp b/src/libANGLE/renderer/d3d/RendererD3D.cpp +index fa46476..ad56164 100644 +--- a/src/libANGLE/renderer/d3d/RendererD3D.cpp ++++ b/src/libANGLE/renderer/d3d/RendererD3D.cpp +@@ -240,7 +240,6 @@ GLenum DefaultGLErrorCode(HRESULT hr) + { + switch (hr) + { +- case D3DERR_OUTOFVIDEOMEMORY: + case E_OUTOFMEMORY: + return GL_OUT_OF_MEMORY; + default: +diff --git a/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp b/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp +index 62f263b..b8efe15 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp ++++ b/src/libANGLE/renderer/d3d/d3d11/Renderer11.cpp +@@ -14,6 +14,7 @@ + + #include "common/tls.h" + #include "common/utilities.h" ++#include "common/debug.h" + #include "libANGLE/Buffer.h" + #include "libANGLE/Context.h" + #include "libANGLE/Display.h" +@@ -1142,9 +1143,11 @@ void Renderer11::generateDisplayExtensions(egl::DisplayExtensions *outExtensions + + // Compositor Native Window capabilies require WinVer >= 1803 + if (CompositorNativeWindow11::IsSupportedWinRelease()) +- { +- outExtensions->windowsUIComposition = true; +- } ++ #ifdef ANGLE_ENABLE_WINDOWS_STORE ++ outExtensions->windowsUIComposition = NativeWindow11WinRT::IsSupportedWin10Release(); ++ #else ++ outExtensions->windowsUIComposition = CompositorNativeWindow11::IsSupportedWinRelease(); ++ #endif + } + + angle::Result Renderer11::flush(Context11 *context11) +@@ -1218,16 +1221,23 @@ NativeWindowD3D *Renderer11::createNativeWindow(EGLNativeWindowType window, + const egl::Config *config, + const egl::AttributeMap &attribs) const + { +- auto useWinUiComp = window != nullptr && !NativeWindow11Win32::IsValidNativeWindow(window); +- ++#ifdef ANGLE_ENABLE_WINDOWS_STORE ++ auto useWinUiComp = window != nullptr && !NativeWindow11WinRT::IsValidNativeWindow(window); ++#else ++ auto useWinUiComp = window != nullptr && !NativeWindow11Win32::IsValidNativeWindow(window); ++#endif + if (useWinUiComp) + { +- return new CompositorNativeWindow11(window, config->alphaSize > 0); ++#ifdef ANGLE_ENABLE_WINDOWS_STORE ++ return new NativeWindow11WinRT(window, config->alphaSize > 0); ++#else ++ return new CompositorNativeWindow11(window, config->alphaSize > 0); ++#endif + } + else + { + #ifdef ANGLE_ENABLE_WINDOWS_STORE +- UNUSED_VARIABLE(attribs); ++ ANGLE_UNUSED_VARIABLE(attribs); + return new NativeWindow11WinRT(window, config->alphaSize > 0); + #else + return new NativeWindow11Win32( +diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp +index cb2f279..d76905c 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp ++++ b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.cpp +@@ -145,6 +145,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, + unsigned int width, + unsigned int height, + bool containsAlpha, ++ unsigned int samples, + IDXGISwapChain1 **swapChain) + { + if (device == nullptr || factory == nullptr || swapChain == nullptr || width == 0 || +@@ -158,6 +159,7 @@ HRESULT CoreWindowNativeWindow::createSwapChain(ID3D11Device *device, + swapChainDesc.Height = height; + swapChainDesc.Format = format; + swapChainDesc.Stereo = FALSE; ++ swapChainDesc.SampleDesc.Count = samples; + swapChainDesc.SampleDesc.Count = 1; + swapChainDesc.SampleDesc.Quality = 0; + swapChainDesc.BufferUsage = +@@ -213,11 +215,9 @@ HRESULT GetCoreWindowSizeInPixels(const ComPtr displayProperties; +- +- if (SUCCEEDED(GetActivationFactory( +- HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayProperties).Get(), +- displayProperties.GetAddressOf()))) ++ ComPtr displayProperties; ++ if (SUCCEEDED(GetActivationFactory(HStringReference(RuntimeClass_Windows_Graphics_Display_DisplayInformation).Get(), ++ displayProperties.GetAddressOf()))) + { + float dpi = 96.0f; + if (SUCCEEDED(displayProperties->get_LogicalDpi(&dpi))) +diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h +index ae57cfb..dd77b42 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h ++++ b/src/libANGLE/renderer/d3d/d3d11/winrt/CoreWindowNativeWindow.h +@@ -36,6 +36,7 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, + unsigned int width, + unsigned int height, + bool containsAlpha, ++ unsigned int samples, + IDXGISwapChain1 **swapChain) override; + + protected: +@@ -49,7 +50,7 @@ class CoreWindowNativeWindow : public InspectableNativeWindow, + ComPtr> mPropertyMap; + }; + +-[uuid(7F924F66 - EBAE - 40E5 - A10B - B8F35E245190)] class CoreWindowSizeChangedHandler ++[uuid(7F924F66-EBAE-40E5-A10B-B8F35E245190)] class CoreWindowSizeChangedHandler + : public Microsoft::WRL::RuntimeClass< + Microsoft::WRL::RuntimeClassFlags, + IWindowSizeChangedEventHandler> +diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h b/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h +index 708e8a2..9bfa4c4 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h ++++ b/src/libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h +@@ -53,6 +53,7 @@ class InspectableNativeWindow + unsigned int width, + unsigned int height, + bool containsAlpha, ++ unsigned int samples, + IDXGISwapChain1 **swapChain) = 0; + + bool getClientRect(RECT *rect) +diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp +index 8972ca2..caf2a7e 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp ++++ b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.cpp +@@ -13,6 +13,8 @@ + #include "libANGLE/renderer/d3d/d3d11/winrt/InspectableNativeWindow.h" + #include "libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h" + ++#include ++ + using namespace Microsoft::WRL; + using namespace Microsoft::WRL::Wrappers; + +@@ -88,6 +90,7 @@ HRESULT NativeWindow11WinRT::createSwapChain(ID3D11Device *device, + DXGI_FORMAT format, + UINT width, + UINT height, ++ UINT samples, + IDXGISwapChain **swapChain) + { + if (mImpl) +@@ -95,7 +98,7 @@ HRESULT NativeWindow11WinRT::createSwapChain(ID3D11Device *device, + IDXGIFactory2 *factory2 = d3d11::DynamicCastComObject(factory); + IDXGISwapChain1 *swapChain1 = nullptr; + HRESULT result = +- mImpl->createSwapChain(device, factory2, format, width, height, mHasAlpha, &swapChain1); ++ mImpl->createSwapChain(device, factory2, format, width, height, mHasAlpha, samples, &swapChain1); + SafeRelease(factory2); + *swapChain = static_cast(swapChain1); + return result; +@@ -118,5 +121,44 @@ bool NativeWindow11WinRT::IsValidNativeWindow(EGLNativeWindowType window) + // Anything else will be rejected as an invalid IInspectable. + return IsCoreWindow(window) || IsSwapChainPanel(window) || IsEGLConfiguredPropertySet(window); + } ++bool NativeWindow11WinRT::IsSupportedWin10Release() ++{ ++ HSTRING className, contractName; ++ HSTRING_HEADER classNameHeader, contractNameHeader; ++ boolean isSupported = false; ++ ++ const wchar_t *str = static_cast(RuntimeClass_Windows_Foundation_Metadata_ApiInformation); ++ unsigned int length; ++ SizeTToUInt32(::wcslen(str), &length); ++ HRESULT hr = WindowsCreateStringReference(RuntimeClass_Windows_Foundation_Metadata_ApiInformation, length, &classNameHeader, &className); ++ ++ if (FAILED(hr)) ++ { ++ return isSupported; ++ } ++ ++ Microsoft::WRL::ComPtr api; ++ ++ hr = RoGetActivationFactory(className, __uuidof(ABI::Windows::Foundation::Metadata::IApiInformationStatics), &api); ++ ++ if (FAILED(hr)) ++ { ++ return isSupported; ++ } ++ ++ str = static_cast(L"Windows.Foundation.UniversalApiContract"); ++ SizeTToUInt32(::wcslen(str), &length); ++ hr = WindowsCreateStringReference(L"Windows.Foundation.UniversalApiContract", length, &contractNameHeader, ++ &contractName); ++ ++ if (FAILED(hr)) ++ { ++ return isSupported; ++ } ++ ++ api->IsApiContractPresentByMajor(contractName, 6, &isSupported); ++ ++ return isSupported; ++} + + } // namespace rx +diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h +index eac5b21..b9ee344 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h ++++ b/src/libANGLE/renderer/d3d/d3d11/winrt/NativeWindow11WinRT.h +@@ -34,11 +34,14 @@ class NativeWindow11WinRT : public NativeWindow11 + DXGI_FORMAT format, + UINT width, + UINT height, ++ UINT samples, + IDXGISwapChain **swapChain) override; + + void commitChange() override; + + static bool IsValidNativeWindow(EGLNativeWindowType window); ++ static bool IsSupportedWin10Release(); ++ + + private: + bool mHasAlpha; +diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp +index af0beb6..20fd632 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp ++++ b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.cpp +@@ -246,6 +246,7 @@ HRESULT SwapChainPanelNativeWindow::createSwapChain(ID3D11Device *device, + DXGI_FORMAT format, + unsigned int width, + unsigned int height, ++ unsigned int samples, + bool containsAlpha, + IDXGISwapChain1 **swapChain) + { +diff --git a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h +index 09642ee..fc69bf4 100644 +--- a/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h ++++ b/src/libANGLE/renderer/d3d/d3d11/winrt/SwapChainPanelNativeWindow.h +@@ -27,6 +27,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, + DXGI_FORMAT format, + unsigned int width, + unsigned int height, ++ unsigned int samples, + bool containsAlpha, + IDXGISwapChain1 **swapChain) override; + +@@ -43,7 +44,7 @@ class SwapChainPanelNativeWindow : public InspectableNativeWindow, + ComPtr mSwapChain; + }; + +-[uuid(8ACBD974 - 8187 - 4508 - AD80 - AEC77F93CF36)] class SwapChainPanelSizeChangedHandler ++[uuid(8ACBD974-8187-4508-AD80-AEC77F93CF36)] class SwapChainPanelSizeChangedHandler + : public Microsoft::WRL::RuntimeClass< + Microsoft::WRL::RuntimeClassFlags, + ABI::Windows::UI::Xaml::ISizeChangedEventHandler> diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL index faa26f276a4d0a..198465993703c5 100644 --- a/ports/angle/CONTROL +++ b/ports/angle/CONTROL @@ -1,5 +1,5 @@ Source: angle -Version: 2019-06-13 +Version: 2019-07-19 Homepage: https://github.com/google/angle Description: A conformant OpenGL ES implementation for Windows, Mac and Linux. The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support. diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index 48a6f7a3ceef4d..a6bd226f8cf888 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -15,8 +15,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/angle - REF 0d3cf7085c8e953e78d4fa0656b26ee93d005452 - SHA512 91550749933e278a72ae1094178ea28b36ee2b2fa553549477596ee772d1a39653386b3f3a9f168b0840a1511b7d31384b4e2d53cd5b5629028ca9c5a18a9288 + REF 6a02f06dfd4ec5e0f9efb553059ce65535f4b312 + SHA512 6e71bd916781751e1f2f1850007d312ed917b11eda2fef6767bc4e61d1740825e2cf4ee4ac2477c93f7df4bd13b32dbfe7014d11a474333d20f0e1a2a99f80c6 PATCHES 001-fix-uwp.patch ) From b17d93e44a577c33941acd504c65fb76fec39064 Mon Sep 17 00:00:00 2001 From: NancyLi1013 Date: Fri, 19 Jul 2019 03:35:56 -0700 Subject: [PATCH 02/11] Fix build linux. --- ports/angle/002-fix-linux.patch | 26 ++++++++++++++++++++++++++ ports/angle/portfile.cmake | 1 + 2 files changed, 27 insertions(+) create mode 100644 ports/angle/002-fix-linux.patch diff --git a/ports/angle/002-fix-linux.patch b/ports/angle/002-fix-linux.patch new file mode 100644 index 00000000000000..f3b1f54ee1d23f --- /dev/null +++ b/ports/angle/002-fix-linux.patch @@ -0,0 +1,26 @@ +diff --git a/src/common/mathutil.h b/src/common/mathutil.h +index bdf8c2a..6e0daac 100644 +--- a/src/common/mathutil.h ++++ b/src/common/mathutil.h +@@ -1254,7 +1254,7 @@ inline constexpr unsigned int UnsignedCeilDivide(unsigned int value, unsigned in + return (divided + ((value % divisor == 0) ? 0 : 1)); + } + +-#if defined(_MSC_VER) ++#if defined(_MSC_VER) || defined(__GNUC__) + + # define ANGLE_ROTL(x, y) _rotl(x, y) + # define ANGLE_ROTL64(x, y) _rotl64(x, y) +diff --git a/src/libGLESv2/proc_table_autogen.cpp b/src/libGLESv2/proc_table_autogen.cpp +index a57622e..82944b8 100644 +--- a/src/libGLESv2/proc_table_autogen.cpp ++++ b/src/libGLESv2/proc_table_autogen.cpp +@@ -10,7 +10,7 @@ + // Mapping from a string entry point name to function address. + // + +-#include "libGLESv2/proc_table.h" ++#include "libGLESv2/proc_table_egl.h" + + #include "libGLESv2/entry_points_egl.h" + #include "libGLESv2/entry_points_egl_ext.h" diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index a6bd226f8cf888..387e1d10ab3d6a 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -19,6 +19,7 @@ vcpkg_from_github( SHA512 6e71bd916781751e1f2f1850007d312ed917b11eda2fef6767bc4e61d1740825e2cf4ee4ac2477c93f7df4bd13b32dbfe7014d11a474333d20f0e1a2a99f80c6 PATCHES 001-fix-uwp.patch + 002-fix-linux.patch ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) From 3b0bb0aaad43c0b4c9b5e637b9477631b1d5ea7e Mon Sep 17 00:00:00 2001 From: NancyLi1013 Date: Mon, 22 Jul 2019 02:19:25 -0700 Subject: [PATCH 03/11] Update CMakeList.txt and linux patch. --- ports/angle/002-fix-linux.patch | 40 +++++++++++++++++---------------- ports/angle/CMakeLists.txt | 31 ++++++++++++++++++++++++- ports/angle/CONTROL | 2 +- ports/angle/portfile.cmake | 4 ++++ 4 files changed, 56 insertions(+), 21 deletions(-) diff --git a/ports/angle/002-fix-linux.patch b/ports/angle/002-fix-linux.patch index f3b1f54ee1d23f..283d49448af3d5 100644 --- a/ports/angle/002-fix-linux.patch +++ b/ports/angle/002-fix-linux.patch @@ -1,26 +1,28 @@ diff --git a/src/common/mathutil.h b/src/common/mathutil.h -index bdf8c2a..6e0daac 100644 +index bdf8c2a..d2aa5dd 100644 --- a/src/common/mathutil.h +++ b/src/common/mathutil.h -@@ -1254,7 +1254,7 @@ inline constexpr unsigned int UnsignedCeilDivide(unsigned int value, unsigned in - return (divided + ((value % divisor == 0) ? 0 : 1)); - } +@@ -21,6 +21,10 @@ + #include "common/debug.h" + #include "common/platform.h" --#if defined(_MSC_VER) -+#if defined(_MSC_VER) || defined(__GNUC__) - - # define ANGLE_ROTL(x, y) _rotl(x, y) ++#if defined(__GNUC__) ++#include ++#endif ++ + namespace angle + { + using base::CheckedNumeric; +@@ -1260,6 +1264,12 @@ inline constexpr unsigned int UnsignedCeilDivide(unsigned int value, unsigned in # define ANGLE_ROTL64(x, y) _rotl64(x, y) -diff --git a/src/libGLESv2/proc_table_autogen.cpp b/src/libGLESv2/proc_table_autogen.cpp -index a57622e..82944b8 100644 ---- a/src/libGLESv2/proc_table_autogen.cpp -+++ b/src/libGLESv2/proc_table_autogen.cpp -@@ -10,7 +10,7 @@ - // Mapping from a string entry point name to function address. - // + # define ANGLE_ROTR16(x, y) _rotr16(x, y) --#include "libGLESv2/proc_table.h" -+#include "libGLESv2/proc_table_egl.h" ++#elif defined(__GNUC__) ++ ++# define ANGLE_ROTL(x, y) __rold(x, y) ++# define ANGLE_ROTL64(x, y) __rolq(x, y) ++# define ANGLE_ROTR16(x, y) __rolw(x, y) ++ + #elif defined(__clang__) && __has_builtin(__builtin_rotateleft32) && \ + __has_builtin(__builtin_rotateleft64) && __has_builtin(__builtin_rotateright16) - #include "libGLESv2/entry_points_egl.h" - #include "libGLESv2/entry_points_egl_ext.h" diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 7d791db8450ae2..59af1aa236a363 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -19,6 +19,7 @@ else() set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) + add_compile_options(-std=c++17) endif() if (APPLE) @@ -294,7 +295,35 @@ add_library(angle::libANGLE ALIAS libANGLE) ########## # libGLESv2 -file(GLOB LIBGLESV2_SOURCES "src/libGLESv2/*.h" "src/libGLESv2/*.cpp" "src/libGLESv2/libGLESv2_autogen.def") +# Modified according to the file src/libGLESv2.gni +list(APPEND LIBGLESV2_SOURCES + "src/common/angleutils.h" + "src/common/debug.h" + "src/libANGLE/entry_points_enum_autogen.h" + "src/libANGLE/entry_points_utils.h" + "src/libGLESv2/entry_points_egl.cpp" + "src/libGLESv2/entry_points_egl.h" + "src/libGLESv2/entry_points_egl_ext.cpp" + "src/libGLESv2/entry_points_egl_ext.h" + "src/libGLESv2/entry_points_gles_1_0_autogen.cpp" + "src/libGLESv2/entry_points_gles_1_0_autogen.h" + "src/libGLESv2/entry_points_gles_2_0_autogen.cpp" + "src/libGLESv2/entry_points_gles_2_0_autogen.h" + "src/libGLESv2/entry_points_gles_3_0_autogen.cpp" + "src/libGLESv2/entry_points_gles_3_0_autogen.h" + "src/libGLESv2/entry_points_gles_3_1_autogen.cpp" + "src/libGLESv2/entry_points_gles_3_1_autogen.h" + "src/libGLESv2/entry_points_gles_ext_autogen.cpp" + "src/libGLESv2/entry_points_gles_ext_autogen.h" + "src/libGLESv2/global_state.cpp" + "src/libGLESv2/global_state.h" + "src/libGLESv2/libGLESv2_autogen.cpp" + "src/libGLESv2/libGLESv2.rc" + "src/libGLESv2/proc_table_egl.h" + "src/libGLESv2/proc_table_egl_autogen.cpp" + "src/libGLESv2/resource.h" + "src/libGLESv2/libGLESv2_autogen.def" +) add_library(libGLESv2 ${LIBGLESV2_SOURCES}) target_link_libraries(libGLESv2 PRIVATE angle::common angle::libANGLE) target_compile_definitions(libGLESv2 diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL index 198465993703c5..5922d9db4a834b 100644 --- a/ports/angle/CONTROL +++ b/ports/angle/CONTROL @@ -1,5 +1,5 @@ Source: angle -Version: 2019-07-19 +Version: 2019-07-19-1 Homepage: https://github.com/google/angle Description: A conformant OpenGL ES implementation for Windows, Mac and Linux. The goal of ANGLE is to allow users of multiple operating systems to seamlessly run WebGL and other OpenGL ES content by translating OpenGL ES API calls to one of the hardware-supported APIs available for that platform. ANGLE currently provides translation from OpenGL ES 2.0 and 3.0 to desktop OpenGL, OpenGL ES, Direct3D 9, and Direct3D 11. Support for translation from OpenGL ES to Vulkan is underway, and future plans include compute shader support (ES 3.1) and MacOS support. diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index 387e1d10ab3d6a..30bf5b5d2cf9da 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -2,6 +2,10 @@ include(vcpkg_common_functions) vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) +if (VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + message(WARNING "Building with a gcc version less than 6.1 is not supported.") +endif() + if (VCPKG_TARGET_ARCHITECTURE STREQUAL "x86") set(ANGLE_CPU_BITNESS ANGLE_IS_32_BIT_CPU) elseif (VCPKG_TARGET_ARCHITECTURE STREQUAL "x64") From 7bb1383e1a1eef66b38029178138060d99395ec0 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 17 Sep 2019 09:46:18 -0700 Subject: [PATCH 04/11] update to latest --- ports/angle/portfile.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index 30bf5b5d2cf9da..f492ca006c758c 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -19,8 +19,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/angle - REF 6a02f06dfd4ec5e0f9efb553059ce65535f4b312 - SHA512 6e71bd916781751e1f2f1850007d312ed917b11eda2fef6767bc4e61d1740825e2cf4ee4ac2477c93f7df4bd13b32dbfe7014d11a474333d20f0e1a2a99f80c6 + REF 8f08fed925c54835c4faee4d7dd61d6ed2964ffd + SHA512 037ebe356371924088563180c4a37a31eaffa41ca21c42554391672c28e62fabc19d787516b88baa192b771e05c370c5a6cfec0863b70e08d65216f41d89923f PATCHES 001-fix-uwp.patch 002-fix-linux.patch From 46ccdabb9c0683d75925cc0dd2fe7e21a7a42b66 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Tue, 17 Sep 2019 11:39:53 -0700 Subject: [PATCH 05/11] Disable OpenGL deprecation warnings --- ports/angle/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 59af1aa236a363..e0517701a673ab 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -31,6 +31,7 @@ set(CMAKE_STATIC_LIBRARY_PREFIX "") add_definitions( -D_CRT_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS + -DGL_SILENCE_DEPRECATION -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DANGLE_STANDALONE_BUILD From 1b3d0f7f6649395a385749803debe46ae739fff2 Mon Sep 17 00:00:00 2001 From: Curtis J Bezault Date: Thu, 26 Sep 2019 15:12:10 -0700 Subject: [PATCH 06/11] Update CMakeLists.txt --- ports/angle/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index e0517701a673ab..80dcaf5296f4f4 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -19,7 +19,6 @@ else() set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_POSITION_INDEPENDENT_CODE ON) - add_compile_options(-std=c++17) endif() if (APPLE) From e3d2343cba78934a535b1d5912421b91b4cb5047 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Fri, 27 Sep 2019 11:26:03 -0700 Subject: [PATCH 07/11] include objective c files --- ports/angle/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index e0517701a673ab..41df3c1a3526e5 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -224,8 +224,12 @@ if(WIN32) set(LIBANGLE_SOURCES_PLATFORM "src/third_party/systeminfo/SystemInfo.cpp" ) +elseif(APPLE) + file(GLOB LIBANGLE_SOURCES_PLATFORM + "src/libANGLE/renderer/*.mm" + ) else() - set(LIBANGLE_SOURCES_PLATFORM ) + set(LIBANGLE_SOURCES_PLATFORM) endif() file(GLOB LIBANGLE_SOURCES From b7c6ce3f0c65ff0232ebc022e4199536c090ba90 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Sat, 28 Sep 2019 21:46:00 -0700 Subject: [PATCH 08/11] don't filter any files out of common (same as upstream autotools) --- ports/angle/CMakeLists.txt | 8 -------- 1 file changed, 8 deletions(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 42f6f57212249a..7dd18d8cdbd8bf 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -42,13 +42,6 @@ include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include) ########## # angle::common -if(WIN32) - set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix|android_") -elseif(LINUX) - set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac|android_") -elseif(APPLE) - set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win|android_") -endif() file(GLOB ANGLE_COMMON_SOURCES "src/common/*.h" "src/common/*.inl" @@ -62,7 +55,6 @@ file(GLOB ANGLE_COMMON_SOURCES "src/common/third_party/xxhash/*.c" "src/common/third_party/smhasher/src/*.h" "src/common/third_party/smhasher/src/*.cpp") -list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer|${ANGLE_COMMON_PLATFORM_FILTER}") add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES}) target_include_directories(angle_common PUBLIC src/common/third_party/base) add_library(angle::common ALIAS angle_common) From 123ebe86160158bc51261e6c56db25561766429b Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Sat, 28 Sep 2019 22:00:46 -0700 Subject: [PATCH 09/11] drop unit tests so we don't bring in gtest --- ports/angle/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 7dd18d8cdbd8bf..5017ddfb78bea9 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -55,6 +55,7 @@ file(GLOB ANGLE_COMMON_SOURCES "src/common/third_party/xxhash/*.c" "src/common/third_party/smhasher/src/*.h" "src/common/third_party/smhasher/src/*.cpp") +list(FILTER ANGLE_COMMON_SOURCES EXCLUDE "_unittest|event_tracer") add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES}) target_include_directories(angle_common PUBLIC src/common/third_party/base) add_library(angle::common ALIAS angle_common) From 62813a2f570aa1cc6cc0b15f1dd1d578a5566aa7 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Sun, 29 Sep 2019 09:35:16 -0700 Subject: [PATCH 10/11] add filter mode --- ports/angle/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 5017ddfb78bea9..4912685ce3547d 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -55,7 +55,7 @@ file(GLOB ANGLE_COMMON_SOURCES "src/common/third_party/xxhash/*.c" "src/common/third_party/smhasher/src/*.h" "src/common/third_party/smhasher/src/*.cpp") -list(FILTER ANGLE_COMMON_SOURCES EXCLUDE "_unittest|event_tracer") +list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer") add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES}) target_include_directories(angle_common PUBLIC src/common/third_party/base) add_library(angle::common ALIAS angle_common) From 0682cc96fcda82609fdc52b110ff2eaef632fb23 Mon Sep 17 00:00:00 2001 From: "Curtis.Bezault" Date: Sun, 29 Sep 2019 10:00:22 -0700 Subject: [PATCH 11/11] add back filter except for android --- ports/angle/CMakeLists.txt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 4912685ce3547d..8be51c0d410288 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -42,6 +42,13 @@ include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include) ########## # angle::common +if(WIN32) + set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix") +elseif(LINUX) + set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac") +elseif(APPLE) + set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win") +endif() file(GLOB ANGLE_COMMON_SOURCES "src/common/*.h" "src/common/*.inl" @@ -55,7 +62,7 @@ file(GLOB ANGLE_COMMON_SOURCES "src/common/third_party/xxhash/*.c" "src/common/third_party/smhasher/src/*.h" "src/common/third_party/smhasher/src/*.cpp") -list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer") +list(FILTER ANGLE_COMMON_SOURCES EXCLUDE REGEX "_unittest|event_tracer|${ANGLE_COMMON_PLATFORM_FILTER}") add_library(angle_common STATIC ${ANGLE_COMMON_SOURCES}) target_include_directories(angle_common PUBLIC src/common/third_party/base) add_library(angle::common ALIAS angle_common)