Как использовать cmake для компиляции проекта autoconf?

Я использую cmake для создания своего проекта и хочу, чтобы он интегрировался со сторонней библиотекой Project_A, которая использует autoconf для создания make. Как написать CMakeLists.txt для совместной сборки Project_A и моего проекта?

Спасибо!


person jiluo    schedule 15.11.2012    source источник
comment
Project_A является зависимостью. Установите его. Требуйте этого. Почему вы хотите интегрировать его в свой проект на уровне исходного кода?   -  person William Pursell    schedule 15.11.2012
comment
@WilliamPursell нам нужно изменить код проекта зависимостей, мы хотим, чтобы код Project_A был частью моего проекта   -  person jiluo    schedule 16.11.2012
comment
Если вы изменяете Project_A, сделайте это, но нет необходимости включать его в ваше дерево. Измените его, установите модифицированную версию и пользуйтесь! При необходимости переименуйте ее и разветвите, но в долгосрочной перспективе обслуживание будет намного сложнее, если вы интегрируете библиотеку в свою кодовую базу.   -  person William Pursell    schedule 16.11.2012
comment
@WilliamPursell Я хочу отправить свой проект как отдельный пакет без внешней зависимости, поэтому я хочу скомпилировать исходный код, возможно, альтернативный способ - сделать статическую ссылку   -  person jiluo    schedule 16.11.2012


Ответы (2)


Я думаю, что использование модуля ExternalProject в CMake было бы лучшим решением. См. здесь хорошее введение в API.

person RobertJMaynard    schedule 15.11.2012

Если вы хотите повторно использовать лексический код (то есть копировать и вставлять код, а не полагаться на зависимость), не останавливайтесь на полпути. Используя внешний код таким образом, вы, по сути, заявляете о своем праве на него для целей своего проекта, поэтому нет необходимости сохранять сборку автоинструмента. Просто вытащите код и соберите его через cmake. Не пытайтесь создать гибридную сборку.

person William Pursell    schedule 21.11.2012
comment
@ruipacheco Да, будет. Если вы копируете код в свое дерево, совершенно неважно, является ли ваш проект библиотекой. - person William Pursell; 20.06.2017