The Aberdeen attacker put pen to paper on a three-year contract after entering the final six months of his deal at Pittodrie. The 23-year-old will join up with his new club in the summer unless Rangers can push through a move in the current window.
Dons manager Derek McInnes has previously insisted it will take a good offer to persuade Aberdeen into letting the player leave early as they view him as integral to their ambitions for the rest of this campaign.
Meanwhile, Glenn Middleton completed a loan move to St Johnstone until the end of the 2020/21 season.
The 21-year-old winger will have the chance at regular first-team football after playing only once in a Rangers shirt this campaign. He previously spent time on loan at Hibs and Bradford.