Необязательные встроенные сборки для зависимостей - PullRequest
0 голосов
/ 05 июля 2018

У меня есть существующая кодовая база, где ряд сторонних зависимостей был добавлен как подмодули Git, и их каталоги напрямую ссылаются в CMakeLists.txt, как в include_directories(../external/foo).

Некоторые из зависимостей - это большие проекты, такие как FFmpeg, и я бы предпочел просто использовать версию, которую я установил в своей системе с менеджером пакетов. Но сопровождающий кодовой базы хочет иметь возможность продолжать использовать зависимости внутри дерева.

Я подумал, что компромиссом будет настройка CMake для разрешения и того, и другого, либо с использованием установленного пакета, либо с использованием подмодулей внутри дерева. Я думаю, find_package можно использовать для поиска установленного пакета, но есть ли хороший способ реализовать это поведение, которое не слишком хакерское?

1 Ответ

0 голосов
/ 05 июля 2018

Вы можете добавить опцию в свой файл cmake, которая позволяет пользователю переключаться между внутренним FFMpeg или системным. опция (INTREE_FFMPEG «Использовать intree ffmpeg» ON). Опцию можно установить либо через cmake-gui, либо как переключатель командной строки.

...