as it turns out, fetchcontent is calling external_project internally at some point which to avoid is why this function was started in the first place