CMake add_custom_command
を使用しています。Util.cmake
スクリプトで、後でビルドプロセスで使用されるファイルをダウンロードします。これらのファイルは変更される可能性がありますので、ファイルを再ダウンロードする必要があるかどうかを判断するために、CMake内の指定された値に対してローカルファイルのハッシュ値をチェックする方法を追加したいと考えています。ダウンロードファイルのCMakeチェックハッシュ(MD5/SHA256)
現在、ファイルがダウンロードされると、CMakeはファイルが既にローカルに存在するため、ファイルの再ダウンロードは考慮しません。
今後、そのファイルのMD5/SHA256チェックサムを提供し、ローカルファイルがコアタクトであることを確認したいと思います。ここで
(これは単なる概念の一例である)私がしようとしているものです:
add_custom_command(OUTPUT ./file.dat
COMMAND wget ${FILE_PATH}
)
if (opt_HASH)
add_custom_command(OUTPUT ${local_HASH}
COMMAND local_HASH=$(sha256sum ./file.dat)
DEPENDS ./file.dat
)
if (NOT ${opt_HASH} STREQUAL ${local_HASH})
# throw ERROR
endif()
endif()
あなたが見ることができるように私は今の不一致を検出したいとしても自動にしたくありません変更されたファイルをダウンロードしてください。 opt_HASH
は明らかにCMakeを通じて提供されていますが、重要なのは、この呼び出しがすでにダウンロードされているファイルに依存する必要があることです。より簡単な呼び出しでFILE()
を呼び出すことができるようです。
PS:何とかしたら、SHA256よりMD5
を使うこともできます。
にハッシュを入れなければならない、あなたはcmakeののExternalDataモジュールを見て撮影したことがありますか? https://cmake.org/cmake/help/v3.2/module/ExternalData.html –