Redesign genversion and make only main.cpp depend on it