在Zipios的主CMakeList.txt
中,我有一个自定义目标,可以针对我的代码运行一些工具,以帮助偶尔清理它。
仅当我这样做时:
make -C ../BUILD zipios_code_analysis
我收到此错误:
svn:E155007:“ / home / snapwebsites / snapcpp / contrib / zipios”不是工作副本
对我来说似乎没有什么意义,原因有二:
inspect
与svn
无关git
,并且在源目录或二进制目录中都没有对svn
的引用这是自定义目标:
add_custom_target(zipios_code_analysis
# Make sure we have an output folder
COMMAND mkdir -p ${PROJECT_BINARY_DIR}/analysis
# Count the number of TODO, XXX, TBD, FIXME, and \todo
COMMAND echo "TODO -- output ${PROJECT_BINARY_DIR}/analysis/todo.txt"
COMMAND sh dev/todo.sh "${PROJECT_BINARY_DIR}/analysis"
# Search for files with "invalid" (unwanted really) spaces
COMMAND echo "Spaces -- output ${PROJECT_BINARY_DIR}/analysis/spaces.txt"
COMMAND sh dev/spaces.sh "${PROJECT_BINARY_DIR}/analysis"
# Boost inspect tool that reports various problems in the source
COMMAND echo "inspect -- output ${PROJECT_BINARY_DIR}/analysis/inspect.html"
COMMAND inspect -tab -crlf -end -path_name -ascii -minmax -assert_macro -deprecated_macro -unnamed -copyright >"${PROJECT_BINARY_DIR}/analysis/inspect.html"
# All of these are expected to work on source code so make sure we are
# in the source code top directory
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
)
当我在外壳中手动运行命令时,没有得到该错误。
这是带有自定义目标的build.make
。我仍然看不到任何指向svn
的链接?!
CMakeFiles/zipios_code_analysis:
cd /home/snapwebsites/snapcpp/contrib/zipios && mkdir -p /home/snapwebsites/BUILD/contrib/zipios/analysis
cd /home/snapwebsites/snapcpp/contrib/zipios && echo TODO\ --\ output\ /home/snapwebsites/BUILD/contrib/zipios/analysis/todo.txt
cd /home/snapwebsites/snapcpp/contrib/zipios && sh dev/todo.sh /home/snapwebsites/BUILD/contrib/zipios/analysis
cd /home/snapwebsites/snapcpp/contrib/zipios && echo Spaces\ --\ output\ /home/snapwebsites/BUILD/contrib/zipios/analysis/spaces.txt
cd /home/snapwebsites/snapcpp/contrib/zipios && sh dev/spaces.sh /home/snapwebsites/BUILD/contrib/zipios/analysis
cd /home/snapwebsites/snapcpp/contrib/zipios && echo inspect\ --\ output\ /home/snapwebsites/BUILD/contrib/zipios/analysis/inspect.html
cd /home/snapwebsites/snapcpp/contrib/zipios && inspect -tab -crlf -end -path_name -ascii -minmax -assert_macro -deprecated_macro -unnamed -copyright >"/home/snapwebsites/BUILD/contrib/zipios/analysis/inspect.html"
真的,有什么可能增加一个svn
命令,我将得到这样的错误?
啊。实际上,如果我通过重定向运行命令,则会收到错误消息:
% inspect -tab ... -copyright >a
svn: E155007: '/home/.../zipios' is not a working copy
所以它确实来自检查。
答案 0 :(得分:0)
好吧,所以boost inspect
想要以某种方式在您的svn
代码中进行检查...我想boost已使用(并且仍在使用?)svn
。很好,我也喜欢。
现在...为什么工具会那样做而不给您选择不那样做的选择,这很奇怪。哦,很好。
不过,我发现了可以用来解决问题的黑客工具,以下是有关此问题的答案的帖子:
CMake ignore return on custom target
我更改了在末尾添加... || true
的命令:
COMMAND inspect [...snip...] -copyright >".../inspect.html" || true
这样,make或多或少会忽略检查将要发出的任何错误,而我的make会干净地返回。