mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 21:00:13 +01:00
This makes it easy to wire up build systems like Bazel that need to know
the actual include paths used. It also gives us a convenient place to
export any other information that build systems or integrations need,
and to get debugging info from users.
Most of the complexity is computing the Clang header search paths, but
I couldn't see a direct way to get closer to the source-of-truth than
this, and it doesn't seem _too_ unreasonable.
Depends on #6636 - start review at commit
[643fdab1](6637/commits/643fdab1)
45 lines
1.2 KiB
C++
45 lines
1.2 KiB
C++
// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
|
|
// Exceptions. See /LICENSE for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
|
|
#ifndef CARBON_TOOLCHAIN_DRIVER_CONFIG_SUBCOMMAND_H_
|
|
#define CARBON_TOOLCHAIN_DRIVER_CONFIG_SUBCOMMAND_H_
|
|
|
|
#include "common/command_line.h"
|
|
#include "llvm/ADT/SmallVector.h"
|
|
#include "llvm/ADT/StringRef.h"
|
|
#include "toolchain/driver/codegen_options.h"
|
|
#include "toolchain/driver/driver_env.h"
|
|
#include "toolchain/driver/driver_subcommand.h"
|
|
|
|
namespace Carbon {
|
|
|
|
// Options for the link subcommand.
|
|
//
|
|
// See the implementation of `Build` for documentation on members.
|
|
struct ConfigOptions {
|
|
auto Build(CommandLine::CommandBuilder& b) -> void;
|
|
|
|
CodegenOptions codegen_options;
|
|
bool json_output;
|
|
};
|
|
|
|
// Implements the link subcommand of the driver.
|
|
class ConfigSubcommand : public DriverSubcommand {
|
|
public:
|
|
explicit ConfigSubcommand();
|
|
|
|
auto BuildOptions(CommandLine::CommandBuilder& b) -> void override {
|
|
options_.Build(b);
|
|
}
|
|
|
|
auto Run(DriverEnv& driver_env) -> DriverResult override;
|
|
|
|
private:
|
|
ConfigOptions options_;
|
|
};
|
|
|
|
} // namespace Carbon
|
|
|
|
#endif // CARBON_TOOLCHAIN_DRIVER_CONFIG_SUBCOMMAND_H_
|