Как правильно создать событие сборки с двойными кавычками и $ в путях к файлам в VisualStudio с помощью cmake - PullRequest
0 голосов
/ 11 февраля 2019

В моем проекте я пытаюсь скопировать каталог файлов в другой каталог с помощью команды события post-build в visual studio.

Я придумал этот код командной строки для использования в проектеxcopy /Y /I /E "$(WorkingDirectory)/abra/kadabra" "$(LocalDebuggerWorkingDirectory)/kadabra"

Я хотел бы автоматически сгенерировать эту команду из cmake, и из того, что я понимаю, метод add_custom_command - это то, что я должен использовать ...

Однако, когда я пытаюсь

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND xcopy /Y /I /E "$(WorkingDirectory)/abra/kadabra" "$(LocalDebuggerWorkingDirectory)/kadabra")

Я получаю это как параметр командной строки в Visual Studio

    setlocal
xcopy /Y /I /E $(WorkingDirectory)/abra/kadabra $(LocalDebuggerWorkingDirectory)/kadabra
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd

Что я делаю не так?

1 Ответ

0 голосов
/ 13 февраля 2019

Я закончил тем, что нашел ответ, который в основном избегал кавычек.Я превратил это "$(WorkingDirectory)/abra/kadabra" "$(LocalDebuggerWorkingDirectory)/kadabra") в \"$(WorkingDirectory)/abra/kadabra\" \"$(LocalDebuggerWorkingDirectory)/kadabra\") Однако я все еще получаю все дополнительные setlocal и if% errorlevel% вещи, что не то, что я хотел.Однако это не влияет на мой проект.

...