Title: [278726] trunk/Source/ThirdParty/ANGLE
Revision
278726
Author
[email protected]
Date
2021-06-10 13:17:19 -0700 (Thu, 10 Jun 2021)

Log Message

[CMake] Make ANGLE library types configurable
https://bugs.webkit.org/show_bug.cgi?id=226840

Reviewed by Kenneth Russell.

The type for ANGLE's libraries was being hard coded. Now the libraries can be set by
specifying the _LIBRARY_TYPE which defaults to STATIC. Windows platforms override this
and use SHARED libraries.

Additionally make compiling ANGLE's EGL library contingent on USE_ANGLE_EGL being enabled
since its not used otherwise.

* CMakeLists.txt:
* PlatformFTW.cmake:
* PlatformWin.cmake:

Modified Paths

Diff

Modified: trunk/Source/ThirdParty/ANGLE/CMakeLists.txt (278725 => 278726)


--- trunk/Source/ThirdParty/ANGLE/CMakeLists.txt	2021-06-10 20:13:08 UTC (rev 278725)
+++ trunk/Source/ThirdParty/ANGLE/CMakeLists.txt	2021-06-10 20:17:19 UTC (rev 278726)
@@ -34,6 +34,12 @@
     EGL_EGLEXT_PROTOTYPES
 )
 
+# Default library types for ANGLE
+# Override these in Platform*.cmake for your port as needed.
+set(ANGLE_LIBRARY_TYPE STATIC)
+set(GLESv2_LIBRARY_TYPE STATIC)
+set(EGL_LIBRARY_TYPE STATIC)
+
 # ANGLE makes a number of small static libraries that are then joined into a
 # bigger library that is built shared. Rather than making the small libraries
 # there will be a ANGLE whose sources are dependent on whether the library
@@ -118,7 +124,7 @@
 add_dependencies(ANGLEFramework GLSLANGHeaders ANGLEHeaders)
 
 if (USE_ANGLE_EGL OR USE_ANGLE_WEBGL)
-    add_library(ANGLE STATIC
+    add_library(ANGLE ${ANGLE_LIBRARY_TYPE}
         ${ANGLE_SOURCES}
         ${libangle_sources}
         ${libangle_headers}
@@ -137,7 +143,7 @@
 
     target_compile_definitions(ANGLEFramework INTERFACE ${gl_prototypes})
 
-    add_library(GLESv2 SHARED
+    add_library(GLESv2 ${GLESv2_LIBRARY_TYPE}
         ${libglesv2_sources}
     )
     target_include_directories(GLESv2 PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES})
@@ -146,40 +152,44 @@
         LIBGLESV2_IMPLEMENTATION
     )
     target_link_libraries(GLESv2 PRIVATE ${ANGLEGLESv2_LIBRARIES})
+    if (WIN32)
+        # Output library name according to the .def
+        target_sources(GLESv2 PRIVATE src/libGLESv2/libGLESv2_autogen.def)
+        set_target_properties(GLESv2 PROPERTIES OUTPUT_NAME libGLESv2)
+    endif ()
 
     add_library(GLESv2Framework INTERFACE)
     target_link_libraries(GLESv2Framework INTERFACE GLESv2)
     target_include_directories(GLESv2Framework INTERFACE ${ANGLE_FRAMEWORK_HEADERS_DIR})
+    target_compile_definitions(GLESv2Framework INTERFACE USE_SYSTEM_EGL)
     add_library(ANGLE::GLES ALIAS GLESv2Framework)
 
-    add_library(EGL SHARED
-        ${libegl_sources}
-    )
-    target_include_directories(EGL PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES})
-    target_compile_definitions(EGL PRIVATE
-        ${ANGLE_DEFINITIONS}
-        ${gl_prototypes}
-        EGLAPI=
-    )
-    target_link_libraries(EGL PRIVATE GLESv2)
-    set_target_properties(EGL PROPERTIES LINKER_LANGUAGE CXX)
+    if (USE_ANGLE_EGL)
+        add_library(EGL ${EGL_LIBRARY_TYPE}
+            ${libegl_sources}
+        )
+        target_include_directories(EGL PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES})
+        target_compile_definitions(EGL PRIVATE
+            ${ANGLE_DEFINITIONS}
+            ${gl_prototypes}
+            EGLAPI=
+        )
+        target_link_libraries(EGL PRIVATE GLESv2)
+        set_target_properties(EGL PROPERTIES LINKER_LANGUAGE CXX)
+        if (WIN32)
+            # Output library names according to the .def
+            target_sources(EGL PRIVATE src/libEGL/libEGL.def)
+            set_target_properties(EGL PROPERTIES OUTPUT_NAME libEGL)
+        endif ()
 
-    add_library(EGLFramework INTERFACE)
-    target_include_directories(EGLFramework INTERFACE ${ANGLE_FRAMEWORK_HEADERS_DIR}/)
-    target_compile_definitions(EGLFramework INTERFACE ${gl_prototypes})
-    target_link_libraries(EGLFramework INTERFACE EGL)
-    add_library(ANGLE::EGL ALIAS EGLFramework)
-
-    if (WIN32)
-        target_sources(GLESv2 PRIVATE src/libGLESv2/libGLESv2_autogen.def)
-        target_sources(EGL PRIVATE src/libEGL/libEGL.def)
-
-        # Output library names according to the .def
-        set_target_properties(GLESv2 PROPERTIES OUTPUT_NAME libGLESv2)
-        set_target_properties(EGL PROPERTIES OUTPUT_NAME libEGL)
+        add_library(EGLFramework INTERFACE)
+        target_include_directories(EGLFramework INTERFACE ${ANGLE_FRAMEWORK_HEADERS_DIR}/)
+        target_compile_definitions(EGLFramework INTERFACE ${gl_prototypes})
+        target_link_libraries(EGLFramework INTERFACE EGL)
+        add_library(ANGLE::EGL ALIAS EGLFramework)
     endif ()
 else ()
-    add_library(ANGLE STATIC ${ANGLE_SOURCES})
+    add_library(ANGLE ${ANGLE_LIBRARY_TYPE} ${ANGLE_SOURCES})
     target_include_directories(ANGLE PRIVATE ${ANGLE_PRIVATE_INCLUDE_DIRECTORIES})
     target_link_libraries(ANGLE PRIVATE ${CMAKE_DL_LIBS})
     target_compile_definitions(ANGLE PRIVATE

Modified: trunk/Source/ThirdParty/ANGLE/ChangeLog (278725 => 278726)


--- trunk/Source/ThirdParty/ANGLE/ChangeLog	2021-06-10 20:13:08 UTC (rev 278725)
+++ trunk/Source/ThirdParty/ANGLE/ChangeLog	2021-06-10 20:17:19 UTC (rev 278726)
@@ -1,3 +1,21 @@
+2021-06-10  Don Olmstead  <[email protected]>
+
+        [CMake] Make ANGLE library types configurable
+        https://bugs.webkit.org/show_bug.cgi?id=226840
+
+        Reviewed by Kenneth Russell.
+
+        The type for ANGLE's libraries was being hard coded. Now the libraries can be set by
+        specifying the _LIBRARY_TYPE which defaults to STATIC. Windows platforms override this
+        and use SHARED libraries.
+
+        Additionally make compiling ANGLE's EGL library contingent on USE_ANGLE_EGL being enabled
+        since its not used otherwise.
+
+        * CMakeLists.txt:
+        * PlatformFTW.cmake:
+        * PlatformWin.cmake:
+
 2021-06-02  Kyle Piddington  <[email protected]>
 
         Add 'mix' override with bool-vectors to MSL translator

Modified: trunk/Source/ThirdParty/ANGLE/PlatformFTW.cmake (278725 => 278726)


--- trunk/Source/ThirdParty/ANGLE/PlatformFTW.cmake	2021-06-10 20:13:08 UTC (rev 278725)
+++ trunk/Source/ThirdParty/ANGLE/PlatformFTW.cmake	2021-06-10 20:17:19 UTC (rev 278726)
@@ -29,3 +29,7 @@
 list(APPEND ANGLE_SOURCES ${_d3d9_backend_sources})
 list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_D3D9)
 list(APPEND ANGLEGLESv2_LIBRARIES d3d9)
+
+# Use shared libraries
+set(GLESv2_LIBRARY_TYPE SHARED)
+set(EGL_LIBRARY_TYPE SHARED)

Modified: trunk/Source/ThirdParty/ANGLE/PlatformWin.cmake (278725 => 278726)


--- trunk/Source/ThirdParty/ANGLE/PlatformWin.cmake	2021-06-10 20:13:08 UTC (rev 278725)
+++ trunk/Source/ThirdParty/ANGLE/PlatformWin.cmake	2021-06-10 20:17:19 UTC (rev 278726)
@@ -29,3 +29,7 @@
 list(APPEND ANGLE_SOURCES ${_d3d9_backend_sources})
 list(APPEND ANGLE_DEFINITIONS ANGLE_ENABLE_D3D9)
 list(APPEND ANGLEGLESv2_LIBRARIES d3d9)
+
+# Use shared libraries
+set(GLESv2_LIBRARY_TYPE SHARED)
+set(EGL_LIBRARY_TYPE SHARED)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to