3

現在、次のvaladocビルドタスクを使用して、valaアプリケーションのAPIドキュメントを生成しています:

doc = bld.new_task_gen (
  features = 'valadoc',
  output_dir = '../doc/html',
  package_name = bld.env['PACKAGE_NAME'],
  package_version = bld.env['VERSION'],
  packages = 'gtk+-3.0 gee-1.0 libxml-2.0 x11 gdk-x11-3.0 libpeas-gtk-1.0 libpeas-1.0 config xtst gdk-3.0',
  vapi_dirs = '../vapi',
  force = True)

path = bld.path.find_dir ('../src')
doc.files = path.ant_glob (incl='**/*.vala')

このタスクは、html ファイルと画像ファイルを含むいくつかのサブディレクトリを含むディレクトリ html を出力ディレクトリに作成します。

私がやろうとしていることは、そのようなファイルを /usr/share/doc/projectname/html/ にインストールすることです。そのために、wscript_build ファイルに以下を追加しました (ここで見つけたドキュメントに従ってください)。

output_dir = doc.bld.path.find_or_declare('../doc/html')
doc.outputs = output_dir.ant_glob (incl='**/*')
doc.bld.install_files('${PREFIX}/share/doc/projectname/html', doc.outputs)

ただし、これにより「Missing node signature」というエラーが発生します。このエラーを回避する方法を知っている人はいますか? または、waf を使用してディレクトリを再帰的にインストールする簡単な方法はありますか?

ここで本格的なサンプルを見つけることができます。

4

2 に答える 2

3

生成されたファイルにも同様の問題があり、対応する Node オブジェクトの署名を更新する必要がありました。タスクを作成してみてください:

def signature_task(task):
    for x in task.generator.bld.path.find_dir('../doc/html').ant_glob('**/*', remove=False): 
        x.sig = Utils.h_file(x.abspath())

ルールを作成する先頭に、次を追加してみてください。

#Support running task groups serially
bld.post_mode = Build.POST_LAZY

次に、ビルドの最後に次を追加します。

#Previous tasks belong to a group
bld.add_group()
#This task runs last
bld(rule=signature_task, always=True, name="signature_task")
于 2012-04-15T19:30:57.753 に答える