crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> qmake, как обратится к текущему каталогу?, в файлах pro и pri
void*
  опции профиля:
сообщение 18.1.2009, 21:24
Сообщение #1


Программист-самоучка
***

Группа: Участник
Сообщений: 429
Регистрация: 4.6.2008
Пользователь №: 193

Спасибо сказали: 28 раз(а)




Репутация:   3  


Обнаружил еще одну очень интересную возможность qmake. То что можно использовать .pri-файлы для того, чтобы выделить весь список исходников в отдельный файл, я думаю ни для кого не является секретом. Однако когда в проекте несколько папок с исходниками, то можно для каждой папки написать .pri-файл подобного содержания:
somefile.pri:
# includes from this folder
SOURCES += $$PWD/somefile1.cpp $$PWD/somefile2.cpp
HEADERS += $$PWD/somefile1.h $$PWD/somefile2.h

а затем в .pro-файле просто пишем:
...
include(somedir/somefile.pri)
...

Тем самым во-первых не нужно писать полные пути к файлам, а во-вторых для каждой папки можно иметь отдельный файл со списком исходников, и при этом не нужно при добавлении нового файла лазить в .pro-файл, т.е. можно работать не покидая данную папку. Насколько я понял, $$PWD будет означать полный путь к текущей папке в которой содержится данный файл, хотя более-менее внятной документации по этому поводу я не нашел. Сам прием подсмотрел в структуре самой библиотеки Qt.

Сообщение отредактировал Litkevich Yuriy - 31.1.2009, 12:51
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 18.1.2009, 22:23
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(void* @ 19.1.2009, 0:24) *
Насколько я понял, $$PWD будет означать полный путь к текущей папке в которой содержится данный файл, хотя более-менее внятной документации по этому поводу я не нашел.
с документирование qmake вообще дела плохо обстоят.

Цитата
Чтобы получить содержимое окружающего значения, когда qmake запускается, используйте оператор $$(...)

 DESTDIR = $$(PWD)
message(The project will be installed in $$DESTDIR)

Цитата
В приведенном выше присваивании, значение переменной окружения PWD читается, когда обрабатывается файл проекта.
Чтобы получить содержимое окружающего значения во время, когда обрабатывается созданный Makefile, используйте оператор $(...):

 DESTDIR = $(PWD)
message(The project will be installed in the value of PWD)
message(when the Makefile is processed.)


и в %QTDIR%\qmake\project.cpp:
    } else if(var == QLatin1String("OUT_PWD")) { //the out going dir
        var = ".BUILTIN." + var;
        place[var] =  QStringList(Option::output_dir);
    } else if(var == QLatin1String("PWD") ||  //current working dir (of _FILE_)
              var == QLatin1String("IN_PWD")) {
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 19.4.2024, 6:08