Skip to contentSkip to conversation

cmake: fix configure error if system Qt installation is broken

PATCH In review Paul Eggleton 2 participants 2 messages Jul 4, 2013 – Jul 10, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 cmake: fix configure error if system Qt installation is broken

If the host Qt installation exists but is incomplete or the installed qmake architecture doesn't match that of the Qt libraries, cmake was failing at do_configure. cmake 2.8.10 failed silently here so we should make 2.8.11 do the same.

Fixes [YOCTO #4565].

---
 meta/recipes-devtools/cmake/cmake.inc              |  1 +
 .../cmake/cmake/qt4-fail-silent.patch              | 55 ++++++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch
meta/recipes-devtools/cmake/cmake.inc +1 -0
index 6144d51..014ff5a 100644
@@ -15,6 +15,7 @@ SRC_URI = "http://www.cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz
            file://support-oe-qt4-tools-names.patch \
            file://aarch64-cmake.patch \
            file://aarch64-kwsys.patch \
+           file://qt4-fail-silent.patch \
            "
 
 inherit autotools
meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch new file +55 -0

55 lines not on this page · raw message

Signature · 1 line
1.8.1.2
#1 lore raw
Quoted 4 lines · Paul Eggleton

If the host Qt installation exists but is incomplete or the installed qmake architecture doesn't match that of the Qt libraries, cmake was failing at do_configure. cmake 2.8.10 failed silently here so we should make 2.8.11 do the same.

FWIW: I was seeing this issue in my jenkins builds once and then before I've included this patch to test it, it was gone and I haven't seen it anymore. I believe this patch is correct, just saying that building some recipe (maybe qt4-native) before cmake-native also "hides" this issue.

Quoted 89 lines

Fixes [YOCTO #4565].

---
 meta/recipes-devtools/cmake/cmake.inc              |  1 +
 .../cmake/cmake/qt4-fail-silent.patch              | 55 ++++++++++++++++++++++
 2 files changed, 56 insertions(+)
 create mode 100644 meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch
meta/recipes-devtools/cmake/cmake.inc +1 -0
index 6144d51..014ff5a 100644
@@ -15,6 +15,7 @@ SRC_URI = "http://www.cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz
            file://support-oe-qt4-tools-names.patch \
            file://aarch64-cmake.patch \
            file://aarch64-kwsys.patch \
+           file://qt4-fail-silent.patch \
            "
 
 inherit autotools
meta/recipes-devtools/cmake/cmake/qt4-fail-silent.patch new file +55 -0
new file mode 100644
index 0000000..fd39f3f
@@ -0,0 +1,55 @@
+Fail silently if system Qt installation is broken
+
+Fixes a regression in behaviour from 2.8.10 to 2.8.11 resulting in the
+following error if the system Qt installation is broken:
+
+CMake Error at Modules/FindQt4.cmake:1028 (set_property):
+  set_property could not find TARGET Qt4::QtCore.  Perhaps it has not yet
+  been created.
+Call Stack (most recent call first):
+  Tests/RunCMake/CMakeLists.txt:79 (find_package)
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <[email protected]>
+
+--- cmake-2.8.11/Modules/FindQt4.cmake	2013-07-04 10:20:42.092848274 +0100
++++ cmake-2.8.11/Modules/FindQt4.cmake	2013-07-04 10:52:15.693380555 +0100
+@@ -1025,21 +1025,22 @@
+     set(_configs)
+   endmacro()
+ 
+-
+-  # Set QT_xyz_LIBRARY variable and add
+-  # library include path to QT_INCLUDES
+-  _QT4_ADJUST_LIB_VARS(QtCore)
+-  set_property(TARGET Qt4::QtCore APPEND PROPERTY
+-    INTERFACE_INCLUDE_DIRECTORIES
+-      "${QT_MKSPECS_DIR}/default"
+-      ${QT_INCLUDE_DIR}
+-  )
+-  set_property(TARGET Qt4::QtCore PROPERTY
+-    INTERFACE_QT_MAJOR_VERSION 4
+-  )
+-  set_property(TARGET Qt4::QtCore APPEND PROPERTY
+-    COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION
+-  )
++  if(QT_QTCORE_FOUND)
++    # Set QT_xyz_LIBRARY variable and add
++    # library include path to QT_INCLUDES
++    _QT4_ADJUST_LIB_VARS(QtCore)
++    set_property(TARGET Qt4::QtCore APPEND PROPERTY
++      INTERFACE_INCLUDE_DIRECTORIES
++        "${QT_MKSPECS_DIR}/default"
++        ${QT_INCLUDE_DIR}
++    )
++    set_property(TARGET Qt4::QtCore PROPERTY
++      INTERFACE_QT_MAJOR_VERSION 4
++    )
++    set_property(TARGET Qt4::QtCore APPEND PROPERTY
++      COMPATIBLE_INTERFACE_STRING QT_MAJOR_VERSION
++    )
++  endif()
+ 
+   foreach(QT_MODULE ${QT_MODULES})
+     _QT4_ADJUST_LIB_VARS(${QT_MODULE})
Signature · 6 lines
1.8.1.2

_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core
Signature · 1 line
Martin 'JaMa' Jansa     jabber: [email protected]