Можно ли установить свойства проекта visual studio в файлах qmake .pro?

У меня есть пакетный файл qmake, который использует .pri и .pro для создания проекта Visual Studio C ++, который используется для создания DLL. Но я хотел бы настроить свойства этого проекта автоматически, в частности, отладочную команду и аргументы командной строки, возможно ли это в qmake?

1

Решение

Можно создать

add_qt_path.pri

где-то файл со следующим содержимым:

# test if windows
win32 {
# test if already exists
VCXPROJ_USER_FILE = "$${OUT_PWD}/$${TARGET}.vcxproj.user"!exists( $${VCXPROJ_USER_FILE}) {
# generate file contents
TEMPNAME     = $${QMAKE_QMAKE}     # contains full dir of qmake used
QTDIR        = $$dirname(TEMPNAME) # gets only the path
# vcxproj.user template
VCXPROJ_USER = "<?xml version=\"1.0\" encoding=\"utf-8\"?>$$escape_expand(\\n)\
<Project xmlns=\"http://schemas.microsoft.com/developer/msbuild/2003\">$$escape_expand(\\n)\
<PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|Win32'\">$$escape_expand(\\n)\
<LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
</PropertyGroup>$$escape_expand(\\n)\
<PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|Win32'\">$$escape_expand(\\n)\
<LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
</PropertyGroup>$$escape_expand(\\n)\
<PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Debug|x64'\">$$escape_expand(\\n)\
<LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
</PropertyGroup>$$escape_expand(\\n)\
<PropertyGroup Condition=\"'$(Configuration)|$(Platform)'=='Release|x64'\">$$escape_expand(\\n)\
<LocalDebuggerEnvironment>PATH=$${QTDIR};%PATH%</LocalDebuggerEnvironment>$$escape_expand(\\n)\
<DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>$$escape_expand(\\n)\
</PropertyGroup>$$escape_expand(\\n)\
</Project>$$escape_expand(\\n)\
"# write file
write_file($${VCXPROJ_USER_FILE}, VCXPROJ_USER)
}
}

затем включают в файл проекта qmake (* .pro), после определение TARGET:

QT += core
QT -= gui

TARGET = test3
CONFIG += console
CONFIG -= app_bundle

include(./../../add_qt_path.pri) # add qt path to vs project

# other qmake stuff

Вы также можете добавить в * .vcxproj.user любые другие записи, такие как команда отладки и аргументы командной строки, просто посмотрите, как Visual Studio автоматически генерирует файл * .vcxproj.user, когда вы настраиваете их вручную.

3

Другие решения

Большинство свойств среды сборки можно настроить с помощью параметров qmake (вы можете найти их в источниках qmake, например, * _objectmodel. * Files). К сожалению, обе опции, которые вам нужны, на самом деле являются опциями времени выполнения, поэтому я не думаю, что вы сможете установить их в файлах .pri / .pro. На самом деле, они даже не хранятся в файле .vcxproj, а в файле .vcxproj.user. Если бы не это, модификация qmake могла бы быть вариантом, хотя это, вероятно, не стоило бы усилий.

2

По вопросам рекламы [email protected]