-
Notifications
You must be signed in to change notification settings - Fork 7.6k
[angle] Improve port #9965
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[angle] Improve port #9965
Changes from 2 commits
48459c6
4cf39b0
6b7154d
daad7a1
7378a52
b02b221
d3c0588
c0f2962
fed2871
9337508
d842d77
cb08450
18a6c2a
c4089f9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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("$<INSTALL_INTERFACE:include>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>") | ||
| ########## | ||
| # 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 "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/common/third_party/base>") | ||
| 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 "$<BUILD_INTERFACE:${LIBANGLE_GL_SOURCES}>") | ||
| 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 "$<BUILD_INTERFACE:${LIBANGLE_D3D_WINRT_SOURCES}>") | ||
| 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 "$<BUILD_INTERFACE:${LIBANGLE_D3D_DESKTOP_SOURCES}>") | ||
| 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 "$<BUILD_INTERFACE:${LIBANGLE_D3D_SOURCES}>") | ||
| 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 "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/third_party/khronos>") | ||
| 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 "$<INSTALL_INTERFACE:include>") | ||
|
|
||
| ########## | ||
|
|
@@ -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 "$<INSTALL_INTERFACE:include>") | ||
| target_include_directories(libEGL PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>") | ||
|
|
||
| target_include_directories(libEGL PUBLIC "$<INSTALL_INTERFACE:include>" "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>") | ||
| 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 | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Even when using x64-windows triplet which uses dynamic linkage, libANGLE.lib is put into installed\x64-windows\lib |
||
| 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) | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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 |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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 |
Uh oh!
There was an error while loading. Please reload this page.