Split and submit from pr3, I am not familiar with CMake, I don't know what big impact this change will bring