1//===-- CommandOptionValidators.cpp -----------------------------*- 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#include "lldb/Interpreter/CommandOptionValidators.h"
10
11#include "lldb/Interpreter/CommandInterpreter.h"
12#include "lldb/Target/Platform.h"
13
14using namespace lldb;
15using namespace lldb_private;
16
17bool PosixPlatformCommandOptionValidator::IsValid(
18    Platform &platform, const ExecutionContext &target) const {
19  llvm::Triple::OSType os =
20      platform.GetSystemArchitecture().GetTriple().getOS();
21  switch (os) {
22  // Are there any other platforms that are not POSIX-compatible?
23  case llvm::Triple::Win32:
24    return false;
25  default:
26    return true;
27  }
28}
29
30const char *PosixPlatformCommandOptionValidator::ShortConditionString() const {
31  return "POSIX";
32}
33
34const char *PosixPlatformCommandOptionValidator::LongConditionString() const {
35  return "Option only valid for POSIX-compliant hosts.";
36}
37