Скомпилируйте другие внешние библиотеки (без CMakeLists.txt) с CMake - PullRequest
4 голосов
/ 16 августа 2010

short - Можно ли создать внешний двоичный файл / библиотеку из проекта с помощью CMake, если двоичный файл / библиотека имеет только заданный make-файл?

Итак, у вас есть собственный проект, куча CMakeLists.txt в вашем src-дереве и эта внешняя библиотека с ее исходными файлами. Ваши источники зависят от этой библиотеки, и некоторые двоичные файлы / библиотеки хотят ссылаться на нее. Как можно скомпилировать эту внешнюю библиотеку, если в ней есть только файл проекта makefile или Visual Studio и нет заданного CMakeLists.txt? Есть ли возможность вызвать configure / make из CMake? Или запустить пакетную компиляцию с VS под Windows? Или что-нибудь еще?

Спасибо за вашу помощь с этим ...

1 Ответ

18 голосов
/ 16 августа 2010

Звучит так, будто вы хотите внешний проект CMake.Я довольно много работал с ним при разработке системы сборки Titan, и она предоставляет способ управления несколькими сборками из исходного кода.Вы можете включить ExternalProject, и тогда что-то вроде следующего создаст проект:

ExternalProject_Add(Qt
   DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}
   URL ${qt_file}
   UPDATE_COMMAND ""
   SOURCE_DIR ${qt_source}
   BUILD_IN_SOURCE 1
   CONFIGURE_COMMAND ${qt_configure}
   BUILD_COMMAND ${qt_build}
   INSTALL_COMMAND "${qt_install}"
   )

В выпуске от источника также есть статья о внешних проектахИспользуя внешний проект, вы можете вызывать любые команды make, доступные в хост-системе, мы собираем Qt, используя прилагаемую команду configure для Windows, Mac и Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...