как использовать пользовательские модули cmake, указанные сторонней библиотекой? - PullRequest
1 голос
/ 16 марта 2020

У меня есть проект, который использует catch2 в качестве моей пользовательской среды, и я использую cmake в качестве моей системы сборки.

В репо catch2, документы для интеграции cmake указали, что мы можем использовать

find_package(Catch2 REQUIRED)

и будет также включать пользовательские модули, указанные в репо. Теперь я ищу реализацию инструментов CI для дальнейшего тестирования в моем проекте, когда происходит коммит. И я считаю, что лучше всего позволить cmake позаботиться о моих зависимостях вместо меня, вместо того, чтобы пытаться запускать все команды в среде CI

Так что теперь я использовал модуль cmake FetchContent. Однако, когда я использовал это, я обнаружил, что пользовательские модули cmake в Catch Repo больше не работают. Я пытался сделать это

FetchContent_Declare(
    Catch2
    GIT_REPOSITORY      https://github.com/catchorg/Catch2.git
    GIT_PROGRESS        TRUE
    UPDATE_DISCONNECTED ON
)

FetchContent_MakeAvailable(Catch2)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/_deps/catch2/contrib/Catch.cmake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/_deps/catch2/contrib/CatchAddTests.cmake")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_BINARY_DIR}/_deps/catch2/contrib/ParseAndAddCatchTests.cmake")
message("The list is: " ${CMAKE_MODULE_PATH})

модули находятся в папке contrib репо catch2. Как мне это сделать?

...