D 如何仅为WAF中库的一个文件添加编译选项?

D 如何仅为WAF中库的一个文件添加编译选项?,d,waf,D,Waf,我正在为我的d项目试验waf。D的一个很好的特性是在编译时将整个文件“导入”到代码中。为此,必须指定要导入的文件将在其中查找的文件夹。对于dmd编译器,必须使用-Jpath命令行选项 我正在构建一个在不同文件夹中包含100个文件的库,我希望能够为某些特定文件的复制指定-J选项。这是在cmake中通过以下方式完成的: set_source_files_properties( core/shader.d PROPERTIES COMPILE_FLAGS -J${CMAKE

我正在为我的d项目试验waf。D的一个很好的特性是在编译时将整个文件“导入”到代码中。为此,必须指定要导入的文件将在其中查找的文件夹。对于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')
#/usr/bin/env python
#编码:utf-8
def生成(bld):
bld.stlib(
来源=
'''
app/action.d
app/client.d
core/shader.d
核心/流程d
''',
includes=['..','../extern'],
名称='mylib',
target='mylib
dflags='-J/some/path/core/gl2/shaders')
您可以执行以下操作:

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

bld.stlib(
 ...,
 use=["specialfile"],
)