トップ RSS 2.0 RSS 0.91 Atom 1.0

Yet Another KASE's Page(仮)

memo, note...
www.flickr.com
hkase's Ducks photoset hkase's Ducks photoset

2010年07月14日

SConsとYAMLを組み合わせる

SConsでは依存性を記述するためにファイル名のリストを作るわけですが、

  • pythonの文法に従うと、'やら,やらが入って書くのが面倒
  • 1個の文字列をSplit関数に渡す方法だと、特定ファイルを一時的に取り除いたり するときにコメントアウト等ができなくて面倒

という問題が。

YAMLを使ってみる

PyYAML(http://pyyaml.org/)はYAML形式の文字列をリストや辞書に変換できる。 これを使うと、

files = yaml.load("""
- file1.cpp
- file2.cpp
- file3.cpp
""")

でリストができる。

files = yaml.load("""
- file1.cpp
#- file2.cpp
- file3.cpp
""")

でfile2.cppだけ取り除ける。この#はYAMLのコメントアウトとして処理される。 これで解決。

YAMLを使ったビルドツール?

ビルドツールの仕事の半分くらいは

  • ファイル名などのリスト
  • コンパイルオプションなどの辞書(ハッシュ)

の構築なので、YAMLを使った読みやすく書きやすい何かが ありそうな気がするのですが、どこかにありませんか?

[カテゴリー:programming] [reST]

SCons 1.3.0 のバグ

Aliasでクラッシュ

$scons test

でテストを実行するためには、

Alias("test",[],"./UnitTests")
AlwaysBuild("test")

のようなコードを書くわけですが、1.3.0あたりでクラッシュするように。 どうもバグらしい。 (http://scons.tigris.org/issues/show_bug.cgi?id=2443)

env.Alias..のようにして回避。

[カテゴリー:programming] [reST]