Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can I conditionally compile my Rust program for a Windows subsystem?

I have a Rust program that I want to compile for the "windows" subsystem when I'm building it for distribution. Currently I am using this in my main.rs:

#![feature(windows_subsystem)]
#![windows_subsystem = "windows"]

This works, but when I run the tests on a Windows machine, the Windows subsystem does not have access to the console so I cannot see the output. I need to comment out the above lines of code in order to see the result of my tests.

Is there a way to conditionally compile which subsystem I'm running on in order to get the tests to work?

like image 546
user2601064 Avatar asked Sep 16 '25 13:09

user2601064


1 Answers

As described in The Rust Programming Language, specifically the chapter on conditional compilation:

You can also set another attribute based on a cfg variable with cfg_attr:

#[cfg_attr(a, b)]

Will be the same as #[b] if a is set by cfg attribute, and nothing otherwise.

In this case, it should be something like

#![cfg_attr(my_feature_name_i_made_up, windows_subsystem = "windows")]
like image 91
Shepmaster Avatar answered Sep 18 '25 10:09

Shepmaster