2

私は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のターゲットのいくつかを使用したいと思います(それが理にかなっている場合)。

4

0 に答える 0