Non-free header has been removed after opencv 2.4.7, all its functions has been moved to features2d.h instead, with these changes cmake will be able to find most recent releases of opencv