improve CMakeLists.txt