# MPC options

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

config MPC_V_0_9
    bool
    prompt "0.9 (EXPERIMENTAL)"
    depends on EXPERIMENTAL

config MPC_V_0_8_2
    bool
    prompt "0.8.2 (EXPERIMENTAL)"
    depends on EXPERIMENTAL

config MPC_V_0_8_1
    bool
    prompt "0.8.1"

config MPC_V_0_7
    bool
    prompt "0.7"

config MPC_V_0_6
    bool
    prompt "0.6 (OBSOLETE)"
    depends on OBSOLETE

endchoice

config MPC_VERSION
    string
# Don't remove next line
# CT_INSERT_VERSION_STRING_BELOW
    default "0.9" if MPC_V_0_9
    default "0.8.2" if MPC_V_0_8_2
    default "0.8.1" if MPC_V_0_8_1
    default "0.7" if MPC_V_0_7
    default "0.6" if MPC_V_0_6
