Improve how CMake rules