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
的なサブオプションがほしいですねえ。