浏览代码

Merge topic 'file-READ_ELF-capture-error'

41bebbe50a file: Restore error capture in undocumented READ_ELF mode

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Merge-request: !6853
Brad King 3 年之前
父节点
当前提交
d009622769
共有 3 个文件被更改,包括 29 次插入5 次删除
  1. 8 3
      Source/cmFileCommand.cxx
  2. 19 2
      Tests/RunCMake/file/READ_ELF-stderr.txt
  3. 2 0
      Tests/RunCMake/file/READ_ELF.cmake

+ 8 - 3
Source/cmFileCommand.cxx

@@ -1211,9 +1211,14 @@ bool HandleReadElfCommand(std::vector<std::string> const& args,
 
   cmELF elf(fileNameArg.c_str());
   if (!elf) {
-    status.SetError(cmStrCat("READ_ELF given FILE \"", fileNameArg,
-                             "\" that is not a valid ELF file."));
-    return false;
+    if (arguments.Error.empty()) {
+      status.SetError(cmStrCat("READ_ELF given FILE:\n  ", fileNameArg,
+                               "\nthat is not a valid ELF file."));
+      return false;
+    }
+    status.GetMakefile().AddDefinition(arguments.Error,
+                                       "not a valid ELF file");
+    return true;
   }
 
   if (!arguments.RPath.empty()) {

+ 19 - 2
Tests/RunCMake/file/READ_ELF-stderr.txt

@@ -1,2 +1,19 @@
-.*file READ_ELF must be called with at least three additional arguments\.
-.*file READ_ELF given FILE "XXX" that does not exist\.
+^CMake Error at READ_ELF.cmake:1 \(file\):
+  file READ_ELF must be called with at least three additional arguments\.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:[0-9]+ \(include\)
++
+CMake Error at READ_ELF.cmake:2 \(file\):
+  file READ_ELF given FILE "XXX" that does not exist\.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:[0-9]+ \(include\)
++
+CMake Error at READ_ELF.cmake:4 \(file\):
+  file READ_ELF given FILE:
+
+    [^
+]*/Tests/RunCMake/file/READ_ELF.cmake
+
+  that is not a valid ELF file\.
+Call Stack \(most recent call first\):
+  CMakeLists.txt:[0-9]+ \(include\)$

+ 2 - 0
Tests/RunCMake/file/READ_ELF.cmake

@@ -1,2 +1,4 @@
 file(READ_ELF XXX)
 file(READ_ELF XXX RPATH YYY)
+file(READ_ELF ${CMAKE_CURRENT_LIST_FILE} RPATH YYY CAPTURE_ERROR err)
+file(READ_ELF ${CMAKE_CURRENT_LIST_FILE} RPATH YYY)