From 48459c6bc4a828237cbd47c6d9958fd30f152f78 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 7 Feb 2020 11:39:53 +0100 Subject: [PATCH 01/12] update opengl and install all headers --- ports/opengl-registry/CONTROL | 2 +- ports/opengl-registry/portfile.cmake | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ports/opengl-registry/CONTROL b/ports/opengl-registry/CONTROL index 3ff6c6e698bb3c..940158beda9d18 100644 --- a/ports/opengl-registry/CONTROL +++ b/ports/opengl-registry/CONTROL @@ -1,4 +1,4 @@ Source: opengl-registry -Version: 2019-08-22 +Version: 2020-02-03 Build-Depends: egl-registry Description: the API and Extension registries for the OpenGL family APIs diff --git a/ports/opengl-registry/portfile.cmake b/ports/opengl-registry/portfile.cmake index 406ca1c3f3600d..a9e3be246ec78d 100644 --- a/ports/opengl-registry/portfile.cmake +++ b/ports/opengl-registry/portfile.cmake @@ -1,14 +1,17 @@ -include(vcpkg_common_functions) - vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/OpenGL-Registry - REF 3c9ab309994c2baeb5572aa0befd5f405166a275 - SHA512 f53018fe6dfb926dd6c1ce64ffde19b650a9071a1f6fa0c7a1596237e4ff84c3ff0092fb80811c4fea9b533c4b8607ed51f328d683d8f4aac18f0616f58b56a4 + REF 2223f5bebde4aa6b170fb32cdaaf580703fddb67 + SHA512 4e9b570f242942bd45a6601a6b0fcf1dc265c6ba03acaf782a639e7399842dd7350c2d4876236df80a070b2bd9ce7cee88cf2d85f2c50cfba7878d1f9379bbe9 HEAD_REF master ) file(COPY ${SOURCE_PATH}/api/GL DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/api/GLES DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/api/GLES2 DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/api/GLES3 DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/api/GLSC DESTINATION ${CURRENT_PACKAGES_DIR}/include) +file(COPY ${SOURCE_PATH}/api/GLSC2 DESTINATION ${CURRENT_PACKAGES_DIR}/include) file(COPY ${SOURCE_PATH}/xml/gl.xml ${SOURCE_PATH}/xml/glx.xml From 4cf39b0ca21d97e07a9b80344901fa3fedfcd006 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 7 Feb 2020 13:10:38 +0100 Subject: [PATCH 02/12] improve angle --- ports/angle/CMakeLists.txt | 113 +++++++++++++++++++++++++++++-------- ports/angle/CONTROL | 4 +- ports/angle/portfile.cmake | 32 ++++++++++- 3 files changed, 122 insertions(+), 27 deletions(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index e64b9aaa39e3f5..cfdcbac606fb3b 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -44,8 +44,8 @@ add_definitions( ) configure_file(commit.h include/id/commit.h COPYONLY) -include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include) - +#include_directories(include src ${CMAKE_CURRENT_BINARY_DIR}/include) +include_directories("$" "$" "$" "$") ########## # angle::common if(WINDOWS_DESKTOP) @@ -71,14 +71,14 @@ file(GLOB ANGLE_COMMON_SOURCES "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 OBJECT ${ANGLE_COMMON_SOURCES}) +target_include_directories(angle_common PUBLIC "$") add_library(angle::common ALIAS angle_common) ########## # angle::image_util file(GLOB ANGLE_IMAGE_UTIL_SOURCES "src/image_util/*.h" "src/image_util/*.inl" "src/image_util/*.cpp") -add_library(angle_image_util STATIC ${ANGLE_IMAGE_UTIL_SOURCES}) +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) @@ -96,7 +96,7 @@ file(GLOB TRANSLATOR_SOURCES "src/third_party/compiler/ArrayBoundsClamper.cpp" ) list(FILTER TRANSLATOR_SOURCES EXCLUDE REGEX "_unittest") -add_library(angle_translator STATIC ${TRANSLATOR_SOURCES}) +add_library(angle_translator OBJECT ${TRANSLATOR_SOURCES}) target_compile_definitions(angle_translator PUBLIC -DANGLE_ENABLE_ESSL -DANGLE_ENABLE_GLSL @@ -111,7 +111,7 @@ file(GLOB PREPROCESSOR_SOURCES "src/compiler/preprocessor/*.h" "src/compiler/preprocessor/*.cpp" ) -add_library(angle_preprocessor STATIC ${PREPROCESSOR_SOURCES}) +add_library(angle_preprocessor OBJECT ${PREPROCESSOR_SOURCES}) target_link_libraries(angle_preprocessor PRIVATE angle::common) add_library(angle::preprocessor ALIAS angle_preprocessor) @@ -151,7 +151,7 @@ if(WINDOWS_DESKTOP OR LINUX OR APPLE) ) list(FILTER LIBANGLE_GL_SOURCES EXCLUDE REGEX "_unittest") add_library(angle_renderer_opengl INTERFACE) - target_sources(angle_renderer_opengl INTERFACE ${LIBANGLE_GL_SOURCES}) + target_sources(angle_renderer_opengl INTERFACE "$") target_compile_definitions(angle_renderer_opengl INTERFACE -DANGLE_ENABLE_OPENGL) add_library(angle::renderer::opengl ALIAS angle_renderer_opengl) endif() @@ -171,7 +171,7 @@ if(WIN32) set(LIBANGLE_D3D_WINRT_SOURCES ${LIBANGLE_D3D_SOURCES}) list(FILTER LIBANGLE_D3D_WINRT_SOURCES INCLUDE REGEX "winrt") add_library(angle_renderer_winrt INTERFACE) - target_sources(angle_renderer_winrt INTERFACE ${LIBANGLE_D3D_WINRT_SOURCES}) + target_sources(angle_renderer_winrt INTERFACE "$") add_library(angle::renderer::winrt ALIAS angle_renderer_winrt) endif() @@ -181,7 +181,7 @@ if(WIN32) list(FILTER LIBANGLE_D3D_DESKTOP_SOURCES INCLUDE REGEX "d3d9|win32|converged") find_library(D3D9_LIB NAMES d3d9) add_library(angle_renderer_win32 INTERFACE) - target_sources(angle_renderer_win32 INTERFACE ${LIBANGLE_D3D_DESKTOP_SOURCES}) + 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}) add_library(angle::renderer::win32 ALIAS angle_renderer_win32) @@ -192,7 +192,7 @@ if(WIN32) find_library(DXGUID_LIB NAMES dxguid) find_library(D3D11_LIB NAMES d3d11) add_library(angle_renderer_d3d INTERFACE) - target_sources(angle_renderer_d3d INTERFACE ${LIBANGLE_D3D_SOURCES}) + target_sources(angle_renderer_d3d INTERFACE "$") target_compile_definitions(angle_renderer_d3d INTERFACE -DANGLE_ENABLE_D3D11 "-DANGLE_PRELOADED_D3DCOMPILER_MODULE_NAMES={ \"d3dcompiler_47.dll\", \"d3dcompiler_46.dll\", \"d3dcompiler_43.dll\" }" @@ -207,7 +207,7 @@ file(GLOB ANGLE_GPU_INFO_UTIL_SOURCES "src/gpu_info_util/SystemInfo_internal.h" "src/gpu_info_util/SystemInfo.cpp" ) -add_library(angle_gpu_info_util STATIC ${ANGLE_GPU_INFO_UTIL_SOURCES}) +add_library(angle_gpu_info_util OBJECT ${ANGLE_GPU_INFO_UTIL_SOURCES}) 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) @@ -216,7 +216,7 @@ elseif(APPLE) find_library(IOKit IOKit) find_library(CoreFoundation CoreFoundation) find_library(CoreGraphics CoreGraphics) - target_link_libraries(angle_gpu_info_util PRIVATE ${IOKit} ${CoreFoundation} ${CoreGraphics}) + target_link_libraries(angle_gpu_info_util OBJECT ${IOKit} ${CoreFoundation} ${CoreGraphics}) elseif(LINUX) target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_linux.cpp" "src/gpu_info_util/SystemInfo_x11.cpp") target_compile_definitions(angle_gpu_info_util PRIVATE GPU_INFO_USE_X11) @@ -281,6 +281,9 @@ else() endif() if(LINUX) + find_package(X11) + include_directories(${X11_INCLUDE_DIR}) + list(APPEND LIBANGLE_RENDERER_PLATFORM ${X11_LIBRARIES}) set(LIBANGLE_RENDERER_COMPILEDEF -DANGLE_USE_X11 ) @@ -297,14 +300,24 @@ target_link_libraries(libANGLE PRIVATE angle::preprocessor ${LIBANGLE_RENDERER_PLATFORM} ) -target_include_directories(libANGLE PRIVATE "src/third_party/khronos") +target_include_directories(libANGLE PRIVATE "$") target_compile_definitions(libANGLE PRIVATE -DANGLE_ENABLE_NULL PUBLIC -DLIBANGLE_IMPLEMENTATION - ${LIBANGLE_RENDERER_COMPILEDEF} + ${LIBANGLE_RENDERER_COMPILEDEF} + -DANGLE_EXPORT= + -DANGLE_UTIL_EXPORT= + -DEGLAPI= + -DGL_APICALL= + -DGL_API= ) add_library(angle::libANGLE ALIAS libANGLE) +if(BUILD_SHARED_LIBS) + target_compile_definitions(libANGLE + PRIVATE -DLIBANGLE_UTIL_IMPLEMENTATION + ) +endif() ########## # libGLESv2 @@ -344,12 +357,28 @@ target_link_libraries(libGLESv2 PRIVATE angle::common angle::libANGLE) target_compile_definitions(libGLESv2 PRIVATE -DLIBGLESV2_IMPLEMENTATION PUBLIC - -DGL_GLEXT_PROTOTYPES - -DGL_API= - -DGL_APICALL= - -DEGLAPI= - -DGL_API= + "-DGL_GLES_PROTOTYPES=1" + "-DGL_GLEXT_PROTOTYPES" + "-DEGL_EGL_PROTOTYPES=1" + "-DEGL_EGLEXT_PROTOTYPES" ) +if(BUILD_SHARED_LIBS) +else() + if(WIN32) + target_compile_definitions(libGLESv2 PRIVATE + "-DGL_API=" + "-DGL_APICALL=" + "-DEGLAPI=" + ) + else() + target_compile_definitions(libGLESv2 PRIVATE + "-DGL_API=__attribute__((visibility(\"default\")))" + "-DGL_APICALL=__attribute__((visibility(\"default\")))" + "-DEGLAPI=__attribute__((visibility(\"default\")))" + ) + endif() +endif() + target_include_directories(libGLESv2 PUBLIC "$") ########## @@ -361,19 +390,55 @@ add_library(libEGL "src/libEGL/resource.h" ) target_link_libraries(libEGL PRIVATE angle::common angle::libANGLE libGLESv2) -target_include_directories(libEGL PUBLIC "$") -target_include_directories(libEGL PUBLIC "$") - +target_include_directories(libEGL PUBLIC "$" "$") +target_compile_definitions(libEGL + PRIVATE -DLIBGLESV2_IMPLEMENTATION + PUBLIC + "-DGL_GLES_PROTOTYPES=1" + "-DGL_GLEXT_PROTOTYPES" + "-DEGL_EGL_PROTOTYPES=1" + "-DEGL_EGLEXT_PROTOTYPES" +) +if(BUILD_SHARED_LIBS) +else() + if(WIN32) + target_compile_definitions(libEGL PRIVATE + "-DGL_API=" + "-DGL_APICALL=" + "-DEGLAPI=" + ) + else() + target_compile_definitions(libEGL PRIVATE + "-DGL_API=__attribute__((visibility(\"default\")))" + "-DGL_APICALL=__attribute__((visibility(\"default\")))" + "-DEGLAPI=__attribute__((visibility(\"default\")))" + ) + endif() +endif() SET_TARGET_PROPERTIES(libANGLE PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(libGLESv2 PROPERTIES PREFIX "") SET_TARGET_PROPERTIES(libEGL PROPERTIES PREFIX "") -install(TARGETS libEGL libGLESv2 EXPORT ANGLEExport +install(TARGETS libEGL libGLESv2 libANGLE angle_common angle_image_util angle_gpu_info_util angle_translator angle_preprocessor angle_renderer_opengl EXPORT ANGLEExport + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(WINDOWS_DESKTOP) +install(TARGETS angle_renderer_d3d angle_renderer_win32 EXPORT ANGLEExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) +elseif(WINDOWS_STORE) +install(TARGETS angle_renderer_d3d angle_renderer_win32 EXPORT ANGLEExport + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) +endif() install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle) diff --git a/ports/angle/CONTROL b/ports/angle/CONTROL index 26122342a0b335..b863aa53e4bb96 100644 --- a/ports/angle/CONTROL +++ b/ports/angle/CONTROL @@ -1,6 +1,6 @@ Source: angle -Version: 2019-12-31 +Version: 2019-12-31-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. -Build-Depends: egl-registry +Build-Depends: egl-registry, opengl-registry diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index d5c091e6b45d72..3f2b40c31ffa99 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -1,4 +1,4 @@ -vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) +#vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) if (VCPKG_TARGET_IS_LINUX) message(WARNING "Building with a gcc version less than 6.1 is not supported.") @@ -21,6 +21,7 @@ vcpkg_from_github( REPO google/angle REF 1fdf6ca5141d8e349e875eab6e51d93d929a7f0e SHA512 2553307f3d10b5c32166b9ed610b4b15310dccba00c644cd35026de86d87ea2e221c2e528f33b02f01c1ded2f08150e429de1fa300b73d655f8944f6f5047a82 + # On update check headers against opengl-registry PATCHES 001-fix-uwp.patch 002-fix-builder-error.patch @@ -44,3 +45,32 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH share/unofficial-angle TARGET_PATH share/u vcpkg_copy_pdbs() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) + +# File conflict with opengl-registry! Make sure headers are similar on Update! +# angle defines some additional entrypoints. +# opengl-registry probably needs an upstream update to account for those +# Due to that all angle headers get moved to include/angle. +# If you want to use those instead of the onces provided by opengl-registry make sure +# VCPKG_INSTALLED_DIR/include/angle is before VCPKG_INSTALLED_DIR/include +file(GLOB_RECURSE angle_includes "${CURRENT_PACKAGES_DIR}/include") +file(COPY ${angle_includes} DESTINATION "${CURRENT_PACKAGES_DIR}/include/angle") + +set(_double_files + include/GLES/egl.h + include/GLES/gl.h + include/GLES/glext.h + include/GLES/glplatform.h + include/GLES2/gl2.h + include/GLES2/gl2ext.h + include/GLES2/gl2platform.h + include/GLES3/gl3.h + include/GLES3/gl31.h + include/GLES3/gl32.h + include/GLES3/gl3platform.h) +foreach(_file ${_double_files}) + if(EXISTS "${CURRENT_PACKAGES_DIR}/${_file}") + file(REMOVE "${CURRENT_PACKAGES_DIR}/${_file}") + endif() +endforeach() + + From 6b7154d0bd951c8ed7b15a947eed72672ef3c4b6 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 7 Feb 2020 13:31:35 +0100 Subject: [PATCH 03/12] update egl-registry --- ports/egl-registry/CONTROL | 2 +- ports/egl-registry/portfile.cmake | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ports/egl-registry/CONTROL b/ports/egl-registry/CONTROL index 64b4745a4490dd..dad0d9d20c11eb 100644 --- a/ports/egl-registry/CONTROL +++ b/ports/egl-registry/CONTROL @@ -1,3 +1,3 @@ Source: egl-registry -Version: 2019-08-08 +Version: 2020-02-03 Description: the EGL API and Extension Registry diff --git a/ports/egl-registry/portfile.cmake b/ports/egl-registry/portfile.cmake index 9c7265d6b9f6d4..68f6a2ee8f2e7d 100644 --- a/ports/egl-registry/portfile.cmake +++ b/ports/egl-registry/portfile.cmake @@ -3,8 +3,8 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO KhronosGroup/EGL-Registry - REF 598f20e3b7b7eec3e8d8a83e64b9592a21c55bb6 - SHA512 360aa2399fec12ad23c5e4bce7e9287a9b1b1d98ba6c326dde2b1bc1c32735bc6933ca8e5c626ba421cda5aac216bc7c268e064cf0dd67605a23151e29ba1f36 + REF aa9b63f3ab18aee92c95786a2478156430f809e4 + SHA512 5ee7143c2cb46defbe1b2ecb0fabfb52fac2d9529b98c638dd4c04a312a62e7f7b3aee27d9749c92174ab967d533136b5881ce37ae9f2bee6685f52ffa8c8db6 HEAD_REF master ) From daad7a151716250f7e16807fb2f132d05aa48552 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 7 Feb 2020 13:59:22 +0100 Subject: [PATCH 04/12] fix osx regression --- 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 cfdcbac606fb3b..61dde973b9e8bd 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -216,7 +216,7 @@ elseif(APPLE) find_library(IOKit IOKit) find_library(CoreFoundation CoreFoundation) find_library(CoreGraphics CoreGraphics) - target_link_libraries(angle_gpu_info_util OBJECT ${IOKit} ${CoreFoundation} ${CoreGraphics}) + target_link_libraries(angle_gpu_info_util PRIVATE ${IOKit} ${CoreFoundation} ${CoreGraphics}) elseif(LINUX) target_sources(angle_gpu_info_util PRIVATE "src/gpu_info_util/SystemInfo_linux.cpp" "src/gpu_info_util/SystemInfo_x11.cpp") target_compile_definitions(angle_gpu_info_util PRIVATE GPU_INFO_USE_X11) From 7378a52c22fa7263fa85dc1dca5615ab8e5bd271 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 7 Feb 2020 14:01:30 +0100 Subject: [PATCH 05/12] update baseline. --- scripts/ci.baseline.txt | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index af6569c83e2eaa..d9e76baf523873 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -64,14 +64,6 @@ ampl-mp:arm-uwp=fail ampl-mp:x64-uwp=fail angelscript:arm64-windows=fail angelscript:arm-uwp=fail - -# Conflicts with qt5-base and ms-angle -angle:arm64-windows = skip -angle:arm-uwp = skip -angle:x64-uwp = skip -angle:x64-windows = skip -angle:x64-windows-static = skip -angle:x86-windows = skip antlr4:arm64-windows=fail antlr4:arm-uwp=fail antlr4:x64-uwp=fail @@ -1119,8 +1111,8 @@ mpir:x64-uwp=fail #Conflicts with angle and qt-5base ms-angle:arm64-windows = skip ms-angle:arm-uwp = skip -ms-angle:x64-linux = fail -ms-angle:x64-osx = fail +ms-angle:x64-linux = skip +ms-angle:x64-osx = skip ms-angle:x64-uwp = skip ms-angle:x64-windows = skip ms-angle:x64-windows-static = skip From b02b22183278d88d1b86a271d70577ed7f84857f Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Mon, 10 Feb 2020 10:14:39 +0100 Subject: [PATCH 06/12] fix uwp regressions --- ports/angle/CMakeLists.txt | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index 61dde973b9e8bd..d1e96b12224f84 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -420,24 +420,24 @@ 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 angle_renderer_opengl EXPORT ANGLEExport +install(TARGETS libEGL libGLESv2 libANGLE angle_common angle_image_util angle_gpu_info_util angle_translator angle_preprocessor EXPORT ANGLEExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) if(WINDOWS_DESKTOP) -install(TARGETS angle_renderer_d3d angle_renderer_win32 EXPORT ANGLEExport - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib -) + install(TARGETS angle_renderer_d3d angle_renderer_win32 angle_renderer_opengl EXPORT ANGLEExport + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) elseif(WINDOWS_STORE) -install(TARGETS angle_renderer_d3d angle_renderer_win32 EXPORT ANGLEExport - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib -) + install(TARGETS angle_renderer_d3d angle_renderer_winrt EXPORT ANGLEExport + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endif() install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle) From c0f29624a1a76cd53c5d4226434035079bf6e767 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Mon, 10 Feb 2020 10:44:15 +0100 Subject: [PATCH 07/12] fix osx and linux regression --- ports/angle/CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index d1e96b12224f84..bc934cd61a93f2 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -438,6 +438,12 @@ elseif(WINDOWS_STORE) LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) +else() + install(TARGETS angle_renderer_opengl EXPORT ANGLEExport + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib + ) endif() install(EXPORT ANGLEExport FILE unofficial-angle-config.cmake NAMESPACE unofficial::angle:: DESTINATION share/unofficial-angle) From fed2871a88158863c6e5999dedeb3e291cb5784c Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Thu, 20 Feb 2020 11:23:50 +0100 Subject: [PATCH 08/12] add encoding patch --- ports/glad/encoding.patch | 13 +++++++++++++ ports/glad/portfile.cmake | 1 + 2 files changed, 14 insertions(+) create mode 100644 ports/glad/encoding.patch diff --git a/ports/glad/encoding.patch b/ports/glad/encoding.patch new file mode 100644 index 00000000000000..0497cc79ae2153 --- /dev/null +++ b/ports/glad/encoding.patch @@ -0,0 +1,13 @@ +diff --git a/glad/__main__.py b/glad/__main__.py +index e7c0544a5..1e10dcc60 100644 +--- a/glad/__main__.py ++++ b/glad/__main__.py +@@ -32,7 +32,7 @@ def main(): + if reproducible: + logger.info('reproducible build, using packaged specification: \'%s.xml\'', value) + try: +- return spec_cls.from_file(glad.files.open_local(value + '.xml')) ++ return spec_cls.from_file(glad.files.open_local(value + '.xml', encoding='utf-8-sig')) + except IOError: + raise ValueError('unable to open reproducible copy of {}.xml, ' + 'try dropping --reproducible'.format(value)) diff --git a/ports/glad/portfile.cmake b/ports/glad/portfile.cmake index 9f08fe660043e8..1c14ca77fbfd0c 100644 --- a/ports/glad/portfile.cmake +++ b/ports/glad/portfile.cmake @@ -6,6 +6,7 @@ vcpkg_from_github( REF de6c39e3040c987323b8ed078c36442f4fb681b3 SHA512 a24523186d59de5c0895791c639c62573eaacf1d3843d3bf81eba848b4a33a9a8d17f9b6f791202dac77692bf147e25b3650989731d5ddb7a22e7d023b66885e HEAD_REF master + PATCHES encoding.patch ) vcpkg_find_acquire_program(PYTHON3) From 933750808a645637f7406b4886b808e2d473aac5 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Thu, 20 Feb 2020 11:24:26 +0100 Subject: [PATCH 09/12] bump glad control --- ports/glad/CONTROL | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ports/glad/CONTROL b/ports/glad/CONTROL index dc556e13d55255..a0d234f36587cd 100644 --- a/ports/glad/CONTROL +++ b/ports/glad/CONTROL @@ -1,5 +1,5 @@ Source: glad -Version: 0.1.33 +Version: 0.1.33-1 Description: Multi-Language Vulkan/GL/GLES/EGL/GLX/WGL Loader-Generator based on the official specs. Build-Depends: egl-registry, opengl-registry Homepage: https://github.com/Dav1dde/glad From d842d77ebe44b515c7c363ede5f82aa78c9ab69f Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 21 Feb 2020 14:08:00 +0100 Subject: [PATCH 10/12] rechdeck gl visibility from native build --- ports/angle/CMakeLists.txt | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/ports/angle/CMakeLists.txt b/ports/angle/CMakeLists.txt index bc934cd61a93f2..7d906aac3d0aee 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -399,21 +399,31 @@ target_compile_definitions(libEGL "-DEGL_EGL_PROTOTYPES=1" "-DEGL_EGLEXT_PROTOTYPES" ) -if(BUILD_SHARED_LIBS) -else() - if(WIN32) - target_compile_definitions(libEGL PRIVATE +add_library(GL_VISIBILITY INTERFACE) +if(WIN32) + target_compile_definitions(GL_VISIBILITY INTERFACE "-DGL_API=" - "-DGL_APICALL=" - "-DEGLAPI=" - ) - else() - target_compile_definitions(libEGL PRIVATE + "-DGL_APICALL=") +else() + target_compile_definitions(GL_VISIBILITY INTERFACE "-DGL_API=__attribute__((visibility(\"default\")))" - "-DGL_APICALL=__attribute__((visibility(\"default\")))" - "-DEGLAPI=__attribute__((visibility(\"default\")))" - ) - endif() + "-DGL_APICALL=__attribute__((visibility(\"default\")))") +endif() +target_link_libraries(libEGL PRIVATE GL_VISIBILITY) +target_link_libraries(libGLESv2 PRIVATE GL_VISIBILITY) + +if(WIN32) + target_compile_definitions(libEGL PRIVATE + "-DEGLAPI=" + ) +else() + target_compile_definitions(libEGL PRIVATE + "-DEGLAPI=__attribute__((visibility(\"default\")))" + ) +endif() + +if(NOT BUILD_SHARED_LIBS) + add_definitions("-DANGLE_EXPORT=" "-DANGLE_UTIL_EXPORT=" "-DEGLAPI=" "-DGL_APICALL=" "-DGL_API=") endif() SET_TARGET_PROPERTIES(libANGLE PROPERTIES PREFIX "") From cb08450fee4bad8c562a1fe2b289e3b97401c17b Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 21 Feb 2020 14:08:21 +0100 Subject: [PATCH 11/12] removed unnecessary commented code --- ports/angle/portfile.cmake | 2 -- 1 file changed, 2 deletions(-) diff --git a/ports/angle/portfile.cmake b/ports/angle/portfile.cmake index 3f2b40c31ffa99..a5b4ab486f61da 100644 --- a/ports/angle/portfile.cmake +++ b/ports/angle/portfile.cmake @@ -1,5 +1,3 @@ -#vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) - if (VCPKG_TARGET_IS_LINUX) message(WARNING "Building with a gcc version less than 6.1 is not supported.") endif() From 18a6c2a300e9c57efc3652a9f088f1e84df237c3 Mon Sep 17 00:00:00 2001 From: Alexander Neumann Date: Fri, 21 Feb 2020 14:14:29 +0100 Subject: [PATCH 12/12] add GL_VISIBILITY to the exported targets --- 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 7d906aac3d0aee..a9b8f07b9d42df 100644 --- a/ports/angle/CMakeLists.txt +++ b/ports/angle/CMakeLists.txt @@ -430,7 +430,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 EXPORT ANGLEExport +install(TARGETS libEGL libGLESv2 libANGLE angle_common angle_image_util angle_gpu_info_util angle_translator angle_preprocessor GL_VISIBILITY EXPORT ANGLEExport RUNTIME DESTINATION bin LIBRARY DESTINATION lib ARCHIVE DESTINATION lib