# GMP options

choice
    bool
    prompt "GMP version"
# Don't remove next line
# CT_INSERT_VERSION_BELOW

config GMP_V_5_0_2
    bool
    prompt "5.0.2 (EXPERIMENTAL)"
    depends on EXPERIMENTAL

config GMP_V_5_0_1
    bool
    prompt "5.0.1 (EXPERIMENTAL)"
    depends on EXPERIMENTAL

config GMP_V_4_3_2
    bool
    prompt "4.3.2"

config GMP_V_4_3_1
    bool
    prompt "4.3.1"

config GMP_V_4_3_0
    bool
    prompt "4.3.0"

config GMP_V_4_2_4
    bool
    prompt "4.2.4 (OBSOLETE)"
    depends on OBSOLETE

config GMP_V_4_2_2
    bool
    prompt "4.2.2 (OBSOLETE)"
    depends on OBSOLETE

endchoice

config GMP_VERSION
    string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
    default "5.0.2" if GMP_V_5_0_2
    default "5.0.1" if GMP_V_5_0_1
    default "4.3.2" if GMP_V_4_3_2
    default "4.3.1" if GMP_V_4_3_1
    default "4.3.0" if GMP_V_4_3_0
    default "4.2.4" if GMP_V_4_2_4
    default "4.2.2" if GMP_V_4_2_2
