cmake improvement