Big commit : add cmake support and change tree organization