Для того, чтобы передать опцию компиляции компилятору, в CMake можно прописывать переменную CMAKE_CXX_FLAGS:
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wshadow")
Однако очень важно, в каком месте декларативного файла CMakeLists.txt эта переменная прописана. Если она прописана ДО опции project(), то установки из этой переменной будут молча игнорироваться.
В CMake нужно устанавливать такие переменные после опции project().
* * *
Кстати, даже если правильно прописать переменную MAKE_CXX_FLAGS, то в результирующем файле Makefile этих опций не будет. А будут они находиться в файле:
CMakeFiles/sample.dir/flags.make
Как же они будут использоваться при обработке Makefile командой make? Дело в том, что в Makefile прописаны команды, которые в момент запуска команды make вызвают программу cmake и которая в свою очередь будет парсить CMakeLists.txt!
То есть, файл Makefile, сгенерированный CMake - он, по сути, неполноценный. И без файла CMakeLists.txt, и без установленной в системе cmake, программу из такого Makefile невозможно будет собрать.