conan を使って C++ で json を扱うためのパッケージを読みこむ
conan のどんなパッケージがあるか調べていたら json を読みこむためのパッケージがあったのでせっかくなので試してみました。
[conanfile.txt を作成する]
適当にディレクトリを作成して conanfile.txt を作成します。
$ mkdir json && cd json
[conanfile.txt]
[requires] json/1.0.0@paulobrizolara/stable [generators] gcc
[generators] にいろいろとビルドツールを設定できるんですが、今回はとりあえず gcc のコマンドオプションを生成するようにしました。
あとは C++ のソースも用意しておきます。
[json.cpp]
/json |--conanfile.txt |--json.cpp
[conan でパッケージをインストール]
conanfile.txt を作成したら conan install でパッケージをインストールします。
$ conan install .
Requirements
json/1.0.0@paulobrizolara/stable from conan.io
Packages
json/1.0.0@paulobrizolara/stable:5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9
json/1.0.0@paulobrizolara/stable: Already installed!
PROJECT: Generated conaninfo.txt
PROJECT: Generated gcc created conanbuildinfo.gcc
これによりパッケージを使う上で必要な gcc のオプションが conanbuildinfo.gcc に出力されました。
[conanbuildinfo.gcc]
-I/home/my/.conan/data/json/1.0.0/paulobrizolara/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/include -L/home/my/.conan/data/json/1.0.0/paulobrizolara/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib -Wl,-rpath=/home/my/.conan/data/json/1.0.0/paulobrizolara/stable/package/5ab84d6acfe1f23c4fae0ab88f26e3a396351ac9/lib -std=c++11
[コンパイル]
あとは conanbuildinfo.gcc を使用して gcc でコンパイルします。
$ g++ @conanbuildinfo.gcc json.cpp -o json
$ ./json
{
"answer": {
"everything": 42
},
"happy": true,
"list": [
1,
0,
2
],
"name": "Niels",
"nothing": null,
"object": {
"currency": "USD",
"value": 42.99
},
"pi": 3.141
}
こんな感じで比較的簡単に conan でパッケージを使うことが出来ました。
今回は gcc のオプションを生成するように設定したので使い方も簡単ですね。
ただ、やっぱり1発でコンパイルまでしてくれる conan compile 的なサブオプションがほしいですねえ。