It is best not to use eval
unnecessarily. Try not to put the command inside a variable.
You can put the options as a variable though:
if [ ... ]
string="Unix makefiles"
else
string="MSYS Makefiles"
else
string="...."
fi
cmake -G "$string" # Just call the command normally