2017-05-16 7 views
0

은 내가 CTestList.cmake 파일이 함수 정의를 포함하고 전화가 :CTest에서 왜 내 함수의 변수 인수가 설정되지 않았습니까?

function(add_test_r testname) 
    add_test(
    ${testname} python executeRegressionTestCase.py ${testname} 
) 
endfunction(add_test_r) 

add_test_r(Test01) 

내가 직접 CMake를 통해 cmake ..; make test을 테스트를 지원하기 위해 필요를 먼저 CMake를 실행하지 않고 CTest를 통해. CMake가 test 타겟을 빌드하고 make test을 실행하면 위의 함수가 정상적으로 실행됩니다. 그러나 CTest를 사용하여 동일한 파일을 실행하면 ${testname}은 비어 있습니다. CTest로 실행할 때 함수 변수가 CTestList에서 지원되지 않습니까?

답변

0

필자에게는 확실한 답이 없지만 일부 테스트 후에 CMake가 입력 파일에 대한 전처리 단계를 수행하는 것처럼 보입니다. 특히 CTestList.cmake를 읽고 변수와 함수를 평가하고 "확장 된"CTestTestfile.cmake를 생성합니다. 스티어링 스크립트로 CTest를 실행해도 전처리 단계가 실행되지 않으므로 변수와 함수가 확장되지 않습니다. 인터넷상의 몇몇 사람들은 CTestTestfile.cmake가 운영 스크립트에서 CMake에 의해 처음 생성되어야한다고 제안했습니다. 불행히도, 내가 찾던 유스 케이스가 아니라, 다른 사람들이이 문제를 겪는 데 도움이 될 수 있습니다.