Как управлять частными зависимостями библиотеки с помощью целевых модульных тестов в современном целевом cmake - PullRequest
0 голосов
/ 13 июня 2019

У меня есть библиотека A с общими и частными зависимостями.Модульные тесты содержатся в отдельном исполняемом файле ATests, который требует связать как частные, так и публичные зависимости A.

. В настоящее время я явно связываю все частные зависимости A с модулем.тесты ATest.Это приводит к значительному дублированию кода, которое становится все труднее понять / поддерживать.

add_library(A)
target_link_libraries(A PUBLIC Pub1 PRIVATE Priv1 Priv2)

add_executable(ATests)
target_link_libraries(ATests PRIVATE A Priv1 Priv2)

Я думал о создании отдельной библиотеки интерфейсов APrivDeps для частных зависимостей A, однако это выглядиткак взломатьУ меня есть серьезные сомнения, что это переносимо и испортит статическое соединение из-за распространения зависимости соединения.(Я должен был бы экспортировать вспомогательную библиотеку APrivDeps.)

add_library(APrivDeps)
target_link_libraries(APrivDeps PUBLIC Priv1 Priv2)

add_library(A)
target_link_libraries(A PUBLIC Pub1 PRIVATE ADeps)

add_executable(ATests)
target_link_libraries(ATests PRIVATE A ADeps)

Я ожидаю, что какой-то метод сделает конфигурацию короткой и свободной от дублирования кода, но все же следуя целевому принципу современного CMake.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...