View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0010632 | CMake | Modules | public | 2010-04-28 05:03 | 2010-04-29 16:52 | ||||
Reporter | petr vanek | ||||||||
Assigned To | Clinton Stimpson | ||||||||
Priority | normal | Severity | major | Reproducibility | always | ||||
Status | closed | Resolution | won't fix | ||||||
Platform | OS | OS Version | |||||||
Product Version | CMake-2-8 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0010632: FindQt4.cmake - QT_INCLUDE_DIR is wrongly set on mac os x (bundles) | ||||||||
Description | The QT_INCLUDE_DIR variable is set to: /opt/local/libexec/qt4-mac/include;/opt/local/libexec/qt4-mac/lib/QtCore.framework But it should be only the: /opt/local/libexec/qt4-mac/include Related output of the sample CMakeConfig.txt (attached): -- Looking for Q_WS_X11 -- Looking for Q_WS_X11 - not found. -- Looking for Q_WS_WIN -- Looking for Q_WS_WIN - not found. -- Looking for Q_WS_QWS -- Looking for Q_WS_QWS - not found. -- Looking for Q_WS_MAC -- Looking for Q_WS_MAC - found -- Looking for QT_MAC_USE_COCOA -- Looking for QT_MAC_USE_COCOA - found -- Found Qt-Version 4.6.2 (using /opt/local/bin/qmake) -- Found OpenSSL: /usr/lib/libssl.dylib;/usr/lib/libcrypto.dylib -- QT_INCLUDE_DIR: /opt/local/libexec/qt4-mac/include;/opt/local/libexec/qt4-mac/lib/QtCore.framework it looks like it's all done in this code (FindQt4.cmake): # If Qt is installed as a framework, we need to add QT_QTCORE_LIBRARY here (which # is the framework directory in that case), since this will make the cmake include_directories() # command recognize that we need the framework flag with the respective directory (-F) IF(QT_USE_FRAMEWORKS) SET(QT_INCLUDES ${QT_INCLUDES} ${QT_QTCORE_LIBRARY} ) SET(QT_INCLUDE_DIR ${QT_INCLUDE_DIR} ${QT_QTCORE_LIBRARY} ) ENDIF(QT_USE_FRAMEWORKS) I don't understand mac's frameworks too much but I don't see any reason why there should be QT_QTCORE_LIBRARY listed in includes related variable. | ||||||||
Additional Information | I'm using Qt4 (qt4-mac) and cmake from macports. rimmer:test pvanek$ qmake -query QT_INSTALL_PREFIX:/opt/local/libexec/qt4-mac QT_INSTALL_DATA:/opt/local/libexec/qt4-mac QT_INSTALL_DOCS:/opt/local/share/doc/qt4-mac QT_INSTALL_HEADERS:/opt/local/libexec/qt4-mac/include QT_INSTALL_LIBS:/opt/local/libexec/qt4-mac/lib QT_INSTALL_BINS:/opt/local/libexec/qt4-mac/bin QT_INSTALL_PLUGINS:/opt/local/libexec/qt4-mac/plugins QT_INSTALL_TRANSLATIONS:/opt/local/libexec/qt4-mac/translations QT_INSTALL_CONFIGURATION:/Library/Preferences/Qt QT_INSTALL_EXAMPLES:/opt/local/share/qt4-mac/examples QT_INSTALL_DEMOS:/opt/local/share/qt4-mac/demos QMAKE_MKSPECS:/opt/local/libexec/qt4-mac/mkspecs QMAKE_VERSION:2.01a QT_VERSION:4.6.2 | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | CMakeLists.txt [^] (141 bytes) 2010-04-28 05:03 [Show Content] | ||||||||
Relationships | |
Relationships |
Notes | |
(0020476) Clinton Stimpson (developer) 2010-04-29 11:54 |
That was done on purpose. How is it a problem for you? |
(0020479) petr vanek (reporter) 2010-04-29 14:24 edited on: 2010-04-29 14:28 |
I'm working on software (kdebindings and its derivates) which uses this variable as path to the include files to parse with its internal tool. Of course it can be workarounded but I thought that this variable should point to the include dir only. Frameworks should go with libs related variables, shouldn't they? But as I said - I'm newbie in the mac world. cmake cfg file: http://websvn.kde.org/trunk/KDE/kdebindings/smoke/qtcore/CMakeLists.txt?revision=1084718&view=markup [^] to process this template: http://websvn.kde.org/trunk/KDE/kdebindings/smoke/qtcore/config.xml.cmake?view=markup [^] the same is for all modules of Qt4 and more libraries (qscintilla etc.) |
(0020481) Clinton Stimpson (developer) 2010-04-29 15:44 |
On Mac, header files for frameworks go inside the framework. And then there is /opt/local/libexec/qt4-mac/include for other header files. So really, there are two include paths. One passed to the compiler as -I/opt/local/libexec/qt4-mac/include, and the other passed to the compiler as -F/opt/local/libexec/qt4-mac/lib (which is used for finding framework headers). CMake will create the -F one from /opt/local/libexec/qt4-mac/lib/QtCore.framework |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2010-04-28 05:03 | petr vanek | New Issue | |
2010-04-28 05:03 | petr vanek | File Added: CMakeLists.txt | |
2010-04-29 11:54 | Clinton Stimpson | Note Added: 0020476 | |
2010-04-29 11:54 | Clinton Stimpson | Status | new => assigned |
2010-04-29 11:54 | Clinton Stimpson | Assigned To | => Clinton Stimpson |
2010-04-29 14:24 | petr vanek | Note Added: 0020479 | |
2010-04-29 14:28 | petr vanek | Note Edited: 0020479 | |
2010-04-29 15:44 | Clinton Stimpson | Note Added: 0020481 | |
2010-04-29 16:52 | Clinton Stimpson | Status | assigned => closed |
2010-04-29 16:52 | Clinton Stimpson | Resolution | open => won't fix |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |