качестве таргета, например add_executable(${MY_PROG} ...) или даже add_executable(${PROJECT_NAME} ...)? То что это антипатерн мне сказал коллега с работы и я как бы не задумывался и делал как он говорит, но недавно встретил код где есть подобное. И вот чёт стал гуглить и не найду чтобы это как то порицалось.
Надо уточнять какой именно CMake - 2.x, или Modern. Имя таргета в переменной само по себе не паттерн и не антипаттерн, это просто прием, и как с любым приемом надо хорошо понимать, зачем это делается, и нет ли более хорошего/ идеоматичного способа сделать то же самое. Положить имя таргета в переменную просто так на всякий случай - недостаточно хорошая причина. Поменять имя выходного артефакта - вообще не причина, для этого есть свойства таргета. Использовать переменные с названием таргета в качестве выхлопа Find модуля - а вот это как раз антипаттерн, и стандартные модули на эту тему потихоньку допиливают.
Modern. Спасибо большое за пояснение.
Модерн это от какой версии? 3.27 или старше?
Обсуждают сегодня