私はCmakeでプロジェクトを構築しており、FetchContent
依存関係を管理するために使用しています。いくつかの理由から、システム全体にインストールされたパッケージに依存できないため、このパッケージは非常に役立ちます。次のようなことができます。
cmake_minimum_required(VERSION 3.14)
project(dummy LANGUAGES C CXX)
include(FetchContent)
FetchContent_Declare(nlohmann
GIT_REPOSITORY https://github.com/onavratil-monetplus/json
GIT_TAG v3.7.3
)
FetchContent_MakeAvailable(nlohmann)
add_executable(dummy main.cpp)
target_link_libraries(dummy PUBLIC nlohmann_json::nlohmann_json)
これで、レポがCMakeLists.txt
. Botan ライブラリなど、cmake 以外のプロジェクトにも同様のアプローチを使用したいと考えています。どうやら
FetchContent_Declare(botan
GIT_REPOSITORY https://github.com/onavratil-monetplus/botan
GIT_TAG 2.17.2
)
FetchContent_MakeAvailable(botan)
cmakeプロジェクトではないため、ビルドは実行されません。追加することを検討します
CONFIGURE_COMMAND "<SOURCE_DIR>/configure.py --prefix=<BINARY_DIR>"
BUILD_COMMAND "cd <SOURCE_DIR> && make"
またはdeclareコマンドに似たものですが、FetchContent
ドキュメントでは、これらの特定の引数がに渡されると無視されると明示的に述べていFetchContent
ます。
今、闘争は明らかです-FetchContent
このシナリオで適切に使用するにはどうすればよいですか? fetchcontent の後に使用することを検討してExternalProject_Add
いましたが、fetchcontent は役に立たないようです (ExternalProject は git リポジトリもダウンロードできます)。さらに、構成時にbotanのターゲットのいくつかを使用したいと思います(それが理にかなっている場合)。