Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: AkonResumed от Июль 02, 2020, 11:49



Название: Shadow build в MSVC IDE
Отправлено: AkonResumed от Июль 02, 2020, 11:49
В Qt проекте, который собирается из QtCreator или из ком. стороки, используется теневая сборка, т.е. вне папки исходников. Для использования MSVC его solution генерируется так:
Код:
qmake -tp vc -r CONFIG+=release
При этом сборка из MSVC IDE происходит в папке исходников. Как задействовать теневую сборку, чтобы не править вручную сгененрированные файлы проекта MSVC, в идеале - задать теневую сборку в ком. строке вызова qmake выше?

В принципе, запуск qmake из другой директории, поддиректории, например, частично решает проблему:
Код:
qmake -tp vc -r CONFIG+=release ..\MyProject.pro
Сорцы, находящиеся в папке ..\src не засоряются.


Название: Re: Shadow build в MSVC IDE
Отправлено: kuzulis от Июль 02, 2020, 16:12
Цитировать
Как задействовать теневую сборку, чтобы не править вручную сгененрированные файлы проекта MSVC, в идеале - задать теневую сборку в ком. строке вызова qmake выше?

В принципе, запуск qmake из другой директории, поддиректории, например, частично решает проблему:

ЕМНИП, только так.. Просто вызываем из другой директории:

Код:
$ cd ../sources-dir << вышли из директории с исходниками
$ mkdir shadow-build-dir << создали директорию сборки
$ cd shadow-build-dit << вошли в директорию сборки
$ qmake -tp vc -r CONFIG+=release ../sources-dir/MyProject.pro

Хотя, возможно, если в студию установить аддон для Qt, то оно будет корректно генерить теневую директорию само прямо из студии (просто открыв там *.pro файл), попробуй..


Название: Re: Shadow build в MSVC IDE
Отправлено: tux от Июль 02, 2020, 19:19
Так можно прямо в .pro задать каталоги сборки. Есть же ключи. Я вон, вообще в памяти временные папки создаю автоматом, там и собираю. В /dev/shm
unix:!macx {
    OBJECTS_DIR = /dev/shm/my_programm/$$FOLDER/$$TARGET/obj
    MOC_DIR     = /dev/shm/my_programm/$$FOLDER/$$TARGET/moc
    UI_DIR      = /dev/shm/my_programm/$$FOLDER/$$TARGET/ui
    RCC_DIR     = /dev/shm/my_programm/$$FOLDER/$$TARGET/rc
}

macx {
    OBJECTS_DIR = build/obj
    MOC_DIR     = build/moc
    UI_DIR      = build/ui
    RCC_DIR     = build/rc
}

android {
    OBJECTS_DIR = build/obj
    MOC_DIR     = build/moc
    UI_DIR      = build/ui
    RCC_DIR     = build/rc
}

win32 {
    TEMP_PATH = "X:"
    OBJECTS_DIR = $$TEMP_PATH/my_programm/$$FOLDER/$$TARGET\\obj
    MOC_DIR     = $$TEMP_PATH/my_programm/$$FOLDER/$$TARGET\\moc
    UI_DIR      = $$TEMP_PATH/my_programm/$$FOLDER/$$TARGET\\ui
    RCC_DIR     = $$TEMP_PATH/my_programm/$$FOLDER/$$TARGET\\rc

    CONFIG -= debug_and_release #debug_and_release_target
    CONFIG += no_fixpath

    DEFINES += WIN32_LEAN_AND_MEAN
}


Название: Re: Shadow build в MSVC IDE
Отправлено: AkonResumed от Июль 02, 2020, 22:43
Друзья, все так, спасибо!

Студия с аддоном уже при открытии pro-файла замусоривает сорцы.

ИМХО, если в pro-файле задавать выходные папки сборки, то там должны быть только относительные пути (относительно корня проекта), чтобы было максимально портабельно.