[CMake] Add WOFF2 targets
https://bugs.webkit.org/show_bug.cgi?id=213865
Reviewed by Fujii Hironori.
.:
Rework the Find module for WOFF2 to provide targets for libwoff2common and
libwoff2dec. Previously only libwoff2dec was specified in the find module. This
is because pkg-config works on that platform and because shared libraries are
supported. Neither is true for Windows so the module was expanded in anticipation
of support for WinCairo.
* Source/cmake/FindWOFF2.cmake: Added.
* Source/cmake/FindWOFF2Dec.cmake: Removed.
* Source/cmake/OptionsGTK.cmake:
* Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Use the WOFF:: targets when USE_WOFF2 is set.
* CMakeLists.txt:
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@263829 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/ChangeLog b/ChangeLog
index 64a9482..dea99fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2020-07-01 Don Olmstead <don.olmstead@sony.com>
+
+ [CMake] Add WOFF2 targets
+ https://bugs.webkit.org/show_bug.cgi?id=213865
+
+ Reviewed by Fujii Hironori.
+
+ Rework the Find module for WOFF2 to provide targets for libwoff2common and
+ libwoff2dec. Previously only libwoff2dec was specified in the find module. This
+ is because pkg-config works on that platform and because shared libraries are
+ supported. Neither is true for Windows so the module was expanded in anticipation
+ of support for WinCairo.
+
+ * Source/cmake/FindWOFF2.cmake: Added.
+ * Source/cmake/FindWOFF2Dec.cmake: Removed.
+ * Source/cmake/OptionsGTK.cmake:
+ * Source/cmake/OptionsWPE.cmake:
+
2020-06-30 Andres Gonzalez <andresg_22@apple.com>
Code cleanup in AccessibilityMenuList.cpp and AXIsolatedTree.h.
diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt
index 5aa5ffe..68cfcf0 100644
--- a/Source/WebCore/CMakeLists.txt
+++ b/Source/WebCore/CMakeLists.txt
@@ -1550,8 +1550,7 @@
endif ()
if (USE_WOFF2)
- list(APPEND WebCore_PRIVATE_INCLUDE_DIRECTORIES "${WOFF2DEC_INCLUDE_DIRS}")
- list(APPEND WebCore_LIBRARIES "${WOFF2DEC_LIBRARIES}")
+ list(APPEND WebCore_LIBRARIES WOFF2::dec)
endif ()
if (USE_XDGMIME)
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index f8b2c58..bb57336 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,14 @@
+2020-07-01 Don Olmstead <don.olmstead@sony.com>
+
+ [CMake] Add WOFF2 targets
+ https://bugs.webkit.org/show_bug.cgi?id=213865
+
+ Reviewed by Fujii Hironori.
+
+ Use the WOFF:: targets when USE_WOFF2 is set.
+
+ * CMakeLists.txt:
+
2020-07-01 Chris Fleizach <cfleizach@apple.com>
AX: Implement relevant simulated key presses for custom ARIA widgets for increment/decrement
diff --git a/Source/cmake/FindWOFF2.cmake b/Source/cmake/FindWOFF2.cmake
new file mode 100644
index 0000000..cb8cb18
--- /dev/null
+++ b/Source/cmake/FindWOFF2.cmake
@@ -0,0 +1,166 @@
+# Copyright (C) 2020 Sony Interactive Entertainment Inc.
+# Copyright (C) 2017 Igalia S.L.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS
+# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#[=======================================================================[.rst:
+FindWOFF2
+--------------
+
+Find WOFF2 headers and libraries.
+
+Imported Targets
+^^^^^^^^^^^^^^^^
+
+``WOFF2::common``
+ The WOFF2 common library, if found.
+
+``WOFF2::dec``
+ The WOFF2 dec library, if found.
+
+Result Variables
+^^^^^^^^^^^^^^^^
+
+This will define the following variables in your project:
+
+``WOFF2_FOUND``
+ true if (the requested version of) WOFF2 is available.
+``WOFF2_VERSION``
+ the version of WOFF2.
+``WOFF2_LIBRARIES``
+ the libraries to link against to use WOFF2.
+``WOFF2_INCLUDE_DIRS``
+ where to find the WOFF2 headers.
+``WOFF2_COMPILE_OPTIONS``
+ this should be passed to target_compile_options(), if the
+ target is not used for linking
+
+#]=======================================================================]
+
+find_package(PkgConfig QUIET)
+pkg_check_modules(PC_WOFF2 QUIET libwoff2common)
+set(WOFF2_COMPILE_OPTIONS ${PC_WOFF2_CFLAGS_OTHER})
+set(WOFF2_VERSION ${PC_WOFF2_CFLAGS_VERSION})
+
+find_library(WOFF2_LIBRARY
+ NAMES ${WOFF2_NAMES} woff2common
+ HINTS ${PC_WOFF2_LIBDIR} ${PC_WOFF2_LIBRARY_DIRS}
+)
+
+# There's nothing in the WOFF2 headers that could be used to detect the exact
+# WOFF2 version being used so don't attempt to do so. A version can only be found
+# through pkg-config
+if ("${WOFF2_FIND_VERSION}" VERSION_GREATER "${WOFF2_VERSION}")
+ if (WOFF2_VERSION)
+ message(FATAL_ERROR "Required version (" ${WOFF2_FIND_VERSION} ") is higher than found version (" ${WOFF2_VERSION} ")")
+ else ()
+ message(WARNING "Cannot determine WOFF2 version without pkg-config")
+ endif ()
+endif ()
+
+# Find components
+if (WOFF2_LIBRARY)
+ set(_WOFF2_REQUIRED_LIBS_FOUND ON)
+ set(WOFF2_LIBS_FOUND "WOFF2 (required): ${WOFF2_LIBRARY}")
+else ()
+ set(_WOFF2_REQUIRED_LIBS_FOUND OFF)
+ set(WOFF2_LIBS_NOT_FOUND "WOFF2 (required)")
+endif ()
+
+if ("dec" IN_LIST WOFF2_FIND_COMPONENTS)
+ pkg_check_modules(PC_WOFF2_DEC libwoff2dec)
+
+ find_path(WOFF2_INCLUDE_DIR
+ NAMES woff2/decode.h
+ HINTS ${PC_WOFF2_DEC_INCLUDEDIR} ${PC_WOFF2_DEC_INCLUDE_DIRS}
+ )
+
+ find_library(WOFF2_DEC_LIBRARY
+ NAMES ${WOFF2_DEC_NAMES} woff2dec
+ HINTS ${PC_WOFF2_DEC_LIBDIR} ${PC_WOFF2_DEC_LIBRARY_DIRS}
+ )
+
+ if (WOFF2_DEC_LIBRARY)
+ if (WOFF2_FIND_REQUIRED_dec)
+ list(APPEND WOFF2_LIBS_FOUND "dec (required): ${WOFF2_DEC_LIBRARY}")
+ else ()
+ list(APPEND WOFF2_LIBS_FOUND "dec (optional): ${WOFF2_DEC_LIBRARY}")
+ endif ()
+ else ()
+ if (WOFF2_FIND_REQUIRED_dec)
+ set(_WOFF2_REQUIRED_LIBS_FOUND OFF)
+ list(APPEND WOFF2_LIBS_NOT_FOUND "dec (required)")
+ else ()
+ list(APPEND WOFF2_LIBS_NOT_FOUND "dec (optional)")
+ endif ()
+ endif ()
+endif ()
+
+if (NOT WOFF2_FIND_QUIETLY)
+ if (WOFF2_LIBS_FOUND)
+ message(STATUS "Found the following WOFF2 libraries:")
+ foreach (found ${WOFF2_LIBS_FOUND})
+ message(STATUS " ${found}")
+ endforeach ()
+ endif ()
+ if (WOFF2_LIBS_NOT_FOUND)
+ message(STATUS "The following WOFF2 libraries were not found:")
+ foreach (found ${WOFF2_LIBS_NOT_FOUND})
+ message(STATUS " ${found}")
+ endforeach ()
+ endif ()
+endif ()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(WOFF2
+ FOUND_VAR WOFF2_FOUND
+ REQUIRED_VARS WOFF2_LIBRARY _WOFF2_REQUIRED_LIBS_FOUND
+ VERSION_VAR WOFF2_VERSION
+)
+
+if (WOFF2_LIBRARY AND NOT TARGET WOFF2::common)
+ add_library(WOFF2::common UNKNOWN IMPORTED GLOBAL)
+ set_target_properties(WOFF2::common PROPERTIES
+ IMPORTED_LOCATION "${WOFF2_LIBRARY}"
+ INTERFACE_COMPILE_OPTIONS "${WOFF2_COMPILE_OPTIONS}"
+ )
+endif ()
+
+if (WOFF2_DEC_LIBRARY AND NOT TARGET WOFF2::dec)
+ add_library(WOFF2::dec UNKNOWN IMPORTED GLOBAL)
+ set_target_properties(WOFF2::dec PROPERTIES
+ IMPORTED_LOCATION "${WOFF2_DEC_LIBRARY}"
+ INTERFACE_COMPILE_OPTIONS "${WOFF2_COMPILE_OPTIONS}"
+ INTERFACE_INCLUDE_DIRECTORIES "${WOFF2_DEC_INCLUDE_DIR}"
+ )
+endif ()
+
+mark_as_advanced(
+ WOFF2_LIBRARY
+ WOFF2_DEC_INCLUDE_DIR
+ WOFF2_DEC_LIBRARY
+)
+
+if (WOFF2_FOUND)
+ set(WOFF2_LIBRARIES ${WOFF2_LIBRARY} ${WOFF2_DEC_LIBRARY})
+ set(WOFF2_INCLUDE_DIRS ${WOFF2_INCLUDE_DIR})
+endif ()
diff --git a/Source/cmake/FindWOFF2Dec.cmake b/Source/cmake/FindWOFF2Dec.cmake
deleted file mode 100644
index 48673a4..0000000
--- a/Source/cmake/FindWOFF2Dec.cmake
+++ /dev/null
@@ -1,53 +0,0 @@
-# - Try to find WOFF2Dec.
-# Once done, this will define
-#
-# WOFF2DEC_FOUND - system has WOFF2Dec.
-# WOFF2DEC_INCLUDE_DIRS - the WOFF2Dec include directories
-# WOFF2DEC_LIBRARIES - link these to use WOFF2Dec.
-#
-# Copyright (C) 2017 Igalia S.L.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS
-# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS
-# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
-# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-find_package(PkgConfig QUIET)
-pkg_check_modules(PC_WOFF2DEC libwoff2dec)
-
-find_path(WOFF2DEC_INCLUDE_DIRS
- NAMES woff2/decode.h
- HINTS ${PC_WOFF2DEC_INCLUDEDIR}
-)
-
-find_library(WOFF2DEC_LIBRARIES
- NAMES woff2dec
- HINTS ${PC_WOFF2DEC_LIBDIR}
-)
-
-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(WOFF2Dec
- REQUIRED_VARS WOFF2DEC_INCLUDE_DIRS WOFF2DEC_LIBRARIES
- FOUND_VAR WOFF2DEC_FOUND
- VERSION_VAR PC_WOFF2DEC_VERSION)
-
-mark_as_advanced(
- WOFF2DEC_INCLUDE_DIRS
- WOFF2DEC_LIBRARIES
-)
diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake
index 4175d6c..cd8934b 100644
--- a/Source/cmake/OptionsGTK.cmake
+++ b/Source/cmake/OptionsGTK.cmake
@@ -412,8 +412,8 @@
endif ()
if (USE_WOFF2)
- find_package(WOFF2Dec 1.0.2)
- if (NOT WOFF2DEC_FOUND)
+ find_package(WOFF2 1.0.2 COMPONENTS dec)
+ if (NOT WOFF2_FOUND)
message(FATAL_ERROR "libwoff2dec is needed for USE_WOFF2.")
endif ()
endif ()
diff --git a/Source/cmake/OptionsWPE.cmake b/Source/cmake/OptionsWPE.cmake
index 1e32f16..b8adb87 100644
--- a/Source/cmake/OptionsWPE.cmake
+++ b/Source/cmake/OptionsWPE.cmake
@@ -143,8 +143,8 @@
endif ()
if (USE_WOFF2)
- find_package(WOFF2Dec 1.0.2)
- if (NOT WOFF2DEC_FOUND)
+ find_package(WOFF2 1.0.2 COMPONENTS dec)
+ if (NOT WOFF2_FOUND)
message(FATAL_ERROR "liwoff2dec is needed for USE_WOFF2.")
endif ()
endif ()