This `RUNTIME_OUTPUT_DIRECTORY` section seems relevant only to Cygwin, so why not put it in the Cygwin elseif block? Also, you could then remove the `if ( WIN32 OR CYGWIN )` line and just have `if win32 {...} elseif cygwin {...}`

BTW your indents are wrong. 2 spaces, not 4.