Rafael Nadal will play Novak Djokovic in a mouthwatering Olympic encounter at Roland Garros after battling past Marton Fucsovics.