LINUX.ORG.RU

История изменений

Исправление rumgot, (текущая версия) :

CMake - это вообще набор костылей и подпорок. Самый правильный вариант указания стандарта крестов в modern CMake сейчас примерно такой: target_compile_features(target_name PUBLIC cxx_std_17)

Вот тут согласен. Тем более в этом случае данное требование стандарта распростроняется на зависимые цели (например при подключениии в них заголовочных файлов из данной цели).
! Но в случае, когда у нас есть проект с несколькими подпроектами (в каждом из которых используется одинаковый стандарт), то удобнее использовать CMAKE_CXX_STANDARD т.к. в этом случае это нужно будет сделать только в главном CMakeLists.txt, тогда как в случае target_compile_features() стандарт требуется указывать для каждой цели.

Исходная версия rumgot, :

CMake - это вообще набор костылей и подпорок. Самый правильный вариант указания стандарта крестов в modern CMake сейчас примерно такой: target_compile_features(target_name PUBLIC cxx_std_17)

Вот тут согласен. Тем более в этом случае данное требоване стандарта распростроняется на зависимые цели (например при подключениии в них заголовочных файлов из данной цели).
! Но в случае, когда у нас есть проект с несколькими подпроектами (в каждом из которых используется одинаковый стандарт), то удобнее использовать CMAKE_CXX_STANDARD т.к. в этом случае это нужно будет сделать только в главном CMakeLists.txt, тогда как в случае target_compile_features() стандарт требуется указывать для каждой цели.