cmake on Windows: get ctest to execute command instead of running exe
I have a ctest that runs a custom command instead of running an executable. On Linux the ctest runs the command successfully, but on Windows, ctest interprets the command as an executable and tries to find it (unsuccessfully of course)
This is my 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)
On Linux, the command is executed correctly. But on Windows this is what I get:
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
How can I get cmake on Windows to actually run the command instead of treating it as executable? First I was trying it without (cmd.exe @cmd /k) it really makes no difference as long as it is interpreted as an exe name, not as a cmd command.
Thank you.
windows cmake
add a comment |
I have a ctest that runs a custom command instead of running an executable. On Linux the ctest runs the command successfully, but on Windows, ctest interprets the command as an executable and tries to find it (unsuccessfully of course)
This is my 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)
On Linux, the command is executed correctly. But on Windows this is what I get:
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
How can I get cmake on Windows to actually run the command instead of treating it as executable? First I was trying it without (cmd.exe @cmd /k) it really makes no difference as long as it is interpreted as an exe name, not as a cmd command.
Thank you.
windows cmake
add a comment |
I have a ctest that runs a custom command instead of running an executable. On Linux the ctest runs the command successfully, but on Windows, ctest interprets the command as an executable and tries to find it (unsuccessfully of course)
This is my 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)
On Linux, the command is executed correctly. But on Windows this is what I get:
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
How can I get cmake on Windows to actually run the command instead of treating it as executable? First I was trying it without (cmd.exe @cmd /k) it really makes no difference as long as it is interpreted as an exe name, not as a cmd command.
Thank you.
windows cmake
I have a ctest that runs a custom command instead of running an executable. On Linux the ctest runs the command successfully, but on Windows, ctest interprets the command as an executable and tries to find it (unsuccessfully of course)
This is my 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)
On Linux, the command is executed correctly. But on Windows this is what I get:
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
How can I get cmake on Windows to actually run the command instead of treating it as executable? First I was trying it without (cmd.exe @cmd /k) it really makes no difference as long as it is interpreted as an exe name, not as a cmd command.
Thank you.
windows cmake
windows cmake
asked Nov 13 '18 at 16:00
bromanousbromanous
97128
97128
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
I found what I was doing wrong, got rid of the double quotations and it worked.
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 perl $CMAKE_CURRENT_SOURCE_DIR\script.pl $PROJECT_BINARY_DIR\bin\Debug\testName.exe)
endif(UNIX)
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284884%2fcmake-on-windows-get-ctest-to-execute-command-instead-of-running-exe%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
I found what I was doing wrong, got rid of the double quotations and it worked.
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 perl $CMAKE_CURRENT_SOURCE_DIR\script.pl $PROJECT_BINARY_DIR\bin\Debug\testName.exe)
endif(UNIX)
add a comment |
I found what I was doing wrong, got rid of the double quotations and it worked.
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 perl $CMAKE_CURRENT_SOURCE_DIR\script.pl $PROJECT_BINARY_DIR\bin\Debug\testName.exe)
endif(UNIX)
add a comment |
I found what I was doing wrong, got rid of the double quotations and it worked.
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 perl $CMAKE_CURRENT_SOURCE_DIR\script.pl $PROJECT_BINARY_DIR\bin\Debug\testName.exe)
endif(UNIX)
I found what I was doing wrong, got rid of the double quotations and it worked.
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 perl $CMAKE_CURRENT_SOURCE_DIR\script.pl $PROJECT_BINARY_DIR\bin\Debug\testName.exe)
endif(UNIX)
answered Nov 13 '18 at 18:48
bromanousbromanous
97128
97128
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53284884%2fcmake-on-windows-get-ctest-to-execute-command-instead-of-running-exe%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown