# Part-2 of mingw C library options: development libraries

config MINGW_DIRECTX
    bool
    prompt "Include DirectX development files"

config MINGW_OPENGL
    bool
    prompt "Include OpenGL development files"

config MINGW_PDCURSES
    bool
    prompt "Include PDCurses (NCurses library) development files"

choice
    bool
    prompt "PDCurses library version"
    depends on MINGW_PDCURSES

config MINGW_PDCURSES_V_3_4
    bool
    prompt "3.4"

# CT_INSERT_VERSION_ABOVE
# Don't remove above line!

config MINGW_PDCURSES_V_select
    bool
    prompt "Other version"

endchoice

config MINGW_PDCURSES_VERSION
    string
    prompt "PDCurses library version" if MINGW_PDCURSES_V_select
    default "3.4" if MINGW_PDCURSES_V_3_4
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!
    help
      Enter the version number of the PDCurses library to use

config MINGW_GNURX
    bool
    prompt "Include GnuRX (regex library) development files"

choice
    bool
    prompt "GnuRX library version"
    depends on MINGW_GNURX

config MINGW_GNURX_V_2_5_1
    bool
    prompt "2.5.1"

# CT_INSERT_VERSION_ABOVE
# Don't remove above line!

config MINGW_GNURX_V_select
    bool
    prompt "Other version"

endchoice

config MINGW_GNURX_VERSION
    string
    prompt "GnuRX library version" if MINGW_GNURX_V_select
    default "2.5.1" if MINGW_GNURX_V_2_5_1
# CT_INSERT_VERSION_STRING_ABOVE
# Don't remove above line!
    help
      Enter the version number of the Regex library to use

