use CMake for project management