2013-06-20 58 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不使用shell来评估参数。如果你想要的行为,你确信你只在Linux操作系统上,你可以尝试这样的事: 命令的bash -c“$ {}执行$(猫$ {} ARGS_file)” 像本次的评测再次传递给bash。 – languitar

回答

0

对于更一般的方法,使用execute_command,file(WRITE <path> <contents>)然后include(<path>)