Вообще я очень люблю использовать CMake для создания различных небольших тестов. Собирается везде, ручной работы ощутимо меньше, чем если писать правила для Make, генерируется поддержка для любой IDE (если тестик в что-то более крупное перерастет и т.д). И как-то меня угораздило “проспать” как CMake 3.x так и довольно полезную фифу в нем – простое и понятное подключение поддержки C++11. Я всегда подключал C++11 по старинке:
Но, оказывается-то, прогресс шагнул далеко вперед! так что для тех кого так же как и меня “заморозили” сообщаю – все стало проще и понятнее:
project(cpp11_test)
add_executable(cpp11_test main.cpp)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 11) # (2)
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD_REQUIRED ON) # (3)
Прекрасная фича доступна начиная с CMake 3.1
Опечатки: “речной работы”, “Make 3.x”
Спасибо! Сходил, отключил проверку орфографии…
Вот что меня напрягает в CMake, так это то, что он состоит полностью из заклинаний, он декларативный до какой-то филологичности, нужно просто запомнить кучу ключевых слов, понять вывести логически – никак
Да какой же он декларативный, если там и циклы и условия часто используются? Make – вот уж образец декларативности
Мне больше всего не нравится в CMake не детерминированное поведение. Никогда не знаешь к чему приведет, к примеру, повторный запуск генерации скриптов на более-менее крупном проекте. Например у нас сейчас такая попытка приводит к ошибкам где-то в глубинах XCode %)