Как я могу получить FetchContent для загрузки в указанное c местоположение? - PullRequest
0 голосов
/ 02 апреля 2020

Следуя документации FetchContent , например, используя что-то вроде

FetchContent_Declare(
    gitache_package_libcwd_r
    GIT_REPOSITORY "https://github.com/CarloWood/libcwd.git"
    GIT_TAG "master"
)
FetchContent_MakeAvailable(
    gitache_package_libcwd_r
)

Исходный код клонируется в ${CMAKE_BINARY_DIR}/_deps/gitache_package_libcwd_r-src/.

Как мне сделать так, чтобы исходный код в другом месте, например /opt/gitache/libcwd_r/src/gitache_package_libcwd_r (как это было бы, когда я использовал бы ExternalProject с PREFIX из /opt/gitache/libcwd_r)?

1 Ответ

0 голосов
/ 02 апреля 2020

Если кто-то наткнется на этот вопрос в поисках ответа, я обнаружил, что по крайней мере можно заменить частью "${CMAKE_BINARY_DIR}/_deps", установив FETCHCONTENT_BASE_DIR перед вызовом FetchContent_Declare. Я не уверен, возможно ли более тонко настроенное манипулирование или нет. Это представляется возможным, если вы используете расширенную версию FetchContent_Populate , но использование этого имеет несколько недостатков imho.

Например,

set(FETCHCONTENT_BASE_DIR "/opt/gitache/libcwd_r")
FetchContent_Declare(... etc (see question)

будет клонироваться в /opt/gitache/libcwd_r/gitache_package_libcwd_r-src/ и используйте /opt/gitache/libcwd_r/gitache_package_libcwd_r-build в качестве каталога сборки.

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