life lesson I learned from #programming: if you have a problem because supporting #windows builds is fucking up the ones for Real Operating Systems, just comment that shit out
like so:
/* uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuugh
#if !defined(HAVE_STRUCT_TIMESPEC) && !defined(timespec) /* tinycthread.h will define timespec on Windows */
struct timespec {
time_t tv_sec;
long tv_nsec;
};
#endif
*/
@KitRedgrave yeah but I didn't want to dive into that huge CMakeLists.txt just yet, I'm working on another thing and I just want a working build 
@grainloom oh. cmake. okay...
@grainloom #ifdef MSC_VER
// stuff
#endif
@chr will that work with all the windows.... compiler thingies?
*totally clueless about windows stuff*
@grainloom itll work with any version of MS visual C/C++, but probably not msys2 or cygwin if people are using those
@chr I think those have the proper headers and don't need the extra `struct timespec` definition 🤔
@grainloom @chr alternative:
src/system_specific_get_the_user_to_fill_this_in_somehow.h
@grainloom oh shit actually it's _MSC_VER, with the underscore in front
@grainloom did this actually work? I didn't think C-style comments were allowed to be nested; I was pretty sure the comment would close at the first */ and then the preprocessor would fail on a mismatched #endif.
@grainloom there are preprocessor macros you can use to do the same thing