Обычно подобные вещи делаются не так.
Для этого в cmake предусмотрена функция
configure_file
Смысл в том, что вы создаете шаблонный файл, содержащий ссылки на переменные cmake. configure_file обрабатывает этот шаблон, заменяет все ссылки значениями переменных и создает из них новый файл. Этот новый файл вы и используете в проекте. Т.е. реального файла (в вашем случае conf.h) в проекте не существует, он появляется только во время компиляции.
Изменять значения переменных cmake пользователь может через параметры командной строки cmake с помощью ключа -D, например: cmake ... -DMY_VAL="New value".
Подобную переменную внутри cmakelists.txt обычно декларируют через option, там же можно указать и описание переменной и значение по умолчанию.
Примеры использования можете найти в любом более менее крупном проекте cmake на github.