Russian Qt Forum
Сентябрь 30, 2024, 08:19 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: qmake and UI_DIR  (Прочитано 4922 раз)
Vd
Гость
« : Ноябрь 27, 2008, 15:41 »

День добрый.

VC2005Express, Qt 4.4.3
При сборке - файлы, обработанные uic'ом почему то оказываются в корне проекта.
Ну хорошо, думаю, настрою сейчас, чтобы debug и release собирались в своих папках.
Настроил вот так:

Код
C++ (Qt)
release {
UI_DIR = release
MOC_DIR = release
OBJ_DIR = release
CONFIG -= console
}
 
debug {
UI_DIR = debug
MOC_DIR = debug
OBJ_DIR = debug
CONFIG += console
}
 

Однако, в таком случае - в независимости от того, что я собираю - ui оказываются в папке debug. Такое ощущение, что второй UI_DIR обрабатывается в независимости от scope. Но MOC_DIR и OBJ_DIR работают как надо. Пробовал разные варианты, работает всегда одинаково не верно.

Баг или я не дочитал assistant?
Записан
SASA
Гость
« Ответ #1 : Ноябрь 27, 2008, 18:16 »

Проблема в том, что qmake (или nmake) очень умные. Они сами раскладывают по папкам debug/release.
И лучше пользоваться CONFIG(debug) { } а не debug { }. Тут был пост на эту тему.
Записан
Vd
Гость
« Ответ #2 : Ноябрь 28, 2008, 14:04 »

Не помогает =(
Абсолютно такое же поведение.
Записан
ритт
Гость
« Ответ #3 : Ноябрь 28, 2008, 18:54 »

таки-дочитывай ассистант...

и попробуй вот так:
Код:
BUILDDIR	= .build/
win32:BUILDDIR = $$join(BUILDDIR,,,win32)
unix:BUILDDIR = $$join(BUILDDIR,,,unix)
macx:BUILDDIR = $$join(BUILDDIR,,,macx)

UI_DIR = $${BUILDDIR}/ui
UIC_DIR = $${BUILDDIR}/uic
MOC_DIR = $${BUILDDIR}/moc
RCC_DIR = $${BUILDDIR}/rcc
OBJECTS_DIR = $${BUILDDIR}/obj

CONFIG(release, debug|release) {
OBJECTS_DIR = $$join(OBJECTS_DIR,,,/release)
}
else {
OBJECTS_DIR = $$join(OBJECTS_DIR,,,/debug)
}
Записан
Vd
Гость
« Ответ #4 : Декабрь 09, 2008, 03:06 »

Константин
Спасибо! Немного не так сделал, но мысль понятна:

Код:
CONFIG(release, debug|release) {
BUILDDIR = ./release
}
else {
BUILDDIR = ./debug
}

UI_DIR = $${BUILDDIR}/ui
UIC_DIR = $${BUILDDIR}/uic
MOC_DIR = $${BUILDDIR}/moc
RCC_DIR = $${BUILDDIR}/rcc
OBJECTS_DIR = $${BUILDDIR}/obj
Записан
ритт
Гость
« Ответ #5 : Декабрь 09, 2008, 06:57 »

rcc, moc и ui* для дебаг и релиз будут одинаковыми - имеет ли смысл распихивать их по разным папкам? или принцип "дольше собирается - лучше работает" сейчас в моде? Улыбающийся
Записан
Vd
Гость
« Ответ #6 : Декабрь 10, 2008, 14:41 »

Константин
Действительно, об этом я не подумал. Спасибо =)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 20.