CMake: несколько подпроектов, использующих одну и ту же статическую библиотеку

Я использую cmake для компиляции одного из моих рабочих проектов, вот сделка

-
  client/
    CMakeLists.txt
  server/
    CMakeLists.txt
  libs/
    libstuff/
      CMakeLists.txt
  CMakeLists.txt

Итак, я хочу иметь возможность компилировать каждый подпроект индивидуально и создавать как клиент, так и сервер из корневой папки.

Допустим, клиент и сервер нуждаются в libstuff.

Я пробовал использовать "add_subdirectory" с путем к библиотеке в CMakeLists.txt как на клиенте, так и на сервере, он работает, когда вы компилируете сервер или клиент, но если вы попытаетесь запустить оба из корневого каталога:

CMake Error at common/libplugin/CMakeLists.txt:33 (ADD_LIBRARY):
  add_library cannot create target "plugin" because another target with the
  same name already exists.  The existing target is a static library created
  in source directory "/home/adrien/git/r-type/common/libplugin".  See
  documentation for policy CMP0002 for more details.

Итак, я вроде как новичок в cmake, и я не уверен, что мне делать, следует ли мне использовать add_dependencies?

Спасибо за вашу помощь,

21
задан Intrepidd 9 December 2011 в 00:28
поделиться