vcpkg_chii: vcpkg cmake hyper integration injector 作りましたのメモ
↓つくりました:
- https://github.com/usagi/vcpkg_chii ; vcpkg_chii: vcpkg cmake hyper integration injector
- vcpkg_chii ( vcpkg cmake hyper integration injector ) is a CMake module for vcpkg hyper integration for CMake
- vcpkg ( Windows, GNU/Linux, OSX 向けのクロスプラットフォーム C++ パッケージマネージャー)
- CMake ( クロスプラットフォームの C++ プロジェクトではデファクトスタンダードの1つのメタビルドツール )
- vcpkg_chii ( vcpkg cmake hyper integration injector ) is a CMake module for vcpkg hyper integration for CMake
vcpkg を使い始めてから、自分の便利用に書いた CMake 用のギミックをモジュール化したものです。 README.md の冒頭で
Let's do more easy, make it more convenient for vcpkg and CMake users.
(にほんご↓)
もっと楽に、便利に、 vcpkg と CMake ユーザーを。
と、いうわけで vcpkg_chii を使うと、 "hyper" (過剰なくらいの) な vcpkg のインテグレーション(統合機能)を CMake へ注入します。具体的には、
cmake ..
するだけ(理想的には)でOKになります(†1)VCPKG_TARGET_TRIPLET
は環境変数またはシステム標準から自動設定されるようになりますCMAKE_TOOLCHAIN_FILE
はvcpkg
コマンドのパスから自動設定されるようになります
- 事前に
vcpkg install <library>
することを気にしなくてよくなります- 必要なライブラリーは
cmake
の中で自動的に vcpkg でインストールされるようになります
- 必要なライブラリーは
なので、ちょっと過剰なんですが、実用性としてはとても便利になるのでまあいっかーと思います。注意点として、一応、この機能を使用するプロジェクトを公開する場合は、ソースからビルドするユーザーに対してこんな機能を取り込んでいるよって表示はした方が良いと思います。何も指定しないと試しに CMake したら依存ライブラリーを vcpkg で全自動で落としてビルドし始めて気づいたら cmake するだけでビルドまで終わってしまった…というのは、状況によっては望まないか警戒されると思うので。たいていは、実際問題便利なだけだと…思うけどね。
ちなみに、 cmake .. -DVCPKG_CHII_ENABLE=OFF
すれば vcpkg_chii の機能は使わないモードになるので、 vcpkg あるいは vcpkg_chii を使いたくない状況やユーザーにも必要最小限ていどには安心かもしれません。
vcpkg, cmake に興味があれば、とりあえず使ってみて下さい。使い方の例は、 example に簡単な vcpkg から Eigen と google-test を引っ張ってきて使う CMake + vcpkg_chii 採用なミニ・プロジェクトを用意したので、そちらでお試し下さい。
(†1): vcpkg 標準の CMake インテグレーションは cmake .. -DCMAKE_TOOLCHAIN_FILE=<path-to-vcpkg>/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static
とか良くも悪くも cmake するときに長い呪文の詠唱を必要とします。