2013-06-20 2 views
1

파일 내용을 인수로 바꾸고 싶습니다. 인수는 테스트중인 실행 파일로 이동합니다. 이것은 내가 가지고있는 것입니다.CMake 매크로에서 명령 내에서 명령을 실행하는 방법

ADD_TEST (
    NAME ${ARGV0} 
    COMMAND 
     ${DIR}/script.sh 
     ${executable}\ --arg1\ input 
) 

인수를 파일 안에 넣고 실행 파일에 입력으로 입력하려고합니다.

ADD_TEST (
    NAME ${ARGV0} 
    COMMAND 
     ${DIR}/script.sh 
     ${executable}\ $(cat ${ARGS_file}) 
) 

또는이

ADD_TEST (
    NAME ${ARGV0} 
    COMMAND 
     ${DIR}/script.sh 
     ${executable}\ `cat ${ARGS_file}` 
) 

같은 또는 위의 세 가지 코드의

ADD_TEST (
    NAME ${ARGV0} 
    COMMAND 
     ${DIR}/script.sh 
     ${executable}\ $(< ${ARGS_file}) 
) 

없음 같은

작동 :이 같은 것을 원한다. 내가 CMake 외부에서 그들을 시험 할 때, 그들은 잘 작동한다. 하지만 CMake 내부에서는 작동하지 않습니다.

+1

CMake는 인수를 평가하기 위해 셸을 사용하지 않습니다. 그 행동을 원하고 당신이 리눅스에서만 운영된다고 확신한다면 다음과 같이 시도해보십시오 : COMMAND bash -c "$ {executable} $ (cat $ {ARGS_file})" 이렇게 평가하면 다시 bash로 전달됩니다. – languitar

답변

0

보다 일반적인 방법으로는 execute_command, file(WRITE <path> <contents>)include(<path>)을 사용하십시오.

관련 문제