20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

D言語Advent Calendar 2013

Day 23

D言語のビルドツール DUB

Posted at

本当は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 の紹介でした。

20
20
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?