blob: cb1dc3754912ff7a1ad3c6169bb40cee63d74969 [file] [log] [blame]
//===- ReaderWriter/ReaderPECOFF.h - PECOFF File Format Reading Interface ---===//
//
// The LLVM Linker
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef LLD_READERWRITER_READER_PECOFF_H_
#define LLD_READERWRITER_READER_PECOFF_H_
#include "lld/ReaderWriter/Reader.h"
#include "lld/Core/LLVM.h"
namespace lld {
///
/// The ReaderOptionsPECOFF class encapsulates options needed
/// to process mach-o files. You can create an ReaderOptionsPECOFF
/// instance from command line arguments or by subclassing and setting the
/// instance variables in the subclass's constructor.
///
class ReaderOptionsPECOFF : public ReaderOptions {
public:
virtual ~ReaderOptionsPECOFF();
///
/// Creates a Options object from darwin linker command line arguments.
/// FIXME: to be replaced with new option processing mechanism.
///
ReaderOptionsPECOFF(int argc, const char* argv[]);
///
/// Creates a Options object with default settings. For use when
/// programmatically constructing options.
///
ReaderOptionsPECOFF();
protected:
};
///
/// The only way to instantiate a ReaderPECOFF object
/// is via this createReaderPECOFF function. The is no public
/// ReaderPECOFF class that you might be tempted to subclass.
/// Support for all variants must be represented in the ReaderOptionsPECOFF
/// object.
/// The Reader object created retains a reference to the
/// ReaderOptionsPECOFF object supplied, so the objects object must not be
/// destroyed before the Reader object.
///
Reader* createReaderPECOFF(const ReaderOptionsPECOFF &options);
} // namespace lld
#endif // LLD_READERWRITER_READER_PECOFF_H_