Russian Qt Forum
Март 28, 2024, 12:35
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Qt-инструментарий
>
Формирование текстового файла в qmake проекте
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Формирование текстового файла в qmake проекте (Прочитано 13625 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Формирование текстового файла в qmake проекте
«
:
Май 12, 2015, 22:32 »
В стандартном qmake-проекте требуется формировать текстовый файл, в который надо записывать некий текст и подставлять в него имя TARGET, заданное в этом проекте. Решение должно быть мультиплатформенным, поэтому команд ОС типа "copy чего-то-там" необходимо избежать.
Подробнее - надо до сборки проекта формировать файл ресурсов, в который надо вкатать TARGET проекта, как префикс ресурса. То есть, надо в проекте создавать файл w.qrc, в который должен быть записан текст: <RCC><qresource prefix="/$$TARGET"><file>w.png</file></qresource></RCC> где $$TARGET - динамически подставляемое имя цели сборки проекта. То есть, если в начале проекта TARGET=widgetbutton, то в w.qrc должно записаться <RCC><qresource prefix="/widgetbutton"><file>w.png</file></qresource></RCC>
Может это другим способом можно сделать?
Записан
2^7-1 == 127, задумайтесь...
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: Формирование текстового файла в qmake проекте
«
Ответ #1 :
Май 13, 2015, 14:14 »
echo "ляляля" > w.qrc
в виндовой цмд вроде точно так же пишется. только кавычки экранировать надо.
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Формирование текстового файла в qmake проекте
«
Ответ #2 :
Май 13, 2015, 18:51 »
Цитата: kambala от Май 13, 2015, 14:14
echo "ляляля" > w.qrc
в виндовой цмд вроде точно так же пишется. только кавычки экранировать надо.
Не хочется в проекте с командным процессором ОС связываться. Нужно что-то типа fprintf() но не видно.
«
Последнее редактирование: Май 13, 2015, 18:55 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Old
Джедай : наставник для всех
Offline
Сообщений: 4349
Re: Формирование текстового файла в qmake проекте
«
Ответ #3 :
Май 13, 2015, 19:03 »
Цитата: Гурман от Май 13, 2015, 18:51
Не хочется в проекте с командным процессором ОС связываться.
qmake не очень навороченная система сборки, вы вряд ли обойдетесь без внешних инструментов.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Формирование текстового файла в qmake проекте
«
Ответ #4 :
Май 13, 2015, 19:32 »
system(echo) тоже не работает...
system(echo "test" > t.txt) - записывает в файл
system(echo "\<RCC\>\<qresource prefix=\"/$${TARGET}\"\>\<file\>w.png\</file\>\</qresource\>\</RCC\>" > w.qrc) - ругается три раза на "устаревшие обратные слэши" и "неожиданный >", и ничего не записывает, добавление \ к / не помогает
ЗЫ и даже system(echo "\<RCC\>" > w.qrc) ничего не делает. Символы < и > в любом виде, хоть со слэшем, хоть без - колдобят парсер, команда не выполняется. Я даже не пробовал сначала, подозревал этот косяк, поэтому и говорю, что нужно иначе.
Можно, конечно, бинарник сваять, который будет создаваться первым в проекте, и запускаться той же командой system... Но как-то это криво уже.
«
Последнее редактирование: Май 13, 2015, 19:46 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: Формирование текстового файла в qmake проекте
«
Ответ #5 :
Май 13, 2015, 23:10 »
Код:
createFileTarget.commands = echo \\<RCC\\>\\<qresource prefix=\\\"/$$TARGET\\\"\\>\\<file\\>w.png\\</file\\>\\</qresource\\>\\</RCC\\> > w.qrc
PRE_TARGETDEPS += createFileTarget
QMAKE_EXTRA_TARGETS += createFileTarget
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Формирование текстового файла в qmake проекте
«
Ответ #6 :
Май 13, 2015, 23:46 »
Цитата: kambala от Май 13, 2015, 23:10
Код:
createFileTarget.commands = echo \\<RCC\\>\\<qresource prefix=\\\"/$$TARGET\\\"\\>\\<file\\>w.png\\</file\\>\\</qresource\\>\\</RCC\\> > w.qrc
Ya plakalЪ...
Спасибо, на самом деле, если заработает.
Записан
2^7-1 == 127, задумайтесь...
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: Формирование текстового файла в qmake проекте
«
Ответ #7 :
Май 14, 2015, 15:09 »
qmake такой qmake
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Формирование текстового файла в qmake проекте
«
Ответ #8 :
Май 15, 2015, 14:04 »
up
на самом деле, и так не работает...
Код:
createFileTarget.commands = echo \\<RCC\\>\\<qresource prefix=\\\"/$$TARGET\\\"\\>\\<file\\>w.png\\</file\\>\\</qresource\\>\\</RCC\\> > w.qrc
- ругается на неизвестную команду при выполнении командного процессора ОС
Код:
createFileTarget.commands = "echo \\"\\<RCC\\>\\<qresource prefix=\\\"/$$TARGET\\\"\\>\\<file\\>w.png\\</file\\>\\</qresource\\>\\</RCC\\>\\" > w.qrc"
- записывает файл w.qrc, но с кучей ненужных обратных слешей
Код:
createFileTarget.commands = "echo <RCC><qresource prefix="/$$TARGET"><file>w.png</file></qresource></RCC> > w.qrc"
- командный процессор ругается на неожиданный символ <
Код:
createFileTarget.commands = "echo \"<RCC><qresource prefix="/$$TARGET"><file>w.png</file></qresource></RCC>\" > w.qrc"
- записывает файл w.qrc, но с двойными кавычками в начале и конце строки, на что ругается компилятор ресурсов
Последний вариант - почти то, что надо, но не получается убрать двойные кавычки из записываемого файла. Это уже дебилизм разработчиков из Microsoft - при выполнении команды echo она печатает двойные кавычки вместе с текстом.
«
Последнее редактирование: Май 15, 2015, 14:08 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Johnik
Крякер
Offline
Сообщений: 339
Re: Формирование текстового файла в qmake проект
«
Ответ #9 :
Май 15, 2015, 14:13 »
Цитата: Гурман от Май 15, 2015, 14:04
записывает файл w.qrc, но с двойными кавычками в начале и конце строки, на что ругается компилятор ресурсов
попробуйте символ '<' и '>' esc'апить символом '^' - в bat файлах именно он предназначен для экранирования.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Формирование текстового файла в qmake проект
«
Ответ #10 :
Май 15, 2015, 14:28 »
Цитата: Johnik от Май 15, 2015, 14:13
Цитата: Гурман от Май 15, 2015, 14:04
записывает файл w.qrc, но с двойными кавычками в начале и конце строки, на что ругается компилятор ресурсов
попробуйте символ '<' и '>' esc'апить символом '^' - в bat файлах именно он предназначен для экранирования.
Мне нужен мультиплатформенный вариант.
Записан
2^7-1 == 127, задумайтесь...
Johnik
Крякер
Offline
Сообщений: 339
Re: Формирование текстового файла в qmake проекте
«
Ответ #11 :
Май 15, 2015, 14:31 »
Код:
win32: {
...
} else {
...
}
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4724
Re: Формирование текстового файла в qmake проекте
«
Ответ #12 :
Май 15, 2015, 19:47 »
я в мак ос с 4.8.5 тестировал, кури батманы
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
twp
Гость
Re: Формирование текстового файла в qmake проекте
«
Ответ #13 :
Май 21, 2015, 13:09 »
Возможно
QMAKE_SUBSTITUTES
то что надо
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Формирование текстового файла в qmake проекте
«
Ответ #14 :
Май 21, 2015, 20:24 »
Цитата: twp от Май 21, 2015, 13:09
Возможно
QMAKE_SUBSTITUTES
то что надо
По описанию очень похоже... надо попробовать.
Не. Оно копирует в каталог сборки. А мне надо, чтобы попадало в каталог проекта. Если бы у этой команды параметр targetdir был, то было бы самое то.
«
Последнее редактирование: Май 21, 2015, 20:54 от Гурман
»
Записан
2^7-1 == 127, задумайтесь...
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...