瀏覽代碼

XCode: Add scheme option XCODE_SCHEME_DEBUG_AS_ROOT

Harry Mallon 6 年之前
父節點
當前提交
40be48f890

+ 1 - 0
Auxiliary/vim/syntax/cmake.vim

@@ -358,6 +358,7 @@ syn keyword cmakeProperty contained
             \ XCODE_SCHEME_ADDRESS_SANITIZER
             \ XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
             \ XCODE_SCHEME_ARGUMENTS
+            \ XCODE_SCHEME_DEBUG_AS_ROOT
             \ XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
             \ XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
             \ XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE

+ 1 - 0
Help/manual/cmake-properties.7.rst

@@ -353,6 +353,7 @@ Properties on Targets
    /prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER
    /prop_tgt/XCODE_SCHEME_ADDRESS_SANITIZER_USE_AFTER_RETURN
    /prop_tgt/XCODE_SCHEME_ARGUMENTS
+   /prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT
    /prop_tgt/XCODE_SCHEME_DISABLE_MAIN_THREAD_CHECKER
    /prop_tgt/XCODE_SCHEME_DYNAMIC_LIBRARY_LOADS
    /prop_tgt/XCODE_SCHEME_DYNAMIC_LINKER_API_USAGE

+ 7 - 0
Help/prop_tgt/XCODE_SCHEME_DEBUG_AS_ROOT.rst

@@ -0,0 +1,7 @@
+XCODE_SCHEME_DEBUG_AS_ROOT
+--------------------------
+
+Whether to debug the target as 'root'.
+
+Please refer to the :variable:`CMAKE_XCODE_GENERATE_SCHEME` variable
+documentation to see all Xcode schema related properties.

+ 1 - 0
Help/variable/CMAKE_XCODE_GENERATE_SCHEME.rst

@@ -30,5 +30,6 @@ The following target properties will be applied on the
 "Info" and "Arguments" tab:
 
 - :prop_tgt:`XCODE_SCHEME_ARGUMENTS`
+- :prop_tgt:`XCODE_SCHEME_DEBUG_AS_ROOT`
 - :prop_tgt:`XCODE_SCHEME_ENVIRONMENT`
 - :prop_tgt:`XCODE_SCHEME_EXECUTABLE`

+ 5 - 0
Source/cmXCodeScheme.cxx

@@ -177,6 +177,11 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout,
   WriteLaunchActionAttribute(xout, "stopOnEveryMainThreadCheckerIssue",
                              "XCODE_SCHEME_MAIN_THREAD_CHECKER_STOP");
 
+  if (this->Target->GetTarget()->GetPropertyAsBool(
+        "XCODE_SCHEME_DEBUG_AS_ROOT")) {
+    xout.Attribute("debugAsWhichUser", "root");
+  }
+
   // Diagnostics tab end
 
   if (IsExecutable(this->Target)) {