как правильно использовать директиву CMake «project»

У меня огромная кодовая база, в которую входит несколько десятков библиотек и несколько исполняемых файлов.

Кодовая база разбита иерархически, и библиотеки создаются практически на каждом уровне.

Я просмотрел и поместил файл CMakeLists.txt в каждый каталог для создания каждой библиотеки.

В каждом файле CMakeLists.txt я использовал директиву «project (xxx)». Это определило для меня переменные PROJECT_NAME, PROJECT_SOURCE_DIR и PROJECT_BINARY_DIR, которые я разумно использую.

Однако один из членов команды недоволен таким подходом, так как он не может найти реальных примеров того, чтобы кто-то еще делал это. Он часто цитирует примеры KitWare, как не использующие этот подход, и поэтому мы тоже не должны этого делать.

Альтернативный подход, который он предлагает, состоит в том, чтобы установить эти переменные в каждом make-файле, что очень похоже на то, что дает вам "project".

Я действительно не могу понять его точку зрения и не смогу убедить его в обратном. Может ли кто-нибудь пролить свет на недостатки использования директивы проекта таким образом.

Я полагаюсь на вашу коллективную мудрость?

9
задан ScaryAardvark 20 December 2011 в 21:58
поделиться