Проект модульного тестирования Qt Creator

В Qt Creator, когда я создаю новый проект Unit Test, он не будет успешно построен, если полный путь к проекту содержит пробел.

Я отследил ошибку до make-файла, созданного qmake. Makefile содержит строку в верхней части, например:

DEFINES = -DUNICODE -DWIN32 -DSRCDIR=\"C:/Users/Smith/Qt Projects/Unit_Tests/\" -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR=\"C:/Users/Smith/Qt Projects/Debug_Unit_Tests\"

Кавычки в значениях для SRCDIR и QT_TESTCASE_BUILDDIR экранируются обратной косой чертой. Если я удалю обратную косую черту из Makefile.Debug, проект будет успешно построен.

Очевидно, я не хочу каждый раз вручную удалять обратную косую черту. Я также хотел бы избежать пользовательского шага сборки, который удаляет обратную косую черту. Поскольку у qmake так много опций, я надеялся, что смогу просто добавить в файл .pro что-то, что исправит это.

Я пробовал что-то вроде DEFINES -= QT_TESTCASE_BUILDDIR. Однако это не работает, потому что QT_TESTCASE_BUILDDIR еще не определено. testlib, по-видимому, позже добавляет собственные определения.

Я использую:

  • Visual Studio 2010 с пакетом обновления 1 (SP1)
  • Qt 5.0.2
  • Создатель Qt 2.7.0
  • Windows 7

Какой самый простой способ избавиться от обратной косой черты?

Редактировать: Это также происходит в OSX.


person mjk99    schedule 17.05.2013    source источник


Ответы (1)


Определения, добавленные testlib, находятся в testlib_defines.prf, который находится в:

C:\Qt\Qt5.0.2\5.0.2\msvc2010\mkspecs\features

Изменять...

DEFINES += QT_TESTCASE_BUILDDIR=\\\"$$OUT_PWD\\\"

...to...

DEFINES += QT_TESTCASE_BUILDDIR=\"$$OUT_PWD\"

Другая часть проста. Дополнительные обратные косые черты для SRCDIR взяты из самого файла .pro. Изменять...

DEFINES += SRCDIR=\\\"$$PWD/\\\"

...to...

DEFINES += SRCDIR=\"$$PWD/\"

Каждый раз, когда вы устанавливаете новую версию Qt, вам придется редактировать файл .prf, но это лучше, чем редактировать make-файл каждый раз при запуске qmake.

person mjk99    schedule 17.05.2013
comment
Это, вероятно, очевидно, но как только вы изменили файл .prf, вам придется снова явно запустить qmake, чтобы QtCreator увидел обновленный QT_TESTCASE_BUILDDIR. - person yagni; 08.04.2014