Re[3]: Путь к Qt хидерам [qmake]
От: _niko_ Россия  
Дата: 11.02.14 08:22
Оценка:
Здравствуйте, nen777w, Вы писали:

N>>>Есть ли способ получить Qt-шные?


А>>- $$QMAKE_INCDIR

А>>- $$system(qmake -query QT_INSTALL_HEADERS)

N>message($$QMAKE_INCDIR) — ничего не выводит

N>message($$system(qmake -query QT_INSTALL_HEADERS)) — выводит только это C:/Qt/qt_minGW32_520/qtbase/include
Подкаталоги Qt'шка сама уже добавляет на основе подключенных модулей.

Если необходимо получать полный путь для конкретного модуля QT могу предложить следующее решение:
defineReplace(get_sub_folder_by_qt_module) {
    arg1=$${1}
    #Допускаю что тут можно как то все в перебор списка завернуть, но у меня чет не вышло.
    core=QtCore
    gui=QtGui
    xml=QtXml
    isEqual(arg1, core) return($${core})
    isEqual(arg1, gui)  return($${gui})
    isEqual(arg1, xml)  return($${xml})
    error(Folder for the module $${arg1} is not defined)
}

defineReplace(get_path_include_by_qt_module) {
    return($$[QT_INSTALL_HEADERS]/$$get_sub_folder_by_qt_module($${1}))
}

message(--------------------------)
message(Modules folder names:)
for(module, QT) message($${module} = $$get_sub_folder_by_qt_module($${module}))
message(--------------------------)
message(Modules headers paths:)
for(module, QT) message($${module} = $$get_path_include_by_qt_module($${module}))
message(--------------------------)

Результат:
Project MESSAGE: --------------------------
Project MESSAGE: Modules folder names:
Project MESSAGE: core = QtCore
Project MESSAGE: gui = QtGui
Project MESSAGE: xml = QtXml
Project MESSAGE: --------------------------
Project MESSAGE: Modules headers paths:
Project MESSAGE: core = C:/Qt/qt_minGW32_520/qtbase/include/QtCore
Project MESSAGE: gui = C:/Qt/qt_minGW32_520/qtbase/include/QtGui
Project MESSAGE: xml = C:/Qt/qt_minGW32_520/qtbase/include/QtXml
Project MESSAGE: --------------------------
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.