rewrite CMakeLists.txt