本当はD言語で Wavelet Matrix のライブラリを作って公開しようと思ったのですが
23日に間に合わなかったのでdubの紹介をします(出来たらまた別途公開することにします)。
##DUBとは
dub は D 言語のビルドツール兼パッケージマネージャです。
JSON で必要なライブラリ(とそのバージョン)を記載しておくと、dub が自動的に持ってきてくれます。 Ruby でいう Gemfile のようなものですね。
単に便利なだけでなく、D言語の標準パッケージマネージャになるとかならないとか言われているようなので、使うに越したことはありません。
##インストール
DUB の公式サイト で、バイナリかソースをダウンロード&インストールすればOKです。Windows, Mac OS X, Linux 用のバイナリが容易されているので、とても簡単です。
また、DUB に対応しているパッケージの一覧も書いてあるので見てみましょう。
欲しいライブラリが記載されていないときは、Twitterでつぶやくとなぜかいつの間にか追加されています。怖い。
##つかいかた
$ dub init test
Successfully created an empty project in '/Users/kazoo04/test'.
で、プロジェクト用ディレクトリ(ここでは test)が生成されます。中身は
- /package.json
- /source
- /source/app.d
の3つです。
ソースコードは source ディレクトリに入っていて、このディレクトリ内のコードがビルドの対象になります。ちなみに src という名前でもOKです。
package.json の dependencies にパッケージのことを書きます。
デフォルトでは次のような感じになっています。
{
"name": "test",
"description": "A minimal D application.",
"copyright": "Copyright © 2013, kazoo04",
"authors": ["kazoo04"],
"dependencies": {
}
}
たとえば、 msgpack-d と vibe.d を使いたいときは
{
"name": "test",
"description": "A minimal D application.",
"copyright": "Copyright © 2013, kazoo04",
"authors": ["kazoo04"],
"dependencies": {
"vibe-d": ">=0.7.19-beta.2"
}
}
のように書きます。上記のようにバージョンを指定すればそれを、master と書けばリポジトリの最新のものをインストールしてくれます。
たとえば次のような表記が使えます。
==1.0.0
>=1.0.0
>=1.0.0 <=1.2.3
~master
ビルドするときは、
$ dub build
です。パッケージのインストールのために時間がかかりますが気長に待ちましょう。
最後に
$ dub run
で実行できます。
##その他のオプション
公式ページ に細かい package.json の設定が載っています。
たとえば、 configurations を指定することで、複数のビルド設定を切り替えることが出来たり、 DUB に登録されていないリポジトリを登録したりすることができます。
以上簡単ですが DUB の紹介でした。