Russian Qt Forum

Qt => Общие вопросы => Тема начата: OS2 от Январь 28, 2014, 12:47



Название: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Январь 28, 2014, 12:47
Всем доброго времени суток!
Помогите решить такую проблему: использую для работы Qt 4.8 + MSVC 2010.
Возникла необходимость в использовании скриптов VB при компиляции в VC, для авто-запуска скриптов использую “Pre-Build Event” и “Post-Build Event” секции в настройках проекта VC. В связи с этим каждый раз, когда я генерирую новые проектные файлы для VC мне приходится руками прописывать запуск скриптов в секциях “Pre-Build Event” и “Post-Build Event”.
Подскажите, имеется ли возможность в pro файле как-то автоматически задавать параметры “Pre-Build Event” и “Post-Build Event” для проектных файлов VC?

Заранее спасибо!


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: Bepec от Январь 28, 2014, 13:02
А зачем вам pro файл если вы разрабатываете в msvc 2010?
Я бы посоветовал вам использовать property sheet'ы.


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Январь 28, 2014, 13:09
Проект крос-платформенный, но большая часть разработки ведется под VC, мне просто хочется по максимуму автоматизировать процесс. Сейчас каждый раз при перегенерации проектного файла для VC нужно руками вносить в него изменения, что очень не удобно...

ЗЫ: а можно поподробней про "property sheet"?


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: Bepec от Январь 28, 2014, 13:14
В MSVC начиная с 2008 есть property sheet'ы.
Это набор настроек для проектов. Могут быть установлены практически все параметры, кроме зависящих от пользователя (имя пользуна, его каталог и прочее. Эт Microsoft о личной безопасности печётся).

Доступны проперти шиты в окне property manager. Там же создаются, удаляются.

В принципе всё просто. Создал новый проект, туда перетянул файл проперти шита и всё в принципе. Все настройки сделаны, можно компилить. Очень удобно когда имеются смешанные проекты типа Qt/boost/opc/uml/сторонние библиотеки.

PS по 2010 не скажу, смотреть надо :D


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Январь 28, 2014, 13:25
Тоесть через pro файл эти свойства установить не удастся?


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Январь 28, 2014, 17:49
Через property manager создал необходимые мне property sheet'ы. Как можно добавить их к VC проекту через *.pro или *.bat файл?


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Январь 30, 2014, 00:30
Нашел, как добавить значения в “Post-Build Event” в проектные файлы Visual Studio:
В pro файле просто нужно прописать следующую строчку:
Цитировать
QMAKE_POST_LINK += work.vbs
Но как добавить что-либо в секцию “Pre-Build Event” так и не нашел… :(

ЗЫ: есть параметр у qmake - QMAKE_PRE_LINK, но он добавляет в "Pre-Link Event". ???



Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: kambala от Январь 30, 2014, 00:42
попробуй это http://colby.id.au/pre-pre-build-commands-with-qmake/


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: lesav от Январь 30, 2014, 06:12
Но как добавить что-либо в секцию “Pre-Build Event” так и не нашел… :(

ЗЫ: есть параметр у qmake - QMAKE_PRE_LINK, но он добавляет в "Pre-Link Event". ???
Опечатка ???
Параметр QMAKE_PRE_LINK как раз и отвечает за "Pre-Link Event"



Успеешно работают и пре/пост билд. Я заталкивал в него целую очередь команд
Вот пример работы

Код:
   exists( $$_PRO_FILE_PWD_/vb_pre.vbs ) {
        QMAKE_PRE_LINK += cscript $$_PRO_FILE_PWD_/vb_pre.vbs;
   }
   exists( $$_PRO_FILE_PWD_/vb_post.vbs ) {
        QMAKE_POST_LINK += cscript $$_PRO_FILE_PWD_/vb_post.vbs;
   }
    QMAKE_PRE_LINK += netstat -a -n;
    QMAKE_POST_LINK += netstat -a -n;

    isEmpty(QMAKE_SH) {
        #шелл в Windows не найден
        # Замена сепаратора директорий для WINDOWS
        QMAKE_PRE_LINK  = $$replace(QMAKE_PRE_LINK,  /, $$DIR_SEPARATOR)
        QMAKE_POST_LINK = $$replace(QMAKE_POST_LINK, /, $$DIR_SEPARATOR)
        # Замена сепаратора команд для WINDOWS
        QMAKE_PRE_LINK  = $$replace(QMAKE_PRE_LINK,  ;, &&)
        QMAKE_POST_LINK = $$replace(QMAKE_POST_LINK, ;, &&)
    }
Вот только  пребилд работает как-то не логично, вот порядок его работы
1. компилирование всех объектных файлов
2. выполняется пребилд
3. собирается бинарник

Я ожидал, что первые два пункта будут выполняться в другой последовательности


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Январь 30, 2014, 10:01
Опечатка была вот здесь (исправлено):
Цитировать
QMAKE_POST_LINK += work.vbs
Проблема в том, что меня интересует не Пре-Линк, а Пре-Билд, как этого добиться для MSVC я пока не понял...

Цитировать
Параметр QMAKE_PRE_LINK как раз и отвечает за "Pre-Link Event"
Ну да, я так и написал  ;) но мне нужен именно Пре-Билд.

Цитировать
Успеешно работают и пре/пост билд.
Наверно ты имел в виду Пре/Пост Линки?


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: kambala от Январь 30, 2014, 12:22
http://msdn.microsoft.com/en-us/library/ms366724.aspx может пригодится


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Февраль 02, 2014, 11:08
Так и не смог найти подходящего метода для вставки “Pre-Build Event” в проектник....  >:( :'(


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: lesav от Февраль 03, 2014, 06:00
Да, я перепутал PRE_LINK  с  PRE_BUILD

Для "Pre-BUILD Event" Вам следует попробовать ЭТО (http://www.qtfr.org/viewtopic.php?pid=67628#p67628)

Цитировать
Необходимо добавить в .pro файл следующую конструкцию
Код:
    makefile.target      = Makefile  
    makefile.depends    += prebuild 
    prebuild.target      = prebuild 
    prebuild.depends     = FORCE 
    prebuild.commands    = @echo before build (to replace) 
    QMAKE_EXTRA_TARGETS += makefile 
    QMAKE_EXTRA_TARGETS += prebuild 

Минус такого решения - выполнение qmake перед каждым билдом


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: lesav от Февраль 03, 2014, 11:22
В принципе есть решение без минусов
Код:
prebuild.target           = prebuild
prebuild.depends         += FORCE
prebuild.commands         = preBuild.bat
PRE_TARGETDEPS            = prebuild
QMAKE_EXTRA_TARGETS      += prebuild

QMAKE_POST_LINK          += postBuild.bat


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: lesav от Февраль 03, 2014, 13:21

http://blog.mgsxx.com/?p=2046

Здесь исчерпывающая информация


Название: Re: Автоматическая генерация параметров проекта для MSVC 2010
Отправлено: OS2 от Февраль 03, 2014, 14:56
Спасибо. Почитаю...