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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Shadow build в MSVC IDE  (Прочитано 6998 раз)
AkonResumed
Чайник
*
Offline Offline

Сообщений: 81


Просмотр профиля
« : Июль 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 не засоряются.
« Последнее редактирование: Июль 02, 2020, 14:15 от AkonResumed » Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #1 : Июль 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 файл), попробуй..
Записан

ArchLinux x86_64 / Win10 64 bit
tux
Global Moderator
Бывалый
*****
Offline Offline

Сообщений: 404



Просмотр профиля
« Ответ #2 : Июль 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
}
Записан

AkonResumed
Чайник
*
Offline Offline

Сообщений: 81


Просмотр профиля
« Ответ #3 : Июль 02, 2020, 22:43 »

Друзья, все так, спасибо!

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

ИМХО, если в pro-файле задавать выходные папки сборки, то там должны быть только относительные пути (относительно корня проекта), чтобы было максимально портабельно.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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