Я пытаюсь включить несколько сторонних библиотек в свое дерево исходных текстов с минимальными изменениями в их системе сборки для простоты обновления. Все они, как и я, используют CMake, поэтому в моем собственном CMakeLists.txt я могу использовать add_subdirectory (extern / foo)
для libfoo.
Но файл foo CMakeLists.txt компилирует тестовую программу, собирает документацию, разделяемую библиотеку, которая мне не нужна, и так далее. Авторы libfoo предусмотрительно управляли ими с помощью параметров - option (FOO_BUILD_SHARED "Build libfoo shared library" ON)
, например, - это означает, что я могу установить их через командную строку CMake. Но я бы хотел сделать это отключенным по умолчанию и переопределить через командную строку.
Я пробовал выполнить set (FOO_BUILD_SHARED OFF)
перед add_subdirectory (extern / foo)
. Это приводит к тому, что я не пытаюсь создать общую библиотеку во время второй и последующих попыток сборки, но не во время первой, которую мне действительно нужно ускорить.
Возможно ли это, или мне нужно поддерживать разветвленные CMakeLists. txt для этих проектов?