4

d プロジェクトで waf を試しています。D の優れた機能の 1 つは、コンパイル時にファイル全体をコードに「インポート」することです。これを行うには、インポートするファイルを検索するフォルダーを指定する必要があります。dmd コンパイラの場合、-Jpath コマンドライン オプションを使用する必要があります。

さまざまなフォルダーに 100 個のファイルを含むライブラリを構築していますが、特定のファイルのコピーに対してのみ -J オプションを指定できるようにしたいと考えています。これは、次のようなもので cmake で行われます。

set_source_files_properties( 
    core/shader.d PROPERTIES COMPILE_FLAGS 
        -J${CMAKE_CURRENT_SOURCE_DIR}/core/gl2/shaders )

しかし、wafではそれを行う方法がわかりません。私の wscript は次のようになりますが、これは -J フラグをすべてのファイルに渡します。

#! /usr/bin/env python
# encoding: utf-8

def build(bld):

 bld.stlib(
  source   = 
   '''
   app/action.d
   app/client.d
<...snip..>
   core/shader.d
   core/stream.d
   ''',
  includes = ['..', '../extern' ],
  name     = 'mylib',
  target   = 'mylib
  dflags  = '-J/some/path/core/gl2/shaders')
4

1 に答える 1

2

できるよ:

bld(
 target="specialfile",
 features="d",
 source="specialfile.c",
 defines=["SPECIAL=1"],
)

bld.stlib(
 ...,
 use=["specialfile"],
)
于 2012-01-07T19:29:07.377 に答える