The only minor point I will make is that you won’t be able to license your software under GNU, or any other GNU compatible license if you include restrictions that actively prevent windows users from running your application.
Because doing that would subvert the first freedom (freedom 0) in the Free Software Foundation’s definition of free software:
- The freedom to run the program as you wish, for any purpose (freedom 0).
ref:
http://www.gnu.org/philosophy/free-sw.en.html#four-freedoms
Free software is free for all users to run, for any purpose.
So, if your program will build on WSL, but you have put code into your project that actively prevents your software from running in WSL - then you are restricting the freedoms of Windows users. Therefore, your software is NOT free software and is incompatible with the GNU licences. Which means that your software would have to be distributed using another, more restrictive licence and would therefore be considered non-free software.
If your software relies on libraries that aren’t available on Windows and are not in WSL either - that’s not an issue at all because your software is simply incompatible with windows/WSL and will not build or run on it.
But if you’re a true free software advocate, the last thing you want to be doing is putting restrictions on your users. If you want your software to be useful to as many people as possible, then surely you’d make it cross-platform, to allow more users to be able to use it?!
I have been a full time Linux user for over 15 years. However at work, I am forced to run and work on Windows. And I love the fact that pretty much all of my favourite pieces of free software from Linux, will build and run in Windows - either natively, or via Cygwin, or WSL. Having all of my favourite, most familiar tools available to me on Windows helps to make me more productive. It also helps to maintain my sanity at work. Windows sucks!
Sometimes I even run an X11 session with dwm (tiling window manager) inside windows.
At the end of the day, actively preventing users from running your software on WSL isn’t sticking it to the man, or punishing M$. It’s just punishing/alienating potential users of your software.