Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: QCasper от Декабрь 06, 2006, 23:37



Название: Project dependencies
Отправлено: QCasper от Декабрь 06, 2006, 23:37
В Visual Studio если ткнуть правой кнопкой мыши по проекту, то в менюшке есть сабжевый пукт. Выбирая его можно расставить галки, какие проекты должны собраться прежде чем будет собираться этот. Как такое сделать руками на уровне *.pro файлов? То есть что нужно включить в *.pro файл, чтобы сначала компилился и собирался проект, который находится, скажем, в соседней директории?


Название: Project dependencies
Отправлено: bigirbis от Декабрь 07, 2006, 10:44
Очень хороший пример: QTDIR/src/src.pro (смотри самый верх)
Там просто нужно порядок соблюдать для SUBDIRS


Название: Project dependencies
Отправлено: Admin от Декабрь 07, 2006, 11:26
Совет! научитесь пользоватся automake
да qmake универсальней! а automake гибче!


Название: Re: Project dependencies
Отправлено: Alex03 от Декабрь 07, 2006, 14:22
Цитата: "QCasper"
В Visual Studio если ткнуть правой кнопкой мыши по проекту, то в менюшке есть сабжевый пукт. Выбирая его можно расставить галки, какие проекты должны собраться прежде чем будет собираться этот. Как такое сделать руками на уровне *.pro файлов? То есть что нужно включить в *.pro файл, чтобы сначала компилился и собирался проект, который находится, скажем, в соседней директории?


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


Название: Re: Project dependencies
Отправлено: QCasper от Декабрь 07, 2006, 15:34
Цитата: "bigirbis"
Очень хороший пример: QTDIR/src/src.pro (смотри самый верх)
Там просто нужно порядок соблюдать для SUBDIRS


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

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

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


Именно так.


Название: Project dependencies
Отправлено: Mikhail от Декабрь 07, 2006, 16:11
Вопросик:
Как добавить проверку зависимости от библиотеки.
Например:
имеется файл проекта в котором
LIBS += example.lib

Файлы самого проекта не изменены, но изменилась библиотека.
Что указать, чтобы просто подлинковать библиотеку не перекомпилируя проект.
В VS 2005 это решается
Заранее благодарен


Название: Re: Project dependencies
Отправлено: Dendy от Декабрь 07, 2006, 17:22
Цитата: "QCasper"
Ну а если, я как раз-таки зашел в папку с одним из этих подпроектов, и нажал там make? Мне нужно чтобы собрался предварительно другой подпроект, который лежит там то.


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


Название: Re: Project dependencies
Отправлено: QCasper от Декабрь 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. Как бы все это автоматизировать?


Название: Project dependencies
Отправлено: QCasper от Декабрь 18, 2006, 01:32
-- up --


Название: Project dependencies
Отправлено: Вячеслав от Декабрь 18, 2006, 23:11
ты пальцем pro appliaction'a покажи ;) там есть зависимость от либы ? или просто LIBS+=xxxxxxx ?


Название: Project dependencies
Отправлено: QCasper от Декабрь 19, 2006, 00:50
Цитата: "Вячеслав"
ты пальцем pro appliaction'a покажи ;) там есть зависимость от либы ? или просто LIBS+=xxxxxxx ?


ВОТ!! Вот с этого момента поподробнее, чего я собсно и добивался. Там именно что просто
Цитировать
LIBS+=xxxxxxx
Как мне "показать пальцем"? :)


Название: Project dependencies
Отправлено: Вячеслав от Декабрь 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.

Это не помогет ?
Хотя я бы с таргетами поиграл ;)