У меня есть ctest, который запускает пользовательскую команду вместо запуска исполняемого файла.В Linux ctest успешно запускает команду, но в Windows ctest интерпретирует команду как исполняемый файл и пытается найти ее (конечно, безуспешно)
Это мой CMakeLists.txt:
if(UNIX)
add_test(NAME testName COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/script.pl ${PROJECT_BINARY_DIR}/bin/testName)
elseif(WIN32)
add_test(NAME testName COMMAND "cmd.exe @cmd /k \"perl ${CMAKE_CURRENT_SOURCE_DIR}\\script.pl ${PROJECT_BINARY_DIR}\\bin\\Debug\\testName.exe\"")
endif(UNIX)
В Linux команда выполнена правильно.Но в Windows это то, что я получаю:
test 1
Start 1: testName
Could not find executable cmd.exe @cmd /k "perl C:/PATH/script.pl C:/PATH/bin/Debug/testName.exe"
Looked in the following places:
cmd.exe @cmd /k "perl C:/PATH/script.pl C:/PATH/bin/Debug/testName.exe
.
.
.etc
Как я могу заставить cmake в Windows фактически запускать команду вместо того, чтобы рассматривать ее как исполняемый файл?Сначала я попробовал это без (cmd.exe @cmd / k), это действительно не имеет значения, если оно интерпретируется как имя exe, а не как команда cmd.
Спасибо.