#[=======================================================================[.rst: Windows ------- This file contains functions for options and configuration for targeting the Windows platform ]=======================================================================] function( windows_options ) option( GODOT_USE_STATIC_CPP "Link MinGW/MSVC C++ runtime libraries statically" ON ) option( GODOT_DEBUG_CRT "Compile with MSVC's debug CRT (/MDd)" OFF ) endfunction() function( windows_generate TARGET_NAME ) set( IS_MSVC "$" ) set( IS_CLANG "$,$>" ) set( NOT_MSVC "$" ) set( STATIC_CPP "$") set( DISABLE_EXCEPTIONS "$") set( DEBUG_CRT "$" ) set_target_properties( ${TARGET_NAME} PROPERTIES PDB_OUTPUT_DIRECTORY "$<1:${CMAKE_SOURCE_DIR}/bin>" INTERFACE_MSVC_RUNTIME_LIBRARY "$>" ) target_compile_definitions( ${TARGET_NAME} PUBLIC WINDOWS_ENABLED $<${IS_MSVC}: TYPED_METHOD_BIND NOMINMAX > ) target_link_options( ${TARGET_NAME} PUBLIC $<${NOT_MSVC}: -Wl,--no-undefined $<${STATIC_CPP}: -static -static-libgcc -static-libstdc++ > > $<${IS_CLANG}:-lstdc++> ) common_compiler_flags( ${TARGET_NAME} ) endfunction()