[GTK] Manette_INCLUDE_DIR and Manette_LIBRARY are undefined.
authorchangseok@webkit.org <changseok@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 May 2020 17:52:36 +0000 (17:52 +0000)
committerchangseok@webkit.org <changseok@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 27 May 2020 17:52:36 +0000 (17:52 +0000)
https://bugs.webkit.org/show_bug.cgi?id=212236

Reviewed by Michael Catanzaro.

The cmake complains Manette_INCLUDE_DIR and Manette_LIBRARY are missing
in finding the manette package where GAMEPAD is enabled for the gtk port.
In r261965, we thought they would be automatically defined with IMPORTED_TARGET
but they seem not. We explicitly find the header and library paths, following FindOpenJPEG.cmake.

* Source/cmake/FindManette.cmake:
* Source/cmake/OptionsGTK.cmake: REQUIRED removed.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@262201 268f45cc-cd09-0410-ab3c-d52691b4dbfc

ChangeLog
Source/cmake/FindManette.cmake
Source/cmake/OptionsGTK.cmake

index 4fc10d0..da2da49 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2020-05-27  ChangSeok Oh  <changseok@webkit.org>
+
+        [GTK] Manette_INCLUDE_DIR and Manette_LIBRARY are undefined.
+        https://bugs.webkit.org/show_bug.cgi?id=212236
+
+        Reviewed by Michael Catanzaro.
+
+        The cmake complains Manette_INCLUDE_DIR and Manette_LIBRARY are missing
+        in finding the manette package where GAMEPAD is enabled for the gtk port.
+        In r261965, we thought they would be automatically defined with IMPORTED_TARGET
+        but they seem not. We explicitly find the header and library paths, following FindOpenJPEG.cmake.
+
+        * Source/cmake/FindManette.cmake:
+        * Source/cmake/OptionsGTK.cmake: REQUIRED removed.
+
 2020-05-26  Fujii Hironori  <Hironori.Fujii@sony.com>
 
         [WinCairo][WK2] Use GraphicsLayerTextureMapper for Accelerated Compositing mode
index e834c0a..503179b 100644 (file)
@@ -53,7 +53,38 @@ This will define the following variables in your project:
 #]=======================================================================]
 
 find_package(PkgConfig)
-pkg_check_modules(PC_MANETTE IMPORTED_TARGET manette-0.2)
+pkg_check_modules(PC_MANETTE QUIET manette-0.2)
+set(Manette_COMPILE_OPTIONS ${PC_MANETTE_CFLAGS_OTHER})
+set(Manette_VERSION ${PC_MANETTE_VERSION})
+
+find_path(Manette_INCLUDE_DIR
+    NAMES libmanette.h
+    HINTS ${PC_MANETTE_INCLUDEDIR}
+          ${PC_MANETTE_INCLUDE_DIRS}
+)
+
+find_library(Manette_LIBRARY
+    NAMES ${Manette_NAMES} manette-0.2
+    HINTS ${PC_MANETTE_LIBDIR}
+          ${PC_MANETTE_LIBRARY_DIRS}
+)
+
+if (Manette_INCLUDE_DIR AND NOT Manette_VERSION)
+    if (EXISTS "${Manette_INCLUDE_DIR}/manette-version.h")
+        file(READ "${Manette_INCLUDE_DIR}/manette-version.h" Manette_VERSION_CONTENT)
+
+        string(REGEX MATCH "#define +LIBMANETTE_MAJOR_VERSION +([0-9]+)" _dummy "${Manette_VERSION_CONTENT}")
+        set(Manette_VERSION_MAJOR "${CMAKE_MATCH_1}")
+
+        string(REGEX MATCH "#define +LIBMANETTE_MINOR_VERSION +([0-9]+)" _dummy "${Manette_VERSION_CONTENT}")
+        set(Manette_VERSION_MINOR "${CMAKE_MATCH_1}")
+
+        string(REGEX MATCH "#define +LIBMANETTE_MICRO_VERSION +([0-9]+)" _dummy "${Manette_VERSION_CONTENT}")
+        set(Manette_VERSION_PATCH "${CMAKE_MATCH_1}")
+
+        set(Manette_VERSION "${Manette_VERSION_MAJOR}.${Manette_VERSION_MINOR}.${Manette_VERSION_PATCH}")
+    endif ()
+endif ()
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(Manette
@@ -62,11 +93,18 @@ find_package_handle_standard_args(Manette
     VERSION_VAR Manette_VERSION
 )
 
-if (TARGET PkgConfig::PC_MANETTE AND NOT TARGET Manette::Manette)
-    add_library(Manette::Manette INTERFACE IMPORTED GLOBAL)
-    set_property(TARGET Manette::Manette PROPERTY
-        INTERFACE_LINK_LIBRARIES PkgConfig::PC_MANETTE
+if (Manette_LIBRARY AND NOT TARGET Manette::Manette)
+    add_library(Manette::Manette UNKNOWN IMPORTED GLOBAL)
+    set_target_properties(Manette::Manette PROPERTIES
+        IMPORTED_LOCATION "${Manette_LIBRARY}"
+        INTERFACE_COMPILE_OPTIONS "${Manette_COMPILE_OPTIONS}"
+        INTERFACE_INCLUDE_DIRECTORIES "${Manette_INCLUDE_DIR}"
     )
 endif ()
 
 mark_as_advanced(Manette_INCLUDE_DIR Manette_LIBRARY)
+
+if (Manette_FOUND)
+    set(Manette_LIBRARIES ${Manette_LIBRARY})
+    set(Manette_INCLUDE_DIRS ${Manette_INCLUDE_DIR})
+endif ()
index 7570fbc..2f89177 100644 (file)
@@ -246,7 +246,7 @@ if (USE_WPE_RENDERER)
 endif ()
 
 if (ENABLE_GAMEPAD)
-    find_package(Manette 0.2.4 REQUIRED)
+    find_package(Manette 0.2.4)
     if (NOT Manette_FOUND)
         message(FATAL_ERROR "libmanette is required for ENABLE_GAMEPAD")
     endif ()