From 1c20782ea44a8c07be931a8b8286044ec175cddc Mon Sep 17 00:00:00 2001 From: pastdue <30942300+past-due@users.noreply.github.com> Date: Tue, 20 Jul 2021 14:56:02 -0400 Subject: [PATCH] [angle] Update to chromium/4472 (#18432) * [angle] Update to chromium/4472 * Run x-add-version angle --- ports/angle/CMakeLists.txt | 392 +++++++++++++++---- ports/angle/CONTROL | 7 - ports/angle/{commit.h => angle_commit.h} | 0 ports/angle/portfile.cmake | 30 +- ports/angle/third-party-zlib-far-undef.patch | 13 + ports/angle/vcpkg.json | 14 + versions/a-/angle.json | 5 + versions/baseline.json | 4 +- 8 files changed, 381 insertions(+), 84 deletions(-) delete mode 100644 ports/angle/CONTROL rename ports/angle/{commit.h => angle_commit.h} (100%) create mode 100644 ports/angle/third-party-zlib-far-undef.patch create mode 100644 ports/angle/vcpkg.json diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 18db69e5fd..c00c3d0ea6 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -28,7 +28,7 @@ set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}") set(CMAKE_STATIC_LIBRARY_PREFIX "") if (WINDOWS_STORE) - set(WINRT_DEFINES -DANGLE_ENABLE_WINDOWS_STORE) + set(WINRT_DEFINES -DANGLE_ENABLE_WINDOWS_UWP -DWINAPI_FAMILY=WINAPI_FAMILY_PC_APP) else() set(WINRT_DEFINES) endif() @@ -39,27 +39,42 @@ add_definitions( -D_HAS_EXCEPTIONS=0 -DNOMINMAX -DANGLE_STANDALONE_BUILD - -DANGLE_ENABLE_DEBUG_ANNOTATIONS ${WINRT_DEFINES} ) +add_compile_options("$<$:-DANGLE_ENABLE_DEBUG_ANNOTATIONS>") +if(WIN32) + add_definitions(-DANGLE_IS_WIN) +endif() +if(LINUX) + add_definitions(-DANGLE_IS_LINUX) +endif() +if(ANGLE_IS_64_BIT_CPU) + add_definitions(-DANGLE_IS_64_BIT_CPU) +elseif(ANGLE_IS_32_BIT_CPU) + add_definitions(-DANGLE_IS_32_BIT_CPU) +endif() -configure_file(commit.h include/id/commit.h COPYONLY) +configure_file(angle_commit.h include/id/commit.h COPYONLY) #include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include) include_directories("$" "$" "$" "$") ########## # angle::common if(WINDOWS_DESKTOP) - set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix|_winuwp") + set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_apple|_mac|_ios|_posix|_winuwp") elseif(WINDOWS_STORE) - set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_mac|_posix|_win32") + set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_apple|_mac|_ios|_posix|_win32") elseif(LINUX) - set(ANGLE_COMMON_PLATFORM_FILTER "_win|_mac") + set(ANGLE_COMMON_PLATFORM_FILTER "_win|_apple|_mac|_ios") elseif(APPLE) - set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win") + if(CMAKE_SYSTEM_NAME MATCHES "Darwin") # macOS + set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win|_ios") + else() # other Apple platforms (iOS, etc) + set(ANGLE_COMMON_PLATFORM_FILTER "_linux|_win|_mac") + endif() endif() file(GLOB ANGLE_COMMON_SOURCES "src/common/*.h" - "src/common/*.inl" + "src/common/*.inc" "src/common/*.cpp" "src/common/third_party/base/anglebase/*.h" "src/common/third_party/base/anglebase/*.cc" @@ -75,9 +90,21 @@ add_library(angle_common OBJECT ${ANGLE_COMMON_SOURCES}) target_include_directories(angle_common PUBLIC "$") add_library(angle::common ALIAS angle_common) +########## +# angle::compression +file(GLOB ANGLE_COMPRESSION_UTILS_SOURCES "third_party/zlib/google/compression_utils_portable.*") +find_package(ZLIB REQUIRED) +add_library(angle_compression_utils OBJECT ${ANGLE_COMPRESSION_UTILS_SOURCES}) +target_link_libraries(angle_compression_utils PUBLIC ZLIB::ZLIB) +target_compile_definitions(angle_compression_utils PRIVATE + -DUSE_SYSTEM_ZLIB +) +target_include_directories(angle_compression_utils INTERFACE "$") +add_library(angle::compression ALIAS angle_compression_utils) + ########## # angle::image_util -file(GLOB ANGLE_IMAGE_UTIL_SOURCES "src/image_util/*.h" "src/image_util/*.inl" "src/image_util/*.cpp") +file(GLOB ANGLE_IMAGE_UTIL_SOURCES "src/image_util/*.h" "src/image_util/*.inc" "src/image_util/*.cpp") add_library(angle_image_util OBJECT ${ANGLE_IMAGE_UTIL_SOURCES}) target_link_libraries(angle_image_util PRIVATE angle::common) add_library(angle::image_util ALIAS angle_image_util) @@ -85,23 +112,207 @@ add_library(angle::image_util ALIAS angle_image_util) ########## # angle::translator file(GLOB TRANSLATOR_SOURCES - "src/compiler/translator/glslang.l" - "src/compiler/translator/glslang.y" - "src/compiler/translator/*.h" - "src/compiler/translator/*.cpp" - "src/compiler/translator/tree_ops/*.h" + "src/compiler/translator/BaseTypes.h" + "src/compiler/translator/BuiltInFunctionEmulator.cpp" + "src/compiler/translator/BuiltInFunctionEmulator.h" + "src/compiler/translator/CallDAG.cpp" + "src/compiler/translator/CallDAG.h" + "src/compiler/translator/CodeGen.cpp" + "src/compiler/translator/CollectVariables.cpp" + "src/compiler/translator/CollectVariables.h" + "src/compiler/translator/Common.h" + "src/compiler/translator/Compiler.cpp" + "src/compiler/translator/Compiler.h" + "src/compiler/translator/ConstantUnion.cpp" + "src/compiler/translator/ConstantUnion.h" + "src/compiler/translator/Declarator.cpp" + "src/compiler/translator/Declarator.h" + "src/compiler/translator/Diagnostics.cpp" + "src/compiler/translator/Diagnostics.h" + "src/compiler/translator/DirectiveHandler.cpp" + "src/compiler/translator/DirectiveHandler.h" + "src/compiler/translator/ExtensionBehavior.cpp" + "src/compiler/translator/ExtensionBehavior.h" + "src/compiler/translator/FlagStd140Structs.cpp" + "src/compiler/translator/FlagStd140Structs.h" + "src/compiler/translator/FunctionLookup.cpp" + "src/compiler/translator/FunctionLookup.h" + "src/compiler/translator/HashNames.cpp" + "src/compiler/translator/HashNames.h" + "src/compiler/translator/ImmutableString.h" + "src/compiler/translator/ImmutableStringBuilder.cpp" + "src/compiler/translator/ImmutableStringBuilder.h" + "src/compiler/translator/InfoSink.cpp" + "src/compiler/translator/InfoSink.h" + "src/compiler/translator/Initialize.cpp" + "src/compiler/translator/Initialize.h" + "src/compiler/translator/InitializeDll.cpp" + "src/compiler/translator/InitializeDll.h" + "src/compiler/translator/InitializeGlobals.h" + "src/compiler/translator/IntermNode.cpp" + "src/compiler/translator/IntermNode.h" + "src/compiler/translator/IsASTDepthBelowLimit.cpp" + "src/compiler/translator/IsASTDepthBelowLimit.h" + "src/compiler/translator/Operator.cpp" + "src/compiler/translator/Operator.h" + "src/compiler/translator/OutputTree.cpp" + "src/compiler/translator/OutputTree.h" + "src/compiler/translator/ParseContext.cpp" + "src/compiler/translator/ParseContext.h" + "src/compiler/translator/ParseContext_ESSL_autogen.h" + "src/compiler/translator/ParseContext_complete_autogen.h" + "src/compiler/translator/ParseContext_interm.h" + "src/compiler/translator/PoolAlloc.cpp" + "src/compiler/translator/PoolAlloc.h" + "src/compiler/translator/Pragma.h" + "src/compiler/translator/QualifierTypes.cpp" + "src/compiler/translator/QualifierTypes.h" + "src/compiler/translator/Severity.h" + "src/compiler/translator/ShaderLang.cpp" + "src/compiler/translator/ShaderVars.cpp" + "src/compiler/translator/StaticType.h" + "src/compiler/translator/Symbol.cpp" + "src/compiler/translator/Symbol.h" + "src/compiler/translator/SymbolTable.cpp" + "src/compiler/translator/SymbolTable.h" + "src/compiler/translator/SymbolTable_autogen.h" + "src/compiler/translator/SymbolUniqueId.cpp" + "src/compiler/translator/SymbolUniqueId.h" + "src/compiler/translator/TranslatorESSL.h" + "src/compiler/translator/TranslatorGLSL.h" + "src/compiler/translator/TranslatorHLSL.h" + "src/compiler/translator/TranslatorMetal.h" + "src/compiler/translator/TranslatorVulkan.h" + "src/compiler/translator/Types.cpp" + "src/compiler/translator/Types.h" + "src/compiler/translator/ValidateAST.cpp" + "src/compiler/translator/ValidateAST.h" + "src/compiler/translator/ValidateBarrierFunctionCall.cpp" + "src/compiler/translator/ValidateBarrierFunctionCall.h" + "src/compiler/translator/ValidateClipCullDistance.cpp" + "src/compiler/translator/ValidateClipCullDistance.h" + "src/compiler/translator/ValidateGlobalInitializer.cpp" + "src/compiler/translator/ValidateGlobalInitializer.h" + "src/compiler/translator/ValidateLimitations.cpp" + "src/compiler/translator/ValidateLimitations.h" + "src/compiler/translator/ValidateMaxParameters.cpp" + "src/compiler/translator/ValidateMaxParameters.h" + "src/compiler/translator/ValidateOutputs.cpp" + "src/compiler/translator/ValidateOutputs.h" + "src/compiler/translator/ValidateSwitch.cpp" + "src/compiler/translator/ValidateSwitch.h" + "src/compiler/translator/ValidateVaryingLocations.cpp" + "src/compiler/translator/ValidateVaryingLocations.h" + "src/compiler/translator/VariablePacker.cpp" + "src/compiler/translator/VariablePacker.h" + "src/compiler/translator/blocklayout.cpp" + "src/compiler/translator/glslang.h" + "src/compiler/translator/glslang_lex_autogen.cpp" + "src/compiler/translator/glslang_tab_autogen.cpp" + "src/compiler/translator/glslang_tab_autogen.h" + "src/compiler/translator/glslang_wrapper.h" + "src/compiler/translator/length_limits.h" "src/compiler/translator/tree_ops/*.cpp" + "src/compiler/translator/tree_ops/*.h" + "src/compiler/translator/tree_ops/gl/ClampFragDepth.h" + "src/compiler/translator/tree_ops/gl/RegenerateStructNames.h" + "src/compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.h" + "src/compiler/translator/tree_ops/gl/UseInterfaceBlockFields.h" + "src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.h" + "src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.h" + "src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.h" + "src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.h" + "src/compiler/translator/tree_ops/vulkan/EarlyFragmentTestsOptimization.h" "src/compiler/translator/tree_util/*.h" "src/compiler/translator/tree_util/*.cpp" + "src/compiler/translator/util.cpp" + "src/compiler/translator/util.h" "src/third_party/compiler/ArrayBoundsClamper.cpp" + "src/third_party/compiler/ArrayBoundsClamper.h" ) list(FILTER TRANSLATOR_SOURCES EXCLUDE REGEX "_unittest") -add_library(angle_translator OBJECT ${TRANSLATOR_SOURCES}) -target_compile_definitions(angle_translator PUBLIC - -DANGLE_ENABLE_ESSL - -DANGLE_ENABLE_GLSL - -DANGLE_ENABLE_HLSL +file(GLOB TRANSLATOR_GLSL_BASE_SOURCES + "src/compiler/translator/OutputGLSLBase.cpp" + "src/compiler/translator/OutputGLSLBase.h" ) +file(GLOB TRANSLATOR_GLSL_AND_VULKAN_BASE_SOURCES + "src/compiler/translator/BuiltinsWorkaroundGLSL.cpp" + "src/compiler/translator/BuiltinsWorkaroundGLSL.h" + "src/compiler/translator/OutputGLSL.cpp" + "src/compiler/translator/OutputGLSL.h" +) +file(GLOB TRANSLATOR_ESSL_SOURCES + "src/compiler/translator/OutputESSL.cpp" + "src/compiler/translator/OutputESSL.h" + "src/compiler/translator/TranslatorESSL.cpp" + "src/compiler/translator/tree_ops/gl/RecordConstantPrecision.cpp" + "src/compiler/translator/tree_ops/gl/RecordConstantPrecision.h" +) +file(GLOB TRANSLATOR_GLSL_SOURCES + "src/compiler/translator/BuiltInFunctionEmulatorGLSL.cpp" + "src/compiler/translator/BuiltInFunctionEmulatorGLSL.h" + "src/compiler/translator/ExtensionGLSL.cpp" + "src/compiler/translator/ExtensionGLSL.h" + "src/compiler/translator/TranslatorGLSL.cpp" + "src/compiler/translator/VersionGLSL.cpp" + "src/compiler/translator/VersionGLSL.h" + "src/compiler/translator/tree_ops/gl/ClampFragDepth.cpp" + "src/compiler/translator/tree_ops/gl/RegenerateStructNames.cpp" + "src/compiler/translator/tree_ops/gl/RewriteRepeatedAssignToSwizzled.cpp" + "src/compiler/translator/tree_ops/gl/UseInterfaceBlockFields.cpp" + "src/compiler/translator/tree_ops/gl/VectorizeVectorScalarArithmetic.cpp" + "src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.h" + "src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.h" +) +file(GLOB TRANSLATOR_GLSL_MAC_SOURCES + "src/compiler/translator/tree_ops/gl/mac/AddAndTrueToLoopCondition.cpp" + "src/compiler/translator/tree_ops/gl/mac/RewriteDoWhile.cpp" + "src/compiler/translator/tree_ops/gl/mac/RewriteRowMajorMatrices.cpp" + "src/compiler/translator/tree_ops/gl/mac/RewriteUnaryMinusOperatorFloat.cpp" + "src/compiler/translator/tree_ops/gl/mac/UnfoldShortCircuitAST.cpp" +) +file(GLOB TRANSLATOR_HLSL_SOURCES + "src/compiler/translator/*HLSL.h" + "src/compiler/translator/*HLSL.cpp" + "src/compiler/translator/emulated_builtin_functions_hlsl_autogen.cpp" + "src/compiler/translator/tree_ops/d3d/*.cpp" + "src/compiler/translator/tree_ops/d3d/*.h" +) +if(ANDROID) + list(APPEND TRANSLATOR_SOURCES "src/compiler/translator/ImmutableString_ESSL_autogen.cpp" "src/compiler/translator/SymbolTable_ESSL_autogen.cpp") +else() + list(APPEND TRANSLATOR_SOURCES "src/compiler/translator/ImmutableString_autogen.cpp" "src/compiler/translator/SymbolTable_autogen.cpp") +endif() +set(ANGLE_ENABLE_ESSL TRUE) +set(ANGLE_ENABLE_GLSL TRUE) +set(ANGLE_ENABLE_HLSL TRUE) +set(_needs_glsl_base FALSE) +set(_needs_glsl_and_vulkan_base FALSE) +add_library(angle_translator OBJECT ${TRANSLATOR_SOURCES}) +if(ANGLE_ENABLE_ESSL) + set(_needs_glsl_base TRUE) + target_sources(angle_translator PRIVATE ${TRANSLATOR_ESSL_SOURCES}) + target_compile_definitions(angle_translator PUBLIC -DANGLE_ENABLE_ESSL) +endif() +if(ANGLE_ENABLE_GLSL) + set(_needs_glsl_base TRUE) + set(_needs_glsl_and_vulkan_base TRUE) + target_sources(angle_translator PRIVATE ${TRANSLATOR_GLSL_SOURCES}) + if(APPLE) + target_sources(angle_translator PRIVATE ${TRANSLATOR_GLSL_MAC_SOURCES}) + endif() + target_compile_definitions(angle_translator PUBLIC -DANGLE_ENABLE_GLSL) +endif() +if(ANGLE_ENABLE_HLSL) + target_sources(angle_translator PRIVATE ${TRANSLATOR_HLSL_SOURCES}) + target_compile_definitions(angle_translator PUBLIC -DANGLE_ENABLE_HLSL) +endif() +if(_needs_glsl_base) + target_sources(angle_translator PRIVATE ${TRANSLATOR_GLSL_BASE_SOURCES}) +endif() +if(_needs_glsl_and_vulkan_base) + target_sources(angle_translator PRIVATE ${TRANSLATOR_GLSL_AND_VULKAN_BASE_SOURCES}) +endif() target_link_libraries(angle_translator PRIVATE angle::common) add_library(angle::translator ALIAS angle_translator) @@ -123,31 +334,27 @@ if(WINDOWS_DESKTOP OR LINUX OR APPLE) if(WINDOWS_DESKTOP) set(ANGLE_RENDERER_OPENGL_PLATFORM "src/libANGLE/renderer/gl/wgl/*.cpp" - "src/libANGLE/renderer/gl/wgl/*.inl" "src/libANGLE/renderer/gl/wgl/*.h" ) elseif(APPLE) set(ANGLE_RENDERER_OPENGL_PLATFORM "src/libANGLE/renderer/gl/cgl/*.mm" "src/libANGLE/renderer/gl/cgl/*.cpp" - "src/libANGLE/renderer/gl/cgl/*.inl" "src/libANGLE/renderer/gl/cgl/*.h" "gpu_info_util/SystemInfo_macos.mm" ) elseif(LINUX) set(ANGLE_RENDERER_OPENGL_PLATFORM "src/libANGLE/renderer/gl/glx/*.cpp" - "src/libANGLE/renderer/gl/glx/*.inl" "src/libANGLE/renderer/gl/glx/*.h" "src/libANGLE/renderer/gl/egl/*.cpp" - "src/libANGLE/renderer/gl/egl/*.inl" "src/libANGLE/renderer/gl/egl/*.h" ) endif() file(GLOB LIBANGLE_GL_SOURCES "src/libANGLE/renderer/gl/*.cpp" - "src/libANGLE/renderer/gl/*.inl" + "src/libANGLE/renderer/gl/*.inc" "src/libANGLE/renderer/gl/*.h" ${ANGLE_RENDERER_OPENGL_PLATFORM} @@ -164,7 +371,7 @@ if(WIN32) ## All D3D Sources file(GLOB_RECURSE LIBANGLE_D3D_SOURCES "src/libANGLE/renderer/d3d/*.cpp" - "src/libANGLE/renderer/d3d/*.inl" + "src/libANGLE/renderer/d3d/*.inc" "src/libANGLE/renderer/d3d/*.h" ) list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "_unittest") @@ -181,17 +388,17 @@ if(WIN32) ## Win32/d3d9 D3D Renderer if(WINDOWS_DESKTOP) set(LIBANGLE_D3D_DESKTOP_SOURCES ${LIBANGLE_D3D_SOURCES}) - list(FILTER LIBANGLE_D3D_DESKTOP_SOURCES INCLUDE REGEX "d3d9|win32|converged") + list(FILTER LIBANGLE_D3D_DESKTOP_SOURCES INCLUDE REGEX "d3d9|win32") find_library(D3D9_LIB NAMES d3d9) add_library(angle_renderer_win32 INTERFACE) target_sources(angle_renderer_win32 INTERFACE "$") target_compile_definitions(angle_renderer_win32 INTERFACE -DANGLE_ENABLE_D3D9) - target_link_libraries(angle_renderer_win32 INTERFACE ${D3D9_LIB}) + target_link_libraries(angle_renderer_win32 INTERFACE d3d9) add_library(angle::renderer::win32 ALIAS angle_renderer_win32) endif() ## D3D11 Base renderer - list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "winrt|d3d9|win32|converged") + list(FILTER LIBANGLE_D3D_SOURCES EXCLUDE REGEX "winrt|d3d9|win32") find_library(DXGUID_LIB NAMES dxguid) find_library(D3D11_LIB NAMES d3d11) add_library(angle_renderer_d3d INTERFACE) @@ -199,6 +406,7 @@ if(WIN32) target_compile_definitions(angle_renderer_d3d INTERFACE -DANGLE_ENABLE_D3D11 "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }" + -DANGLE_ENABLE_D3D11_COMPOSITOR_NATIVE_WINDOW ) target_link_libraries(angle_renderer_d3d INTERFACE d3d11 dxguid) add_library(angle::renderer::d3d ALIAS angle_renderer_d3d) @@ -215,7 +423,10 @@ if(WIN32) target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_win.cpp") target_link_libraries(angle_gpu_info_util PRIVATE setupapi.lib dxgi.lib) elseif(APPLE) - target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_macos.mm") + target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_apple.mm") + if(CMAKE_SYSTEM_NAME MATCHES "Darwin") # macOS + target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_macos.mm") + endif() find_library(IOKit IOKit) find_library(CoreFoundation CoreFoundation) find_library(CoreGraphics CoreGraphics) @@ -232,9 +443,11 @@ add_library(angle::gpu_info_util ALIAS angle_gpu_info_util) ## Core libANGLE library if(WIN32) - set(LIBANGLE_SOURCES_PLATFORM - "src/third_party/systeminfo/SystemInfo.cpp" - ) + if(NOT WINDOWS_STORE) + set(LIBANGLE_SOURCES_PLATFORM + "src/third_party/systeminfo/SystemInfo.cpp" + ) + endif() elseif(APPLE) file(GLOB LIBANGLE_SOURCES_PLATFORM "src/libANGLE/renderer/*.mm" @@ -248,20 +461,47 @@ file(GLOB LIBANGLE_SOURCES "src/common/event_tracer.cpp" "src/libANGLE/*.cpp" - "src/libANGLE/*.inl" + "src/libANGLE/*.inc" "src/libANGLE/*.h" "src/libANGLE/renderer/*.cpp" - "src/libANGLE/renderer/*.inl" "src/libANGLE/renderer/*.h" "src/libANGLE/renderer/null/*.cpp" - "src/libANGLE/renderer/null/*.inl" "src/libANGLE/renderer/null/*.h" + # The frame capture headers are always visible to libANGLE. + "src/libANGLE/capture/*.h" + + # angle_frame_capture_disabled + "src/libANGLE/capture/FrameCapture_mock.cpp" + "src/libANGLE/capture/frame_capture_utils_mock.cpp" + + # angle_gl_enum_utils + "src/libANGLE/capture/gl_enum_utils.cpp" + "src/libANGLE/capture/gl_enum_utils_autogen.cpp" + ${LIBANGLE_SOURCES_PLATFORM} ) -list(FILTER LIBANGLE_SOURCES EXCLUDE REGEX "_unittest|glslang_wrapper|capture|FrameCapture\.cpp") +list(FILTER LIBANGLE_SOURCES EXCLUDE REGEX "_unittest|glslang_wrapper|dxgi_|d3d_format") +if(WIN32) + set(LIBANGLE_D3D_FORMAT_TABLES_SOURCES_PLATFORM) + if(NOT WINDOWS_STORE) + list(APPEND LIBANGLE_D3D_FORMAT_TABLES_SOURCES_PLATFORM + "src/libANGLE/renderer/d3d_format.cpp" + "src/libANGLE/renderer/d3d_format.h" + ) + endif() + file(GLOB LIBANGLE_D3D_FORMAT_TABLES_SOURCES + "src/libANGLE/renderer/dxgi_format_map.h" + "src/libANGLE/renderer/dxgi_format_map_autogen.cpp" + "src/libANGLE/renderer/dxgi_support_table.h" + "src/libANGLE/renderer/dxgi_support_table_autogen.cpp" + + ${LIBANGLE_D3D_FORMAT_TABLES_SOURCES_PLATFORM} + ) + list(APPEND LIBANGLE_SOURCES "${LIBANGLE_D3D_FORMAT_TABLES_SOURCES}") +endif() if(LINUX OR APPLE) set(LIBANGLE_RENDERER_PLATFORM @@ -297,6 +537,7 @@ endif() add_library(libANGLE STATIC ${LIBANGLE_SOURCES}) target_link_libraries(libANGLE PRIVATE angle::common + angle::compression angle::image_util angle::gpu_info_util angle::translator @@ -314,6 +555,7 @@ target_compile_definitions(libANGLE -DEGLAPI= -DGL_APICALL= -DGL_API= + -DANGLE_CAPTURE_ENABLED=0 ) add_library(angle::libANGLE ALIAS libANGLE) if(BUILD_SHARED_LIBS) @@ -326,34 +568,33 @@ endif() # libGLESv2 # 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_3_2_autogen.cpp" - "src/libGLESv2/entry_points_gles_3_2_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" + "src/libGLESv2/egl_ext_stubs.cpp" + "src/libGLESv2/egl_ext_stubs_autogen.h" + "src/libGLESv2/egl_stubs.cpp" + "src/libGLESv2/egl_stubs_autogen.h" + "src/libGLESv2/entry_points_egl_autogen.cpp" + "src/libGLESv2/entry_points_egl_autogen.h" + "src/libGLESv2/entry_points_egl_ext_autogen.cpp" + "src/libGLESv2/entry_points_egl_ext_autogen.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_3_2_autogen.cpp" + "src/libGLESv2/entry_points_gles_3_2_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/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) @@ -386,18 +627,25 @@ target_include_directories(libGLESv2 PUBLIC "$") ########## # libEGL +if(WIN32) + set(libEGL_def + "src/libEGL/libEGL_autogen.def" + ) +endif() add_library(libEGL - "src/libEGL/libEGL.def" - "src/libEGL/libEGL.cpp" - "src/libEGL/libEGL.rc" - "src/libEGL/resource.h" - "src/libEGL/egl_loader_autogen.cpp" "src/libEGL/egl_loader_autogen.h" + "src/libEGL/libEGL_autogen.cpp" + "src/libEGL/resource.h" + "src/libGLESv2/entry_points_egl_autogen.h" + "src/libGLESv2/entry_points_egl_ext_autogen.h" + ${libEGL_def} ) + target_link_libraries(libEGL PRIVATE angle::common angle::libANGLE libGLESv2) target_include_directories(libEGL PUBLIC "$" "$") target_compile_definitions(libEGL - PRIVATE -DLIBGLESV2_IMPLEMENTATION + PRIVATE + "-DLIBEGL_IMPLEMENTATION" PUBLIC "-DGL_GLES_PROTOTYPES=1" "-DGL_GLEXT_PROTOTYPES" @@ -435,7 +683,7 @@ SET_TARGET_PROPERTIES(libANGLE PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(libGLESv2 PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(libEGL PROPERTIES PREFIX "") -install(TARGETS libEGL libGLESv2 libANGLE angle_common angle_image_util angle_gpu_info_util angle_translator angle_preprocessor GL_VISIBILITY EXPORT ANGLEExport +install(TARGETS libEGL libGLESv2 libANGLE angle_common angle_compression_utils angle_image_util angle_gpu_info_util angle_translator angle_preprocessor GL_VISIBILITY EXPORT ANGLEExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib @@ -470,11 +718,13 @@ if(NOT DISABLE_INSTALL_HEADERS) FILES_MATCHING PATTERN "*.h" PATTERN "*.inc" + PATTERN "CL" EXCLUDE PATTERN "GLSLANG" EXCLUDE PATTERN "egl.h" EXCLUDE PATTERN "eglext.h" EXCLUDE PATTERN "eglplatform.h" EXCLUDE PATTERN "KHR" EXCLUDE + PATTERN "WGL" EXCLUDE PATTERN "export.h" EXCLUDE ) endif() diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL deleted file mode 100644 index 512dd91f54..0000000000 --- a/ports/angle/CONTROL +++ /dev/null @@ -1,7 +0,0 @@ -Source: angle -Version: 2020-05-15 -Port-Version: 2 -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. -Build-Depends: egl-registry, opengl-registry diff --git a/ports/angle/commit.h b/ports/angle/angle_commit.h similarity index 100% rename from ports/angle/commit.h rename to ports/angle/angle_commit.h diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index 672e5173cb..35c38074f8 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -18,8 +18,8 @@ endif() vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO google/angle - REF d949154da428bb3e924e28a8eadfe2327631c8bb # chromium/4148 - SHA512 3ef1c94fccfca592057652e0ad305e3025184675e2323a714428ec934048496fbd242b5e1298bb5e3b3058b53d54f6889e446cbd81af7bea2cc6d5e13c7356bd + REF d15be77864e18f407c317be6f6bc06ee2b7d070a # chromium/4472 + SHA512 aad8563ee65458a7865ec7c668d1f90ac2891583c569a22dcd2c557263b72b26386f56b74a7294398be2cf5c548df513159e4be53f3f096f19819ca06227d9ac # On update check headers against opengl-registry PATCHES 001-fix-uwp.patch @@ -27,8 +27,30 @@ vcpkg_from_github( ) file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH}) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/commit.h DESTINATION ${SOURCE_PATH}) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/commit.h DESTINATION ${SOURCE_PATH}/src/common) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/angle_commit.h DESTINATION ${SOURCE_PATH}) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/angle_commit.h DESTINATION ${SOURCE_PATH}/src/common) + +function(checkout_in_path_with_patches PATH URL REF PATCHES) + if(EXISTS "${PATH}") + return() + endif() + + vcpkg_from_git( + OUT_SOURCE_PATH DEP_SOURCE_PATH + URL "${URL}" + REF "${REF}" + PATCHES ${PATCHES} + ) + file(RENAME "${DEP_SOURCE_PATH}" "${PATH}") + file(REMOVE_RECURSE "${DEP_SOURCE_PATH}") +endfunction() + +checkout_in_path_with_patches( + "${SOURCE_PATH}/third_party/zlib" + "https://chromium.googlesource.com/chromium/src/third_party/zlib" + "09490503d0f201b81e03f5ca0ab8ba8ee76d4a8e" + "third-party-zlib-far-undef.patch" +) vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} diff --git a/ports/angle/third-party-zlib-far-undef.patch b/ports/angle/third-party-zlib-far-undef.patch new file mode 100644 index 0000000000..c92b058d23 --- /dev/null +++ b/ports/angle/third-party-zlib-far-undef.patch @@ -0,0 +1,13 @@ +diff --git a/google/compression_utils_portable.h b/google/compression_utils_portable.h +--- a/google/compression_utils_portable.h ++++ b/google/compression_utils_portable.h +@@ -13,6 +13,9 @@ + * zlib. + */ + #if defined(USE_SYSTEM_ZLIB) ++# if defined(WIN32) && defined(FAR) ++# undef FAR ++# endif + #include + /* AOSP build requires relative paths. */ + #else diff --git a/ports/angle/vcpkg.json b/ports/angle/vcpkg.json new file mode 100644 index 0000000000..0987e6c866 --- /dev/null +++ b/ports/angle/vcpkg.json @@ -0,0 +1,14 @@ +{ + "name": "angle", + "version-string": "chromium_4472", + "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." + ], + "homepage": "https://github.com/google/angle", + "dependencies": [ + "egl-registry", + "opengl-registry", + "zlib" + ] +} diff --git a/versions/a-/angle.json b/versions/a-/angle.json index 6b9219471f..bbff894c6f 100644 --- a/versions/a-/angle.json +++ b/versions/a-/angle.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "5bd610babb6f0fb15119aa94644494c0dc2bcd2c", + "version-string": "chromium_4472", + "port-version": 0 + }, { "git-tree": "48342ccfb3565a61cc9ed878a2ff422e294b4e56", "version-string": "2020-05-15", diff --git a/versions/baseline.json b/versions/baseline.json index 92340f420f..4652e93395 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -77,8 +77,8 @@ "port-version": 0 }, "angle": { - "baseline": "2020-05-15", - "port-version": 2 + "baseline": "chromium_4472", + "port-version": 0 }, "antlr4": { "baseline": "4.9.1",