crossplatform.ru

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


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

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

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


Последние 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 Рейтинг@Mail.ru Текстовая версия Сейчас: 10.7.2025, 1:06