LLDB mainline
OptionGroupPlatform.h
Go to the documentation of this file.
1//===-- OptionGroupPlatform.h -----------------------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_INTERPRETER_OPTIONGROUPPLATFORM_H
10#define LLDB_INTERPRETER_OPTIONGROUPPLATFORM_H
11
14#include "llvm/Support/VersionTuple.h"
15
16namespace lldb_private {
17
18// PlatformOptionGroup
19//
20// Make platform options available to any commands that need the settings.
22public:
23 OptionGroupPlatform(bool include_platform_option)
24 : m_include_platform_option(include_platform_option) {}
25
26 ~OptionGroupPlatform() override = default;
27
28 llvm::ArrayRef<OptionDefinition> GetDefinitions() override;
29
30 Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_value,
31 ExecutionContext *execution_context) override;
32 Status SetOptionValue(uint32_t, const char *, ExecutionContext *) = delete;
33
34 void OptionParsingStarting(ExecutionContext *execution_context) override;
35
36 lldb::PlatformSP CreatePlatformWithOptions(CommandInterpreter &interpreter,
37 const ArchSpec &arch,
38 bool make_selected, Status &error,
39 ArchSpec &platform_arch) const;
40
41 bool PlatformWasSpecified() const { return !m_platform_name.empty(); }
42
43 void SetPlatformName(const char *platform_name) {
44 if (platform_name && platform_name[0])
45 m_platform_name.assign(platform_name);
46 else
47 m_platform_name.clear();
48 }
49
51
52 void SetSDKRootDirectory(ConstString sdk_root_directory) {
53 m_sdk_sysroot = sdk_root_directory;
54 }
55
57
58 void SetSDKBuild(ConstString sdk_build) { m_sdk_build = sdk_build; }
59
60 bool PlatformMatches(const lldb::PlatformSP &platform_sp) const;
61
62protected:
63 std::string m_platform_name;
66 llvm::VersionTuple m_os_version;
68};
69
70} // namespace lldb_private
71
72#endif // LLDB_INTERPRETER_OPTIONGROUPPLATFORM_H
static llvm::raw_ostream & error(Stream &strm)
An architecture specification class.
Definition: ArchSpec.h:32
A uniqued constant string class.
Definition: ConstString.h:39
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
~OptionGroupPlatform() override=default
Status SetOptionValue(uint32_t option_idx, llvm::StringRef option_value, ExecutionContext *execution_context) override
void SetSDKRootDirectory(ConstString sdk_root_directory)
void SetSDKBuild(ConstString sdk_build)
Status SetOptionValue(uint32_t, const char *, ExecutionContext *)=delete
bool PlatformMatches(const lldb::PlatformSP &platform_sp) const
void SetPlatformName(const char *platform_name)
OptionGroupPlatform(bool include_platform_option)
lldb::PlatformSP CreatePlatformWithOptions(CommandInterpreter &interpreter, const ArchSpec &arch, bool make_selected, Status &error, ArchSpec &platform_arch) const
void OptionParsingStarting(ExecutionContext *execution_context) override
llvm::ArrayRef< OptionDefinition > GetDefinitions() override
An error handling class.
Definition: Status.h:44
A class that represents a running process on the host machine.