]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Plugins/Platform/MacOSX/PlatformAppleTVSimulator.h
Vendor import of lldb trunk r290819:
[FreeBSD/FreeBSD.git] / source / Plugins / Platform / MacOSX / PlatformAppleTVSimulator.h
1 //===-- PlatformAppleTVSimulator.h ------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef liblldb_PlatformAppleTVSimulator_h_
11 #define liblldb_PlatformAppleTVSimulator_h_
12
13 // C Includes
14 // C++ Includes
15 // Other libraries and framework includes
16 // Project includes
17 #include "PlatformDarwin.h"
18
19 class PlatformAppleTVSimulator : public PlatformDarwin {
20 public:
21   //------------------------------------------------------------
22   // Class Functions
23   //------------------------------------------------------------
24   static lldb::PlatformSP CreateInstance(bool force,
25                                          const lldb_private::ArchSpec *arch);
26
27   static void Initialize();
28
29   static void Terminate();
30
31   static lldb_private::ConstString GetPluginNameStatic();
32
33   static const char *GetDescriptionStatic();
34
35   //------------------------------------------------------------
36   // Class Methods
37   //------------------------------------------------------------
38   PlatformAppleTVSimulator();
39
40   virtual ~PlatformAppleTVSimulator();
41
42   //------------------------------------------------------------
43   // lldb_private::PluginInterface functions
44   //------------------------------------------------------------
45   lldb_private::ConstString GetPluginName() override {
46     return GetPluginNameStatic();
47   }
48
49   uint32_t GetPluginVersion() override { return 1; }
50
51   //------------------------------------------------------------
52   // lldb_private::Platform functions
53   //------------------------------------------------------------
54   lldb_private::Error ResolveExecutable(
55       const lldb_private::ModuleSpec &module_spec, lldb::ModuleSP &module_sp,
56       const lldb_private::FileSpecList *module_search_paths_ptr) override;
57
58   const char *GetDescription() override { return GetDescriptionStatic(); }
59
60   void GetStatus(lldb_private::Stream &strm) override;
61
62   virtual lldb_private::Error
63   GetSymbolFile(const lldb_private::FileSpec &platform_file,
64                 const lldb_private::UUID *uuid_ptr,
65                 lldb_private::FileSpec &local_file);
66
67   lldb_private::Error
68   GetSharedModule(const lldb_private::ModuleSpec &module_spec,
69                   lldb_private::Process *process, lldb::ModuleSP &module_sp,
70                   const lldb_private::FileSpecList *module_search_paths_ptr,
71                   lldb::ModuleSP *old_module_sp_ptr,
72                   bool *did_create_ptr) override;
73
74   uint32_t
75   FindProcesses(const lldb_private::ProcessInstanceInfoMatch &match_info,
76                 lldb_private::ProcessInstanceInfoList &process_infos) override;
77
78   bool GetSupportedArchitectureAtIndex(uint32_t idx,
79                                        lldb_private::ArchSpec &arch) override;
80
81   void
82   AddClangModuleCompilationOptions(lldb_private::Target *target,
83                                    std::vector<std::string> &options) override {
84     return PlatformDarwin::AddClangModuleCompilationOptionsForSDKType(
85         target, options, PlatformDarwin::SDKType::iPhoneSimulator);
86   }
87
88 protected:
89   std::mutex m_sdk_dir_mutex;
90   std::string m_sdk_directory;
91   std::string m_build_update;
92
93   const char *GetSDKDirectoryAsCString();
94
95 private:
96   DISALLOW_COPY_AND_ASSIGN(PlatformAppleTVSimulator);
97 };
98
99 #endif // liblldb_PlatformAppleTVSimulator_h_