started working on ini parser
This commit is contained in:
@@ -34,7 +34,6 @@ LinkProject_t CClangCompiler::Compile( CProject_t *pProject )
|
||||
{
|
||||
if (!clangbackend && CommandLine()->CheckParam("-experimental_header_include"))
|
||||
clangbackend = (IClangBackend*)CreateInterface(CLANG_BACKEND_INTERFACE_NAME, NULL);
|
||||
V_printf("CLANG: %p\n", clangbackend);
|
||||
|
||||
if (pProject->m_szName == 0)
|
||||
{
|
||||
@@ -121,11 +120,12 @@ LinkProject_t CClangCompiler::Compile( CProject_t *pProject )
|
||||
}
|
||||
|
||||
if (clangbackend)
|
||||
bAreDependenciesUpdated = clangbackend->AreFileDependenciesUpdated(file, szOutputFile, args);
|
||||
bAreDependenciesUpdated = clangbackend->AreFileDependenciesUpdated(file, 0, szOutputFile, args);
|
||||
if (!filesystem2->ShouldRecompile(file, szOutputFile) && !bAreDependenciesUpdated)
|
||||
goto skipcompile;
|
||||
|
||||
args.AppendTail("-c");
|
||||
args.AppendTail("-g");
|
||||
args.AppendTail("-o");
|
||||
args.AppendTail(szOutputFile);
|
||||
args.AppendTail(file);
|
||||
@@ -150,7 +150,7 @@ skipcompile:
|
||||
if (pProject->m_target.kernel == TARGET_KERNEL_ANDROID)
|
||||
{
|
||||
if (!pProject->m_target.szSysroot)
|
||||
Plat_FatalErrorFunc("-sysroot must be specified for android\n");
|
||||
Plat_FatalErrorFunc("sysroot must be specified for android\n");
|
||||
cfile.m_szArguments.AppendHead(CUtlString("%s/bin/clang",pProject->m_target.szSysroot));
|
||||
}
|
||||
else
|
||||
|
||||
@@ -10,10 +10,11 @@
|
||||
class CClangBackend: public IClangBackend
|
||||
{
|
||||
public:
|
||||
virtual bool AreFileDependenciesUpdated( CUtlString szFile, CUtlString szOutputFile, CUtlVector<CUtlString> arguments ) override;
|
||||
virtual bool AreFileDependenciesUpdated( CUtlString szFile, CUtlString szOutputFile, CUtlString szHashFile, CUtlVector<CUtlString> arguments ) override;
|
||||
|
||||
bool bAnyOutdated;
|
||||
CUtlString szCurrentFile;
|
||||
CUtlString szHashFile;
|
||||
|
||||
private:
|
||||
static void InclusionVisitor( CXFile included_file, CXSourceLocation *include_stack, unsigned include_len, CXClientData client_data );
|
||||
@@ -21,7 +22,7 @@ private:
|
||||
|
||||
EXPOSE_INTERFACE(CClangBackend, IClangBackend, CLANG_BACKEND_INTERFACE_NAME);
|
||||
|
||||
bool CClangBackend::AreFileDependenciesUpdated( CUtlString szFile, CUtlString szOutputFile, CUtlVector<CUtlString> arguments )
|
||||
bool CClangBackend::AreFileDependenciesUpdated( CUtlString szFile, CUtlString szOutputFile, CUtlString szHashFile, CUtlVector<CUtlString> arguments )
|
||||
{
|
||||
szCurrentFile = szOutputFile;
|
||||
bAnyOutdated = false;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
abstract_class IClangBackend
|
||||
{
|
||||
public:
|
||||
virtual bool AreFileDependenciesUpdated( CUtlString szFile, CUtlString szOutputFile, CUtlVector<CUtlString> arguments ) = 0;
|
||||
virtual bool AreFileDependenciesUpdated( CUtlString szFile, CUtlString szOutputFile, CUtlString szHashFile, CUtlVector<CUtlString> arguments ) = 0;
|
||||
};
|
||||
|
||||
extern IClangBackend *clangbackend;
|
||||
|
||||
@@ -53,7 +53,7 @@ CUtlString CClangLinker::Link( LinkProject_t *pProject )
|
||||
filesystem2->MakeDirectory(szOutputDir);
|
||||
if (pProject->linkType == ELINK_STATIC_LIBRARY)
|
||||
{
|
||||
V_printf(" AR %s\n", pProject->m_szName.GetString());
|
||||
V_printf(" AR %s\n", pProject->m_szName.GetString());
|
||||
bool shouldRecompile = false;
|
||||
CUtlVector<CUtlString> args;
|
||||
for (auto object: pProject->objects)
|
||||
|
||||
Reference in New Issue
Block a user