added vs support in cmake