Как добавить параметры компиляции только для одного из файлов библиотеки в WAF? - PullRequest
3 голосов
/ 18 ноября 2010

Я экспериментирую с waf для моего проекта d. Одной из приятных особенностей D является «импорт» целых файлов в код во время компиляции. Для этого вам нужно указать папки, которые будут просматриваться для импортируемых файлов. В случае компилятора dmd вы должны использовать параметр командной строки -Jpath.

Я создаю библиотеку с сотней файлов в разных папках, и я хочу иметь возможность указать параметр -J только для копирования некоторых конкретных файлов. Это делается в cmake с чем-то вроде:

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

Но я не знаю, как это сделать. Мой 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')

1 Ответ

2 голосов
/ 07 января 2012

Вы можете сделать:

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

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