# mingw options

## depends on MINGW32
##
## select LIBC_SUPPORT_WIN32THREADS
##
## help The de-facto standard for Mingw distributions.

choice
    bool
    prompt "Mingw runtime version"

# Don't remove next line
# CT_INSERT_VERSION_BELOW
config MINGWRT_V_3_18
    bool
    prompt "3.18"

config MINGWRT_V_select
    bool
    prompt "Other version"

endchoice

config MINGWRT_VERSION
    string
    prompt "Mingw runtime version" if MINGWRT_V_select
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
    default "3.18" if MINGWRT_V_3_18
    help
      Enter the version number of the mingw runtime files to use

