Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: Mike от Август 21, 2007, 11:04



Название: Разный DESTDIR для Debug и Release
Отправлено: Mike от Август 21, 2007, 11:04
Есть файл проекта, допустим Test.pro. Как сделать так, чтобы когда я делаю ему qmake, он генерил Makefile.Debug и Makefile.Release настроенные так, чтобы nmake (ну или что другое) распихивал exe-шники в разные папки для отладочной и релизной версий (типа bin/Debug и bin/Release) ?


Название: Re: Разный DESTDIR для Debug и Release
Отправлено: bigirbis от Август 21, 2007, 11:24
Код:
release {
    DESTDIR = ../../bin_release
    OBJECTS_DIR = ./obj-r
}
               
debug {
    DESTDIR = ../../bin_debug
    OBJECTS_DIR = ./obj-d
}


Название: Re: Разный DESTDIR для Debug и Release
Отправлено: Mike от Август 21, 2007, 11:33
Не, я типа того уже пробовал:
Код:
release {
    DESTDIR = ./bin/Release
    OBJECTS_DIR = ./obj/Release
}
               
debug {
    DESTDIR = ./bin/Debug
    OBJECTS_DIR = ./obj/Debug
}
Оно не работает, как надо:
Во-первых, он все-равно создает папки Debug и Release в папке с проектом
Во-вторых, в папке bin он создает только папку Debug, а Release нет. Ну соответственно то же самое и для папки obj.
А в-третьих, после nmake all собранным остается только отладочная версия в bin/Debug


Название: Re: Разный DESTDIR для Debug и Release
Отправлено: bigirbis от Август 21, 2007, 11:38
Код:
CONFIG += debug
или
Код:
CONFIG += release
сделал?


Название: Re: Разный DESTDIR для Debug и Release
Отправлено: Mike от Август 21, 2007, 11:45
Ну просто если запускаешь qmake без параметров, то он генерит и Makefile.Debug и Makefile.Release. Соответственно не очень хочется в *.pro конкретно задавать конфигурацию. Хотелось, чтобы после последовательности
qmake
nmake all
Были скомпилены и отладочная и релизная версии в разных папкaх. Он то ведь как-то понимает, когда генерит Makefile.Debug, что exe надо отправить в папку Debug, а когда Makefile.Release - что в папку Release. Так вот я хочу, чтобы при той же самой последовательности действий он выводил exe-шники в немножко другие папки, без оказания конкретной конфигурации в файле проекта.


Название: Re: Разный DESTDIR для Debug и Release
Отправлено: WW от Август 21, 2007, 12:52
Код:
CONFIG += debug
DESTDIR = ./debug
MOC_DIR += ./GeneratedFiles/debug
OBJECTS_DIR += debug
и он разбрасывает куда надо


Название: Re: Разный DESTDIR для Debug и Release
Отправлено: bigirbis от Август 21, 2007, 12:56
>> qmake CONFIG+=debug
>> qmake CONFIG+=release


Название: Re: Разный DESTDIR для Debug и Release
Отправлено: Mike от Август 21, 2007, 13:06
Работает так:
Код:
debug {
DESTDIR = ./bin/debug
OBJECTS_DIR = ./obj/debug
}

!debug {
DESTDIR = ./bin/release
OBJECTS_DIR = ./obj/release
}
и не надо ни
Код:
>> qmake CONFIG+=debug
>> qmake CONFIG+=release
ни
Код:
CONFIG += debug

Но самое прикольное то, что если в ./bin/debug или ./bin/release debug или release написать с большой буквы - ничего не работает.

Теперь просто qmake, а затем nmake all и все компилится и распихивается по нужным папкам.