我正在为我的 d 项目尝试 waf。D 的一个很好的特性是在编译时将整个文件“导入”到代码中。为此,您必须指定要在其中查找要导入的文件的文件夹。对于 dmd 编译器,您必须使用 -Jpath 命令行选项。
我正在构建一个库,其中包含不同文件夹中的一百个文件,并且我希望能够指定 -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')