Russian Qt Forum
Июнь 16, 2024, 02:49 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: qmake native slash  (Прочитано 11433 раз)
QuAzI
Гость
« : Ноябрь 28, 2012, 15:34 »

Однако
project.pro
Код:
win32: docs.commands = cd $$PWD ; \"%ProgramFiles%\\doxygen\\bin\\doxygen.exe\" $$PWD\\Doxyfile
На выхлопе
Код:
cd E:/qu/devel/POST000-Converter ; "%ProgramFiles%\doxygen\bin\doxygen.exe" E:/qu/devel/POST000-Converter\Doxyfile
Где разумеется смена директории давится, не понимает такие слеши, в итоге автоматизировать сборку доки не очень на винде получается. Т.е. оно бы пошло, если бы doxygen запускался в директории проекта.
Перерыл qmake variable reference, ещё кучу всего, но ответов так и не нашёл.
1) Как в PRO-файле использовать нативные слеши ?
2) Как запускать софт в директории с исходниками проекта не выполняя cd $$PWD ?

Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Ноябрь 28, 2012, 15:39 »

Попробуй 3 слеша.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
QuAzI
Гость
« Ответ #2 : Ноябрь 28, 2012, 16:28 »

Где их вставить? В данном случае cd $$PWD заменяется на cd E:/qu/devel/POST000-Converter сборщиком, я не сам его заполняю, в итоге виндовый CD давится от обратных слешей.
Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #3 : Ноябрь 28, 2012, 19:27 »

Я использовал когда-то такое:


Код:
# Запуск комманды после сборки
win32:SHELL=cmd /C
else: SHELL=sh -c
EXTENSION=$$member(SHELL, 0)

RUN_SCRIPT=$$DESTDIR/../_create_run_script.$$EXTENSION

win32:{
  # Замена слешей для WINDOWS
  RUN_SCRIPT=$$replace(RUN_SCRIPT, /, \\)
}
QMAKE_POST_LINK = $$SHELL $$RUN_SCRIPT $$DESTDIR $$TARGET $$[QT_INSTALL_BINS] $$EXTENSION $$ORIG_TARGET $$PROG_EXT
Записан

Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #4 : Ноябрь 28, 2012, 19:52 »

попробуй cd \"$$PWD\"
« Последнее редактирование: Ноябрь 28, 2012, 20:10 от Alex Custov » Записан
lesav
Частый гость
***
Offline Offline

Сообщений: 235


qnx.org.ru


Просмотр профиля WWW
« Ответ #5 : Ноябрь 28, 2012, 20:15 »

win32:{
  # Замена слешей для WINDOWS
  CD_PWD=$$replace(PWD, /, \\)
} else : {
  CD_PWD=$$PWD
}

# И потом уже
cd $$CD_PWD

Записан

QuAzI
Гость
« Ответ #6 : Ноябрь 29, 2012, 09:54 »

Самое оно, спасибо. Как-то я проглядел $$replace раньше Грустный
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #7 : Ноябрь 29, 2012, 14:47 »

Где их вставить? В данном случае cd $$PWD заменяется на cd E:/qu/devel/POST000-Converter сборщиком, я не сам его заполняю, в итоге виндовый CD давится от обратных слешей.
Это в какой винде, простите? В 98-ой что ли? XP уже точно прямые слеши понимала (а обратные, про которые вы написали, для виндоус вообще родные).
Может у вас на самом деле проблема в том, что CD без ключа /d с одного диска на другой не перейдёт (с c: на e:)?
« Последнее редактирование: Ноябрь 29, 2012, 14:54 от LisandreL » Записан
QuAzI
Гость
« Ответ #8 : Ноябрь 29, 2012, 14:56 »

Смотрим аттач и удивляемся. Win XP SP3 RU с довольно свежими обновлениями
Записан
Bepec
Гость
« Ответ #9 : Ноябрь 29, 2012, 15:01 »

Экранировать кавычками пробовали?
Записан
QuAzI
Гость
« Ответ #10 : Ноябрь 29, 2012, 15:07 »

Винда такая винда... помнится когда-то натыкался на разное поведение команд в CMD/BAT на разных ПК, а тут вообще прикол. В общем я бы не сказал что винда адекватно поддерживает обратные слеши
Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #11 : Ноябрь 29, 2012, 15:09 »

Мда, был не прав, извините.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #12 : Ноябрь 29, 2012, 15:20 »

Это в какой винде, простите? В 98-ой что ли? XP уже точно прямые слеши понимала (а обратные, про которые вы написали, для виндоус вообще родные).
Может у вас на самом деле проблема в том, что CD без ключа /d с одного диска на другой не перейдёт (с c: на e:)?

Это давний баг в cmd, и его чинить уже не будут по религиозным причинам. Там есть определённые обходные манёвры типа заключения пути в кавычки, или добавления unix slash-ей к пути с windows slash-ами. Например:

Цитировать
F:\>copy /y "F:/AC/soft/THT/ts/ru.qm" .
Не удается найти указанный файл.
Скопировано файлов:         0.

F:\>copy /y "F:/AC/soft/THT/ts\ru.qm" .
Скопировано файлов:         1.
« Последнее редактирование: Ноябрь 29, 2012, 15:22 от Alex Custov » Записан
Bepec
Гость
« Ответ #13 : Ноябрь 29, 2012, 15:22 »

Думаю не стоит извиняться. Помоему просто старьё стоит, а не новая винда.

Почему? Смотреть в приложениях.

Создание папки/копирование/перенос работают с любыми слешами. Смешивать не пробовал.
« Последнее редактирование: Ноябрь 29, 2012, 15:24 от Bepec » Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #14 : Ноябрь 29, 2012, 15:26 »

Думаю не стоит извиняться. Помоему просто старьё стоит, а не новая винда.

Мой тест на Win7 со всеми обновлениями
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 22.