47 lines
884 B
C++
47 lines
884 B
C++
#ifndef LD_H
|
|
#define LD_H
|
|
|
|
|
|
#include "runner.h"
|
|
#include "helper.h"
|
|
#include "obj.h"
|
|
#include "tier0/platform.h"
|
|
#include "tier1/utlstring.h"
|
|
|
|
enum ELinkType
|
|
{
|
|
ELINK_EXECUTABLE,
|
|
ELINK_DYNAMIC_LIBRARY,
|
|
ELINK_STATIC_LIBRARY,
|
|
};
|
|
|
|
struct LinkProject_t: public CPUProject_t
|
|
{
|
|
public:
|
|
void AddObject( Object_t& object );
|
|
|
|
ELinkType linkType;
|
|
CUtlVector<Object_t> objects = {};
|
|
CUtlVector<CUtlString> libraries ={};
|
|
CUtlVector<CUtlString> libraryDirectories = {};
|
|
CUtlVector<CUtlString> libraryObjects = {};
|
|
CUtlVector<CUtlString> frameworkDirectories = {};
|
|
CUtlVector<CUtlString> frameworks = {};
|
|
AndroidManifest_t m_androidmanifest;
|
|
|
|
bool bNoStdLib;
|
|
};
|
|
|
|
#define LINKER_INTERFACE_NAME "Linker001"
|
|
#define CLANG_LINKER_INTERFACE_NAME "ClangLinker001"
|
|
|
|
abstract_class ILinker
|
|
{
|
|
public:
|
|
virtual CUtlString Link( LinkProject_t *pProject ) = 0;
|
|
};
|
|
|
|
extern ILinker *linker;
|
|
|
|
#endif
|