概要
- nimbleでパッケージを作成するときのメモ
- nimbleで作成したパッケージで色々する
環境
- OSX
- nim 0.17.2
- nimble 0.8.8
外部のパッケージを操作する
パッケージリストを取得する
% nimble update
- ~/.nimble 以下にパッケージリストが配置される
パッケージを検索
% nimble search [キーワード]
- キーワードで関連するパッケージ一覧を表示
パッケージをインストール
% nimble install [パッケージ名]
- ~/.nimble/pkgs 以下にパッケージが配置される
パッケージをアンインストール
% nimble uninstall [パッケージ名]
- ~/.nimble/pkgs 以下の対応するパッケージを削除
自作のパッケージを作成する
パッケージ作成
% mkdir example.nim
% cd example.nim
% nimble init
Info: In order to initialise a new Nimble package, I will need to ask you
... some questions. Default values are shown in square brackets, press
... enter to use them.
Prompt: Package name? [examplenim]
Answer: example
Prompt: Initial version of package? [0.1.0]
Answer:
Prompt: Your name? [honeytrap15]
Answer:
Prompt: Package description?
Answer: example nimble package
Prompt: Package license? [MIT]
Answer:
Prompt: Lowest supported Nim version? [0.17.2]
Answer:
Success: Nimble file created successfully
- ベースとなるnimbleファイルが生成される
ビルド設定
-
nimble buildでプロジェクトをビルドできる
-
以下のような構成にした
% tree
.
├── example.nimble
└── src
└── example.nim
example.nim
echo "example package"
- ソースディレクトリと生成するバイナリをnimbleファイルに設定する
example.nimble
# Package
version = "0.1.0"
author = "honeytrap15"
description = "example nimble package"
license = "MIT"
bin = @["example"]
srcDir = "src"
# Dependencies
requires "nim >= 0.17.2"
- ビルド
% nimble build
Verifying dependencies for example@0.1.0
Building example/example using c backend
% ls
example example.nimble src
% ./example
example package
タスクを追加
- nimbleファイルに定義することでサブコマンドを追加できる
example.nimble
...
task clean, "clean build files":
exec "rm -rf example"
exec "rm -rf src/nimcache"
echo "remove build files"
ローカルのパッケージをインストール
- ローカルにあるパッケージのリンクする
% nimble develop
Warning: This package's binaries will not be compiled nor symlinked for development.
Verifying dependencies for example@#head
Success: example linked successfully to '/Users/hiro/Desktop/example.nim'.
% ls ~/.nimble/pkgs
example-#head
- これをやっておくとテストコードを書いたり、他のパッケージからimportすることができるようになる