Russian Qt Forum

Qt => Общие вопросы => Тема начата: Alex Custov от Август 24, 2009, 23:18



Название: qmake бред, или как не сойти с ума-2
Отправлено: Alex Custov от Август 24, 2009, 23:18
Проблема: есть простой qmake проект, который компилируется в библиотеку, с которой можно линковаться, или подсунуть дизайнеру как плагин. Теперь пишу для него процедуру установки:

Код:
target.path = $$[QT_INSTALL_PLUGINS]/designer
INSTALLS += target

linkable.path = /usr/local/lib
linkable.files = libDoubleSpinboxPlugin.so
INSTALLS += linkable


Т.е. встроенную цель ставим как плагин дизайнера, и свою цель ставим как linkable библиотеку в /usr/local/lib.

Очищаем полностью проект от всех выходных файлов, включая Makefile. Теперь магия:

Код
Bash
[debian DoubleSpinbox]$ qmake
[debian DoubleSpinbox]$ make -s
[debian DoubleSpinbox]$ ls *.so
libDoubleSpinboxPlugin.so
[debian DoubleSpinbox]$ cat Makefile | grep linkable
 

Никаких следов цели "linkable".

Повторно:

Код
Bash
[debian DoubleSpinbox]$ qmake
[debian DoubleSpinbox]$ cat Makefile | grep linkable
install_linkable: first FORCE
uninstall_linkable:  FORCE
install:  install_target install_linkable  FORCE
uninstall: uninstall_target uninstall_linkable   FORCE
 

Цель есть.

Экспериментальным путём выяснено, что на генерацию Makefile-а влияет существование выходного файла "libDoubleSpinboxPlugin.so". Если он есть, то последующий вызов qmake создаст корректный Makefile. Если его нет, то последующий вызов qmake создаст битый Makefile без цели "linkable". Что за?  :o

P.S. Debian Lenny, Qt 4.5.2