Am Samstag, 9. Juli 2016 um 21:26:51, schrieb Enrico Forestieri <for...@lyx.org>
> A more safe approach is based on looking at QtCore/qconfig.h, which
> directly tells you what is the default backend. Indeed it contains
> #define QT_QPA_DEFAULT_PLATFORM_NAME "xcb"
> if X11 is the backend.

OK, next try.

        Kornel

Attachment: signature.asc
Description: This is a digitally signed message part.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 76cbdde..74d0ac8 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -925,11 +925,6 @@ endif()
 include(${LYX_CMAKE_DIR}/ConfigureChecks.cmake)
 configure_file(${LYX_CMAKE_DIR}/configCompiler.h.cmake ${TOP_BINARY_DIR}/configCompiler.h)
 
-set(QPA_XCB)
-if(Qt5X11Extras_FOUND AND QT_USES_X11)
-  # QPA_XCB is only valid if QT5+X11
-  set(QPA_XCB 1)
-endif()
 configure_file(${LYX_CMAKE_DIR}/config.h.cmake ${TOP_BINARY_DIR}/config.h)
 
 if(QTVERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*")
diff --git a/development/cmake/ConfigureChecks.cmake b/development/cmake/ConfigureChecks.cmake
index 46d3f80..2d5c166 100644
--- a/development/cmake/ConfigureChecks.cmake
+++ b/development/cmake/ConfigureChecks.cmake
@@ -12,6 +12,7 @@ include(CheckFunctionExists)
 include(CheckLibraryExists)
 include(CheckTypeSize)
 include(CheckCXXSourceCompiles)
+include(CheckCXXSourceRuns)
 include(MacroBoolTo01)
 include(TestBigEndian)
 
@@ -197,7 +198,30 @@ else()
   endif()
 endif()
 
+set(QPA_XCB)
+set(HAVE_QT5_X11_EXTRAS)
 if(LYX_USE_QT MATCHES "QT5")
+
+  set(CMAKE_REQUIRED_INCLUDES ${Qt5Core_INCLUDE_DIRS})
+  set(CMAKE_REQUIRED_FLAGS)
+  #message(STATUS "Qt5Core_INCLUDE_DIRS = ${Qt5Core_INCLUDE_DIRS}")
+  check_cxx_source_runs(
+    "
+    #include <QtCore/qconfig.h>
+    #include <string>
+    using namespace std;
+    string a(QT_QPA_DEFAULT_PLATFORM_NAME);
+    int main(int argc, char **argv)
+    {
+      if (a.compare(\"xcb\") == 0)
+	return(0);
+      else
+	return 1;
+    }
+    "
+    QT_XCB_FOUND)
+    set(QPA_XCB ${QT_XCB_FOUND})
+
   if (Qt5X11Extras_FOUND)
     get_target_property(_x11extra_prop Qt5::X11Extras IMPORTED_CONFIGURATIONS)
     get_target_property(_x11extra_link_libraries Qt5::X11Extras IMPORTED_LOCATION_${_x11extra_prop})
@@ -216,6 +240,7 @@ if(LYX_USE_QT MATCHES "QT5")
             }
             "
     QT_USES_X11)
+    set(HAVE_QT5_X11_EXTRAS ${QT_USES_X11})
   endif()
   if (Qt5WinExtras_FOUND)
     get_target_property(_winextra_prop Qt5::WinExtras IMPORTED_CONFIGURATIONS)

Reply via email to