为什么我无法在add_custom_target中运行COMMAND

时间:2015-08-14 09:46:16

标签: cmake

以下脚本让我发疯:

cmake_minimum_required(VERSION 3.3)

set(ProjectName ABC)
project(${ProjectName})


add_executable(EXE exe.c)


add_custom_target(Experiment
    COMMAND echo "hello"
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    COMMENTS "run a test"
    )
add_dependencies(Experiment EXE)
set_target_properties(Experiment PROPERTIES EXCLUDE_FROM_ALL false)

当我在Widnows for VC 2010中运行上述脚本时,它可以创建一个项目。在此项目中,有一个Experiment目标。但是,每次运行它时,我都会收到以下错误消息:

Error   1   error MSB6006: "cmd.exe" exited with code 1.    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets   151 6

我不知道问题是什么。

1 个答案:

答案 0 :(得分:1)

您的印刷错误 - COMMENTS,应为COMMENT。否则我认为CMake将其视为WORKING_DIRECTORY的一部分。另外,我建议您使用-E echo hello命令而不是echo hello。这在这个特殊情况下没有任何区别,但总是以跨平台的方式思考这个习惯。关于COMMAND的说明也是正确的,如果它只有一个命令,则无需使用此关键字。

概述:

add_custom_target(
    Experiment
    ${CMAKE_COMMAND} -E echo "hello"
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    COMMENT "run a test"
)