function(host_compile src dst_cmd) if(CMAKE_CROSSCOMPILING) unset(link_flags) if(CMAKE_HOST_WIN32) set(dst "${dst_cmd}.exe") if(CMAKE_COMPILER_IS_GNUCXX) set(link_flags -Wl,--subsystem,console) endif() else() set(dst ${dst_cmd}) endif() # assume cc foo.c -o foo # will work on most hosts add_custom_command( OUTPUT ${dst} COMMAND cc ${src} -o ${dst} ${link_flags} DEPENDS ${src} ) else() get_filename_component(dst ${dst_cmd} NAME) add_executable(${dst} ${src}) # this is necessary because we override main with SDL_main target_compile_definitions(${dst} PRIVATE -Dmain=main) endif() endfunction()