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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Project dependencies  (Прочитано 7501 раз)
QCasper
Гость
« : Декабрь 06, 2006, 23:37 »

В Visual Studio если ткнуть правой кнопкой мыши по проекту, то в менюшке есть сабжевый пукт. Выбирая его можно расставить галки, какие проекты должны собраться прежде чем будет собираться этот. Как такое сделать руками на уровне *.pro файлов? То есть что нужно включить в *.pro файл, чтобы сначала компилился и собирался проект, который находится, скажем, в соседней директории?
Записан
bigirbis
Гость
« Ответ #1 : Декабрь 07, 2006, 10:44 »

Очень хороший пример: QTDIR/src/src.pro (смотри самый верх)
Там просто нужно порядок соблюдать для SUBDIRS
Записан
Admin
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1988



Просмотр профиля
« Ответ #2 : Декабрь 07, 2006, 11:26 »

Совет! научитесь пользоватся automake
да qmake универсальней! а automake гибче!
Записан
Alex03
Гость
« Ответ #3 : Декабрь 07, 2006, 14:22 »

Цитата: "QCasper"
В Visual Studio если ткнуть правой кнопкой мыши по проекту, то в менюшке есть сабжевый пукт. Выбирая его можно расставить галки, какие проекты должны собраться прежде чем будет собираться этот. Как такое сделать руками на уровне *.pro файлов? То есть что нужно включить в *.pro файл, чтобы сначала компилился и собирался проект, который находится, скажем, в соседней директории?


ИМХО в MS VS эти межпроектные завивимости в солюшн прописываются.
Записан
QCasper
Гость
« Ответ #4 : Декабрь 07, 2006, 15:34 »

Цитата: "bigirbis"
Очень хороший пример: QTDIR/src/src.pro (смотри самый верх)
Там просто нужно порядок соблюдать для SUBDIRS


это все понятно, что если использовать файл проекта который лежит в самой верхней папке основного проекта, то используя его можно собирать подпроекты в определенной последовательности. Ну а если, я как раз-таки зашел в папку с одним из этих подпроектов, и нажал там make? Мне нужно чтобы собрался предварительно другой подпроект, который лежит там то.

добавлено спустя 1 минуту:

 
Цитата: "Alex03"
ИМХО в MS VS эти межпроектные завивимости в солюшн прописываются.


Именно так.
Записан
Mikhail
Программист
*****
Offline Offline

Сообщений: 587


Просмотр профиля
« Ответ #5 : Декабрь 07, 2006, 16:11 »

Вопросик:
Как добавить проверку зависимости от библиотеки.
Например:
имеется файл проекта в котором
LIBS += example.lib

Файлы самого проекта не изменены, но изменилась библиотека.
Что указать, чтобы просто подлинковать библиотеку не перекомпилируя проект.
В VS 2005 это решается
Заранее благодарен
Записан
Dendy
Гость
« Ответ #6 : Декабрь 07, 2006, 17:22 »

Цитата: "QCasper"
Ну а если, я как раз-таки зашел в папку с одним из этих подпроектов, и нажал там make? Мне нужно чтобы собрался предварительно другой подпроект, который лежит там то.


А что будет, если вьІ откроете в студии не солюшин с зависимостями, а отдельньІй проект? То же самое - соберётся только он без запуска билда зависимостей. КаждьІй проект самостоятельньІй, правила последовательности сборки должньІ определяться извне и, соответственно, запускаться извне.
Записан
QCasper
Гость
« Ответ #7 : Декабрь 07, 2006, 17:51 »

Цитата: "Dendy"
А что будет, если вьІ откроете в студии не солюшин с зависимостями, а отдельньІй проект? То же самое - соберётся только он без запуска билда зависимостей. КаждьІй проект самостоятельньІй, правила последовательности сборки должньІ определяться извне и, соответственно, запускаться извне.


Так, я тут писал, что мне все понятно, на самом деле кое-что все-таки оказалось неясным.

Вот у меня в папке megaproject еще две папки: application и staticlib.
в папке application лежит проект с приложением, при сборке которого используется проект-статическая либа, которая лежит в папке staticlib.
Сейчас у меня все это менеджится вот таким файлом проекта:

Код:
TEMPLATE = subdirs
SUBDIRS = staticlib application
QMAKE_EXTRA_TARGETS = release debug release-clean debug-clean release-distclean debug-distclean

release.CONFIG = recursive
debug.CONFIG = recursive

release-clean.CONFIG = recursive
debug-clean.CONFIG = recursive

release-distclean.CONFIG = recursive
debug-distclean.CONFIG = recursive


этот файл называется megaproject.pro и лежит в папке megaproject.

Тоесть когда я собираю в первый раз все это дело - все отлично: будучи в папке megaproject я пишу qmake && make, и все прекрасно - как сказано в файле проекта megaproject.pro, первым делом собирается staticlib, а потом, зависимый от него, application. НО! Стоит мне где-нить чихнуть в staticlib и попробовать пересобрать таким же образом, то библиотека пересобирается, а перелинковки приложения с библиотекой нет. И мне приходится руками идти в application и писать qmake&& make. Как бы все это автоматизировать?
Записан
QCasper
Гость
« Ответ #8 : Декабрь 18, 2006, 01:32 »

-- up --
Записан
Вячеслав
Гость
« Ответ #9 : Декабрь 18, 2006, 23:11 »

ты пальцем pro appliaction'a покажи Подмигивающий там есть зависимость от либы ? или просто LIBS+=xxxxxxx ?
Записан
QCasper
Гость
« Ответ #10 : Декабрь 19, 2006, 00:50 »

Цитата: "Вячеслав"
ты пальцем pro appliaction'a покажи Подмигивающий там есть зависимость от либы ? или просто LIBS+=xxxxxxx ?


ВОТ!! Вот с этого момента поподробнее, чего я собсно и добивался. Там именно что просто
Цитировать
LIBS+=xxxxxxx
Как мне "показать пальцем"? Улыбающийся
Записан
Вячеслав
Гость
« Ответ #11 : Декабрь 19, 2006, 20:02 »

Код:

PRE_TARGETDEPS
All libraries that the target depends on can be listed in this variable. Some backends do not support this, these include MSVC Dsp, and ProjectBuilder .pbproj files. Generally this is support internally by these build tools, this is usefull for explicitly listing dependant static libraries.
This list will go before all builtin dependencies.

Это не помогет ?
Хотя я бы с таргетами поиграл Подмигивающий
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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