Modified the ArchSpec to take an optional "Platform *" when setting the triple.
This allows you to have a platform selected, then specify a triple using
"i386" and have the remaining triple items (vendor, os, and environment) set
automatically.

Many interpreter commands take the "--arch" option to specify an architecture
triple, so now the command options needed to be able to get to the current
platform, so the Options class now take a reference to the interpreter on
construction.

Modified the build LLVM building in the Xcode project to use the new
Xcode project level user definitions:

LLVM_BUILD_DIR - a path to the llvm build directory
LLVM_SOURCE_DIR - a path to the llvm sources for the llvm that will be used to build lldb
LLVM_CONFIGURATION - the configuration that lldb is built for (Release, 
Release+Asserts, Debug, Debug+Asserts).

I also changed the LLVM build to not check if "lldb/llvm" is a symlink and
then assume it is a real llvm build directory versus the unzipped llvm.zip
package, so now you can actually have a "lldb/llvm" directory in your lldb
sources.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129112 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Interpreter/Options.cpp b/source/Interpreter/Options.cpp
index 3bc553d..3c14cc0 100644
--- a/source/Interpreter/Options.cpp
+++ b/source/Interpreter/Options.cpp
@@ -29,7 +29,8 @@
 //-------------------------------------------------------------------------
 // Options
 //-------------------------------------------------------------------------
-Options::Options () :
+Options::Options (CommandInterpreter &interpreter) :
+    m_interpreter (interpreter),
     m_getopt_table ()
 {
     BuildValidOptionSets();
@@ -362,12 +363,11 @@
 void
 Options::GenerateOptionUsage
 (
-    CommandInterpreter &interpreter,
     Stream &strm,
     CommandObject *cmd
 )
 {
-    const uint32_t screen_width = interpreter.GetDebugger().GetTerminalWidth();
+    const uint32_t screen_width = m_interpreter.GetDebugger().GetTerminalWidth();
 
     const OptionDefinition *full_options_table = GetDefinitions();
     const uint32_t save_indent_level = strm.GetIndentLevel();
@@ -656,7 +656,6 @@
 bool
 Options::HandleOptionCompletion
 (
-    CommandInterpreter &interpreter,
     Args &input,
     OptionElementVector &opt_element_vector,
     int cursor_index,
@@ -778,8 +777,7 @@
 
             if (opt_defs_index != -1)
             {
-                HandleOptionArgumentCompletion (interpreter, 
-                                                input,
+                HandleOptionArgumentCompletion (input,
                                                 cursor_index,
                                                 strlen (input.GetArgumentAtIndex(cursor_index)),
                                                 opt_element_vector,
@@ -809,7 +807,6 @@
 bool
 Options::HandleOptionArgumentCompletion
 (
-    CommandInterpreter &interpreter,
     Args &input,
     int cursor_index,
     int char_pos,
@@ -868,7 +865,7 @@
                 if (module_name)
                 {
                     FileSpec module_spec(module_name, false);
-                    lldb::TargetSP target_sp = interpreter.GetDebugger().GetSelectedTarget();
+                    lldb::TargetSP target_sp = m_interpreter.GetDebugger().GetSelectedTarget();
                     // Search filters require a target...
                     if (target_sp != NULL)
                         filter_ap.reset (new SearchFilterByModule (target_sp, module_spec));
@@ -878,7 +875,7 @@
         }
     }
 
-    return CommandCompletions::InvokeCommonCompletionCallbacks (interpreter,
+    return CommandCompletions::InvokeCommonCompletionCallbacks (m_interpreter,
                                                                 completion_mask,
                                                                 input.GetArgumentAtIndex (opt_arg_pos),
                                                                 match_start_point,