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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Автоматическая генерация параметров проекта для MSVC 2010  (Прочитано 9157 раз)
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« : Январь 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?

Заранее спасибо!
Записан
Bepec
Гость
« Ответ #1 : Январь 28, 2014, 13:02 »

А зачем вам pro файл если вы разрабатываете в msvc 2010?
Я бы посоветовал вам использовать property sheet'ы.
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #2 : Январь 28, 2014, 13:09 »

Проект крос-платформенный, но большая часть разработки ведется под VC, мне просто хочется по максимуму автоматизировать процесс. Сейчас каждый раз при перегенерации проектного файла для VC нужно руками вносить в него изменения, что очень не удобно...

ЗЫ: а можно поподробней про "property sheet"?
Записан
Bepec
Гость
« Ответ #3 : Январь 28, 2014, 13:14 »

В MSVC начиная с 2008 есть property sheet'ы.
Это набор настроек для проектов. Могут быть установлены практически все параметры, кроме зависящих от пользователя (имя пользуна, его каталог и прочее. Эт Microsoft о личной безопасности печётся).

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

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

PS по 2010 не скажу, смотреть надо Веселый
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #4 : Январь 28, 2014, 13:25 »

Тоесть через pro файл эти свойства установить не удастся?
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #5 : Январь 28, 2014, 17:49 »

Через property manager создал необходимые мне property sheet'ы. Как можно добавить их к VC проекту через *.pro или *.bat файл?
Записан
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #6 : Январь 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". Непонимающий

« Последнее редактирование: Январь 30, 2014, 09:56 от OS2 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #7 : Январь 30, 2014, 00:42 »

попробуй это http://colby.id.au/pre-pre-build-commands-with-qmake/
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #8 : Январь 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. собирается бинарник

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

OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #9 : Январь 30, 2014, 10:01 »

Опечатка была вот здесь (исправлено):
Цитировать
QMAKE_POST_LINK += work.vbs
Проблема в том, что меня интересует не Пре-Линк, а Пре-Билд, как этого добиться для MSVC я пока не понял...

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

Цитировать
Успеешно работают и пре/пост билд.
Наверно ты имел в виду Пре/Пост Линки?
« Последнее редактирование: Январь 30, 2014, 10:11 от OS2 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #10 : Январь 30, 2014, 12:22 »

http://msdn.microsoft.com/en-us/library/ms366724.aspx может пригодится
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
OS2
Самовар
**
Offline Offline

Сообщений: 186



Просмотр профиля WWW
« Ответ #11 : Февраль 02, 2014, 11:08 »

Так и не смог найти подходящего метода для вставки “Pre-Build Event” в проектник....  Злой Плачущий
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #12 : Февраль 03, 2014, 06:00 »

Да, я перепутал PRE_LINK  с  PRE_BUILD

Для "Pre-BUILD Event" Вам следует попробовать ЭТО

Цитировать
Необходимо добавить в .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 перед каждым билдом
Записан

lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


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

lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #14 : Февраль 03, 2014, 13:21 »


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

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

Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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