crossplatform.ru

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


  Ответ в qmake, как обратится к текущему каталогу?
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
SABROG Дата 22.4.2009, 8:15
  Я точно не уверен в алгоритме заполнения переменной PWD qmake'ом, но эта переменная есть в winxp и выше. В win2k её нету. Но зато есть вариант, который есть и там и там - %CD%. Это скрытая переменная, которые не видна, если вызывать set в консоли. Хотя я смотрю qmake своими средствами это делает:

QString qmake_getpwd()
{
    if(pwd.isNull())
        pwd = QDir::currentPath();
    return pwd;
}
Litkevich Yuriy Дата 21.4.2009, 23:36
 
Цитата(void* @ 19.1.2009, 6:07) *
есть ли какая-нибудь разница между двумя записями - $$PWD и $$(PWD) ?
ответы тут
void* Дата 19.1.2009, 2:07
  а еще мне вот интересно - есть ли какая-нибудь разница между двумя записями - $$PWD и $$(PWD) ?
void* Дата 18.1.2009, 23:11
  я это все естественно видел, кроме последнего, кстати оно и больше всего объясняет значение этой переменной, выходит я был полностью прав :)
Litkevich Yuriy Дата 18.1.2009, 22:23
 
Цитата(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")) {
void* Дата 18.1.2009, 21:24
  Обнаружил еще одну очень интересную возможность 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.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 13.8.2022, 6:04