try to generate outside source dir to avoid any local changes not commit issue when switching branch