以下脚本让我发疯:
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
我不知道问题是什么。
答案 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"
)