Управление зависимостями в C с помощью CMake

#c #cmake

#c #cmake

Вопрос:

Недавно я попытался создать несколько базовых проектов на C (используя CMake), но один аспект, который я нахожу очень сложным, — это заставить все разные вещи, которые я делал, красиво связать вместе. Например, я начал с создания библиотеки структур данных, которая содержит некоторые базовые структуры данных, а также функции для их обхода и т.д., И библиотеку тестирования, которая обрабатывает модульное тестирование. В большинстве новых проектов, которые я делаю, я нахожу, что мне нужно включить эти две библиотеки, но я не могу найти простой способ сделать это. Я пытался сделать это с помощью подмодуля git, и хотя это по большей части работало, всякий раз, когда я обновлял какую-либо из зависимостей, обновление зависимого элемента казалось кошмаром. Я также ознакомился с системой пакетов cmake; find_package , и связанными с ней функциями; но, похоже, я не могу заставить это работать (по крайней мере, когда я хочу установить его в пользовательский каталог, то есть).

Мне было интересно, существует ли какой-то «стандартный» способ, которым программисты на C справляются с этим, и что это может быть. Являются ли подмодули правильным решением? Если да, то есть ли способ, которым я мог бы сделать это чисто, убедившись, что все всегда в правильной версии?

Заранее спасибо.