вопрос по qmake из qt4
От: jerry_ru  
Дата: 10.12.08 14:29
Оценка:
Есть несколькоуровневый проект на qmake'ке. требуется иметь ОБЩИЙ конфиг-файл между подпроектами.
Как это сделать?
Ex: MOC_DIR = ".moc" записать в одном месте(например qmake_general) и чтоб импортировалось во всю иерархию...

в qt3 было сделано так:
— есть qmake_general
— в самом верхнем проектке пишется:
...
ROOT_DIR=$$(PWD)
CONFIG_FILE=$$ROOT_DIR/qmake_general
QMAKE=/usr/qt/3/bin/qmake CONFIG_FILE=$$CONFIG_FILE ROOT_DIR=$$ROOT_DIR
...


Все просто — переменная QMAKE это то, что будет запущено во всех подкатологах(подпроектах),
в них лишь остается сделать include($$CONFIG_FILE)...

...в qt4 QMAKE хранит путь "/usr/bin/qmake" но при его изменении ничего не происходит......

устроит любой способ

ежели оффтоп — не бейте

21.01.10 12:42: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: вопрос по qmake из qt4
От: K13 http://akvis.com
Дата: 11.12.08 05:33
Оценка:
_>Есть несколькоуровневый проект на qmake'ке. требуется иметь ОБЩИЙ конфиг-файл между подпроектами.
_>Как это сделать?
_>Ex: MOC_DIR = ".moc" записать в одном месте(например qmake_general) и чтоб импортировалось во всю иерархию...

а просто в подпроектах в .pro написать include($$(MY_ROOT_DIR)/qmake_general) и выставить переменную окружения MY_ROOT_DIR перед сборкой?
Re[2]: вопрос по qmake из qt4
От: jerry_ru  
Дата: 11.12.08 08:48
Оценка:
K13>а просто в подпроектах в .pro написать include($$(MY_ROOT_DIR)/qmake_general) и выставить переменную окружения MY_ROOT_DIR перед сборкой?

о, сейчас сделаем — спс
Re[2]: вопрос по qmake из qt4
От: jerry_ru  
Дата: 11.12.08 08:55
Оценка:
K13>а просто в подпроектах в .pro написать include($$(MY_ROOT_DIR)/qmake_general) и выставить переменную окружения MY_ROOT_DIR перед сборкой?

Хм — не удалось, ибо как выставлять переменную MY_ROOT_DIR перед сборкой? функуия system() запускается в отдельной сессии и на основную не влияет. Внешние скрипты не подходят — так как для сборки проекта надо пользовать "qmake;make" — тут места др. скриптам нету ...

неужели в qt4 нет способа передать переменную(ЛЮБУЮ) из верхнего проекта в нижний?!
Re[3]: вопрос по qmake из qt4
От: K13 http://akvis.com
Дата: 12.12.08 07:46
Оценка:
_>Хм — не удалось, ибо как выставлять переменную MY_ROOT_DIR перед сборкой? функуия system() запускается в отдельной сессии и на основную не влияет. Внешние скрипты не подходят — так как для сборки проекта надо пользовать "qmake;make" — тут места др. скриптам нету ...

у меня qmake && (n)make завернуто в build.cmd / build.sh с выставлением нужных переменных.
сам скриптик лежит в общей ветке репозитария

часть переменных может быть уже задана снаружи (скриптик проверяет) -- например, при сборке на билд-сервере DESTDIR задается как artifacts dir текущего билда.

_>неужели в qt4 нет способа передать переменную(ЛЮБУЮ) из верхнего проекта в нижний?!


честно говоря, не интересовался. спроси в рассылке qt-interest@trolltech.com
Re: вопрос по qmake из qt4
От: Skorodum Россия  
Дата: 18.12.08 10:16
Оценка:
Здравствуйте, jerry_ru, Вы писали:

_>Есть несколькоуровневый проект на qmake'ке. требуется иметь ОБЩИЙ конфиг-файл между подпроектами.

_>Как это сделать?

Видел у троллей и использую такое:
include(../common_config.pri)
К сожалению, документации не нашел.
Re[2]: вопрос по qmake из qt4
От: jerry_ru  
Дата: 23.12.08 15:35
Оценка:
S>Видел у троллей и использую такое:
S>include(../common_config.pri)
S>К сожалению, документации не нашел.

это да, но "../" это только один уровень наверх... а если у меня их N? хотя можно попробовать что-то типа:

system(cp -f ../common_config common_config)
include(common_config)

лол — щас попробуем
Re[3]: вопрос по qmake из qt4
От: Аноним  
Дата: 01.01.09 22:13
Оценка:
Здравствуйте, jerry_ru, Вы писали:

S>>Видел у троллей и использую такое:

S>>include(../common_config.pri)
S>>К сожалению, документации не нашел.

_>это да, но "../" это только один уровень наверх... а если у меня их N?


Повторяем N-раз:
include(../../../common_config.pri)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.