[cmake-developers] [CMake 0012147]: Absence of uic makes Qt4 detection fail

Mantis Bug Tracker mantis at public.kitware.com
Tue May 3 04:57:40 EDT 2011


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=12147 
====================================================================== 
Reported By:                Bernhard Rosenkraenzer
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   12147
Category:                   Modules
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2011-05-03 04:57 EDT
Last Modified:              2011-05-03 04:57 EDT
====================================================================== 
Summary:                    Absence of uic makes Qt4 detection fail
Description: 
FindQt4.cmake, line 1091+, does


  IF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND 
      QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE AND QT_QTCORE_LIBRARY)
    SET( QT4_FOUND "YES" )
    INCLUDE(FindPackageMessage)
    FIND_PACKAGE_MESSAGE(Qt4 "Found Qt-Version ${QTVERSION} (using
${QT_QMAKE_EXECUTABLE})"
     
"[${QT_LIBRARY_DIR}][${QT_INCLUDE_DIR}][${QT_MOC_EXECUTABLE}][${QT_UIC_EXECUTABLE}][${QT_RCC_EXECUTABLE}]")
  ELSE( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND
        QT_UIC_EXECUTABLE AND QT_RCC_EXECUTABLE AND QT_QTCORE_LIBRARY)
    SET( QT4_FOUND "NO")
    SET(QT_QMAKE_EXECUTABLE "${QT_QMAKE_EXECUTABLE}-NOTFOUND" CACHE FILEPATH
"Invalid qmake found" FORCE)
    IF( Qt4_FIND_REQUIRED)
      MESSAGE( FATAL_ERROR "Qt libraries, includes, moc, uic or/and rcc NOT
found!")
    ENDIF( Qt4_FIND_REQUIRED)
  ENDIF( QT_LIBRARY_DIR AND QT_INCLUDE_DIR AND QT_MOC_EXECUTABLE AND 




I think QT_UIC_EXECUTABLE should be removed because UIC is hardly essential (you
need it only if you use Qt Designer), and it isn't built if Qt is built with the
"-no-gui" configure switch (useful e.g. for headless servers where you still
want to use tools that use QtCore, QtXml, QtNetwork and/or QtSql).



I'd argue that a missing uic shouldn't make Qt detection fail at all because
there's also plenty of Qt GUI code that doesn't use uic - but it definitely
shouldn't fail if QT_DONT_USE_QTGUI is set.

Steps to Reproduce: 
1. Install Qt with -no-gui
2. Try to compile anything that uses FindQt4.cmake to locate
QtCore/QtXml/QtNetwork/QtSql
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-05-03 04:57 Bernhard RosenkraenzerNew Issue                                
   
======================================================================




More information about the cmake-developers mailing list