2017-01-14 8 views
2

waf를 빌드 시스템으로 사용하는 프로젝트에서 Google 테스트를 사용하고 있습니다. 리소스 파일을 다루는 효과적인 방법을 알고 싶습니다. 다음과 같은 디렉토리 구조에 대한 waf를 사용할 때 테스트 리소스 파일을 구성하는 방법

:

MyProject 
├── build 
├── src 
| ├──do_something.cpp 
| ├──do_something.h 
├── test 
| ├── unit_test.cpp 
│ ├── resources 
│ │ ├── input1.txt 
│ │ ├── input2.txt 
├── wscript 

빌드 디렉토리에서 테스트를 실행, 구축 후, 나는에서 복사 할 리소스 파일이 필요합니다. 빌드 디렉토리과 같습니다

MyProject 
├── build 
| ├── test 
│ │ ├── resources 
│ │ | ├── input1.txt 
│ │ | ├── input2.txt 
│ │ ├── unit_test 

는이를 달성하기 위해, 내 현재 WScript와는입니다

def options(opt): 
    opt.load('compiler_cxx') 

def configure(conf): 
    conf.load('compiler_cxx') 

def build(bld): 
    bld.stlib(source='src/do_something.cpp', 
       target='mylib', 
       includes='src') 

    bld.exec_command("cp -r test/resources build/test") 

    bld.program(source='test/unit_test.cpp', 
       includes='src', 
       target='test/unit_test', 
       use='mylib') 

이 같은 bld.exec_command이 해키 보인다 사용. 더 좋은 방법은 무엇입니까? 다른 사람들이 테스트 리소스를 waf로 어떻게 구성합니까?

waf 1.9.5를 사용하고 있습니다.

답변

0

가장 쉬운 방법은 물론 임의의 위치에서 리소스를 읽을 수 있도록 프로그램을 변경하는 것입니다. 같은 파일을 여러 개 복사하는 이유는 무엇입니까?

for f in ctx.path.ant_glob('tests/resources/**/*'): 
    ctx(features = 'subst', source = f.srcpath(), 
     target = f.srcpath()) 
: 말했다

, 당신은 쉽게 반복적으로 사용하여 디렉토리 트리를 복사 할 수 있습니다