How can I redirect the output of the CMake “execute_process” command to STDOUT in real-time?












1















I am working on a project that needs to execute a system process from a CMake script that may take a while to run. The problem is the entire time the process is running I get no feedback about whether it is succeeding or not. Since the process may take a few minutes to run it may appear as though it froze even though it is still silently working.



At the end of the process I can get the output in a CMake variable and print all of the things that happened during that time:



execute_process(COMMAND some system command
OUTPUT_VARIABLE command_output
)

# ... nothing happens for a few minutes while the process executes

# All of the output from the past few minutes is printed all at once.
message(STATUS ${command_output})


It would be much nicer if I could just redirect the process output directly to STDOUT so I could see output of the process while it is executing... Is there any way to do this?










share|improve this question























  • Simple execute_process(COMMAND some system command) without additional options will use standard output and error streams. Have you tried that?

    – Tsyvarev
    Nov 16 '18 at 7:56
















1















I am working on a project that needs to execute a system process from a CMake script that may take a while to run. The problem is the entire time the process is running I get no feedback about whether it is succeeding or not. Since the process may take a few minutes to run it may appear as though it froze even though it is still silently working.



At the end of the process I can get the output in a CMake variable and print all of the things that happened during that time:



execute_process(COMMAND some system command
OUTPUT_VARIABLE command_output
)

# ... nothing happens for a few minutes while the process executes

# All of the output from the past few minutes is printed all at once.
message(STATUS ${command_output})


It would be much nicer if I could just redirect the process output directly to STDOUT so I could see output of the process while it is executing... Is there any way to do this?










share|improve this question























  • Simple execute_process(COMMAND some system command) without additional options will use standard output and error streams. Have you tried that?

    – Tsyvarev
    Nov 16 '18 at 7:56














1












1








1








I am working on a project that needs to execute a system process from a CMake script that may take a while to run. The problem is the entire time the process is running I get no feedback about whether it is succeeding or not. Since the process may take a few minutes to run it may appear as though it froze even though it is still silently working.



At the end of the process I can get the output in a CMake variable and print all of the things that happened during that time:



execute_process(COMMAND some system command
OUTPUT_VARIABLE command_output
)

# ... nothing happens for a few minutes while the process executes

# All of the output from the past few minutes is printed all at once.
message(STATUS ${command_output})


It would be much nicer if I could just redirect the process output directly to STDOUT so I could see output of the process while it is executing... Is there any way to do this?










share|improve this question














I am working on a project that needs to execute a system process from a CMake script that may take a while to run. The problem is the entire time the process is running I get no feedback about whether it is succeeding or not. Since the process may take a few minutes to run it may appear as though it froze even though it is still silently working.



At the end of the process I can get the output in a CMake variable and print all of the things that happened during that time:



execute_process(COMMAND some system command
OUTPUT_VARIABLE command_output
)

# ... nothing happens for a few minutes while the process executes

# All of the output from the past few minutes is printed all at once.
message(STATUS ${command_output})


It would be much nicer if I could just redirect the process output directly to STDOUT so I could see output of the process while it is executing... Is there any way to do this?







cmake io system stdout io-redirection






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 16 '18 at 3:25









tjwrona1992tjwrona1992

3,92421647




3,92421647













  • Simple execute_process(COMMAND some system command) without additional options will use standard output and error streams. Have you tried that?

    – Tsyvarev
    Nov 16 '18 at 7:56



















  • Simple execute_process(COMMAND some system command) without additional options will use standard output and error streams. Have you tried that?

    – Tsyvarev
    Nov 16 '18 at 7:56

















Simple execute_process(COMMAND some system command) without additional options will use standard output and error streams. Have you tried that?

– Tsyvarev
Nov 16 '18 at 7:56





Simple execute_process(COMMAND some system command) without additional options will use standard output and error streams. Have you tried that?

– Tsyvarev
Nov 16 '18 at 7:56












0






active

oldest

votes











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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53330984%2fhow-can-i-redirect-the-output-of-the-cmake-execute-process-command-to-stdout-i%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53330984%2fhow-can-i-redirect-the-output-of-the-cmake-execute-process-command-to-stdout-i%23new-answer', 'question_page');
}
);

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







這個網誌中的熱門文章

Tangent Lines Diagram Along Smooth Curve

Yusuf al-Mu'taman ibn Hud

Zucchini