В нашем проекте cmake мы определяем несколько целей.Некоторые из них предназначены для производства (в частности, исполняемые файлы), и они помечены для установки с использованием install_targets
.Некоторые другие - это модульные тесты, которые мы не устанавливаем.
В определенных контекстах мы хотели бы создавать только исполняемые файлы и их зависимости, но не модульные тесты.То есть строить только те цели, которые будут установлены.Просто запуск ninja
или ninja install
создает все, включая модульные тесты, что занимает много времени.
Я не мог найти простой и понятный способ выполнить это.Я мог бы определить новую цель и поместить в качестве зависимостей все исполняемые файлы, но затем добавление нового исполняемого файла потребовало бы также изменить зависимости этой цели.
Есть ли простой способ задать систему сборкикомпилировать цели, которые будут установлены, и игнорировать другие?
Кроме того, будет ли решение зависеть от генератора?То есть будут ли различия между make-файлами unix, ninja, проектом xcode, ...?