Проще говоря: нет, нет флага для прямой установки уровня оптимизации независимо для каждого компилятора.
Однако, CMake предоставляет так называемые типы сборки . Они не зависят от используемого компилятора, и каждый поставляется с предопределенным набором флагов, одним из которых является флаг оптимизации.
Доступные типы сборки:
Debug
Release
RelWithDebInfo
MinSizeRel
Подробное объяснение приведено в этом ответе . Он также предоставляет некоторый код, который помогает идентифицировать рассматриваемые флаги при включении в файл CMakeLists.txt
:
message("CMAKE_C_FLAGS_DEBUG is ${CMAKE_C_FLAGS_DEBUG}")
message("CMAKE_C_FLAGS_RELEASE is ${CMAKE_C_FLAGS_RELEASE}")
message("CMAKE_C_FLAGS_RELWITHDEBINFO is ${CMAKE_C_FLAGS_RELWITHDEBINFO}")
message("CMAKE_C_FLAGS_MINSIZEREL is ${CMAKE_C_FLAGS_MINSIZEREL}")
message("CMAKE_CXX_FLAGS_DEBUG is ${CMAKE_CXX_FLAGS_DEBUG}")
message("CMAKE_CXX_FLAGS_RELEASE is ${CMAKE_CXX_FLAGS_RELEASE}")
message("CMAKE_CXX_FLAGS_RELWITHDEBINFO is ${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
message("CMAKE_CXX_FLAGS_MINSIZEREL is ${CMAKE_CXX_FLAGS_MINSIZEREL}")