Я в процессе внедрения CMake в старый проект.Одна цель состоит в том, чтобы начать следовать хорошим современным принципам CMake - то есть думать с точки зрения модулей.Одна из целей современного CMake - дать модулям возможность обособиться от верхнего уровня, который создаст зависимость от него через add_subdirectory
.
Одна вещь, которую этот проект делает, это определение файла platform.hчто в основном все подмодули включают.Я предполагаю, что это анти-шаблон, так как он создает зависимость в неправильном направлении - т.е. библиотеки нижнего уровня зависят от файла в верхнем слое.
Мой вопрос - если вы хотите указать субмодулям различные настройки, используемые во время компиляции, существует ли современный способ CMake для этого?Я предполагаю, что это будет похоже на то, как ядро Linux устанавливает значения в файлах kconfig, которые обновляются по всему источнику во время make config.Там также находится верхний уровень, который влияет на подмодули.
РЕДАКТИРОВАТЬ: я знаю, что вы можете передавать определения с помощью команды сборки cmake, но это кажется громоздким, если их больше, чем несколько.