C/C++ のパッケージマネージャーである conan を使ってみた
TL で見かけたので試してみた。
[conan のインストール]
conan
は pip
からインストールすることが出来ます。
$ pip install conan $ conan --version Conan version 0.9.4
他には brew
やバイナリが配布されているみたいです。
詳しくはこちらへ。
ちなみにわたしの環境だとうまく動作しなかったので、ソースから直接インストールしました。
$ git clone https://github.com/conan-io/conan.git $ cd conan $ pip install -r conans/requirements.txt
[使ってみる]
Doc に書いてあるとおり、曖昧に使ってみます。
[プロジェクトの作成]
とりあえず、Doc に載ってる example をそのまま使ってみます。
$ git clone https://github.com/memsharded/example-poco-timer.git mytimer $ cd mytimer
この中にある conanfile.txt
に依存するライブラリやビルドツールの設定が記述されています。
[conanfile.txt]
[requires] Poco/1.7.3@lasote/stable [generators] cmake
[ライブラリのインストール]
conan install
で依存してるプロジェクトをインストールします。
$ mkdir build && cd build $ conan install ..
これにより、依存してるライブラリがインストールされ、指定していたビルドツールの設定が生成されます(今回は .cmake
が生成されます。
[cmake でビルド]
あとは cmake
でビルドします。
(win) $ cmake .. -G "Visual Studio 14 Win64" $ cmake --build . --config Release (linux, mac) $ cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release $ cmake --build . ... [100%] Built target timer $ ./bin/timer Callback called after 250 milliseconds. ...
こんな感じで conan
を利用して依存してるパッケージの管理を行うことが出来ました。
今回は cmake
を使用しましたが他にも Visual Studio
や Xcode
なんかのプロジェクトを生成することも出来ます。
[所感]
思ったよりも簡単に使うことが出来ました。
cmake
や Visual Studio
と言ったビルドツールに対応してるので既存のプロジェクトなんかでも使うことは出来そう。
ただ、個人的にはビルドまわりも conan
側でいい感じに吸収してくれると cmake
とかにも依存する事がないので便利な感じはしました。
あとプロジェクト単位じゃなくてグローバル単位でもライブラリを扱いたいところ(これはやり方があるっぽいけど、まだわかってない
何にしてもこういうのが流行って一般的に利用される世の中になって欲しいですねえ。