2010-11-18 5 views
2

나는 내 프로젝트에 대해 waf로 실험 중이다. D의 멋진 기능 중 하나는 컴파일시 전체 파일을 코드로 "가져 오는"것입니다. 이렇게하려면 가져올 파일을 찾을 폴더를 지정해야합니다. dmd 컴파일러의 경우에는 -Jpath 명령 행 옵션을 사용해야합니다.WAF에서 라이브러리 파일 중 하나에 대해서만 컴파일 옵션을 추가하려면 어떻게해야합니까?

다른 폴더에 수백 개의 파일이있는 라이브러리를 구축 중이며 일부 특정 파일의 복사에만 -J 옵션을 지정할 수 있기를 원합니다. 이것은 cmake에서 다음과 같은 형태로 이루어집니다 :

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

하지만 어떻게해야할지 모르겠군요. 내 WScript와는는 다음과 같이 lookes하지만이 모든 파일에 -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

당신은 할 수 있습니다 :

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

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