#ifndef TOOLS_GN_BINARY_TARGET_GENERATOR_H_
#define TOOLS_GN_BINARY_TARGET_GENERATOR_H_
#include "gn/target.h"
#include "gn/target_generator.h"
class BinaryTargetGenerator : public TargetGenerator {
public:
BinaryTargetGenerator(Target* target,
Scope* scope,
const FunctionCallNode* function_call,
Target::OutputType type,
Err* err);
~BinaryTargetGenerator() override;
protected:
void DoRun() override;
bool FillSources() override;
private:
bool FillCompleteStaticLib();
bool FillFriends();
bool FillOutputName();
bool FillOutputPrefixOverride();
bool FillOutputDir();
bool FillAllowCircularIncludesFrom();
bool FillPool();
bool ValidateSources();
bool FillModuleName();
Target::OutputType output_type_;
BinaryTargetGenerator(const BinaryTargetGenerator&) = delete;
BinaryTargetGenerator& operator=(const BinaryTargetGenerator&) = delete;
};
#endif