no engine anymore
This commit is contained in:
31
fpc/main.cpp
31
fpc/main.cpp
@@ -2,34 +2,43 @@
|
||||
#include "public/helper.h"
|
||||
#include "public/ld.h"
|
||||
#include "public/target.h"
|
||||
#include "runner.h"
|
||||
#include "tier0/platform.h"
|
||||
#include "tier1/commandline.h"
|
||||
#include "c.h"
|
||||
#include "tier1/interface.h"
|
||||
#include "tier1/utlvector.h"
|
||||
#include "signal.h"
|
||||
#include "libgen.h"
|
||||
#include <unistd.h>
|
||||
|
||||
CUtlString owndir;
|
||||
extern char *g_szBuildDir;
|
||||
int build()
|
||||
{
|
||||
|
||||
extern char *szBuildDir;
|
||||
|
||||
CCProject compileScriptProject = {};
|
||||
runner = (IRunner*)CreateInterface(RUNNER_INTERFACE_NAME, NULL);
|
||||
filesystem2 = (IFileSystem2*)CreateInterface(FILE_SYSTEM_2_INTERFACE_NAME, NULL);
|
||||
ccompiler = (ICCompiler*)CreateInterface(CLANG_C_COMPILER_INTERFACE_NAME, NULL);
|
||||
linker = (ILinker*)CreateInterface(CLANG_LINKER_INTERFACE_NAME, NULL);
|
||||
|
||||
CProject_t compileScriptProject = {};
|
||||
compileScriptProject.m_szName = "build";
|
||||
compileScriptProject.files = {"build.cpp"};
|
||||
compileScriptProject.includeDirectories = {CUtlString("%s/public",IFileSystem2::OwnDirectory()),CUtlString("%s/public", IFileSystem2::BuildDirectory()), CUtlString("%s/../public",IFileSystem2::OwnDirectory()),CUtlString("%s/../public", IFileSystem2::BuildDirectory())};
|
||||
compileScriptProject.includeDirectories = {CUtlString("%s/public",filesystem2->OwnDirectory()),CUtlString("%s/public", filesystem2->BuildDirectory()), CUtlString("%s/../public",filesystem2->OwnDirectory()),CUtlString("%s/../public", filesystem2->BuildDirectory())};
|
||||
compileScriptProject.bFPIC = true;
|
||||
compileScriptProject.m_target = Target_t::HostTarget();
|
||||
CLDProject linkScriptProject = compileScriptProject.Compile();
|
||||
|
||||
LinkProject_t linkScriptProject = ccompiler->Compile(&compileScriptProject);
|
||||
linkScriptProject.linkType = ELINK_DYNAMIC_LIBRARY;
|
||||
linkScriptProject.m_target = Target_t::HostTarget();
|
||||
CUtlString script = linkScriptProject.Link();
|
||||
|
||||
CUtlString script = linker->Link(&linkScriptProject);
|
||||
|
||||
void *scriptDLL = Plat_LoadLibrary(script);
|
||||
|
||||
auto PreinitFn = (void(*)())Plat_GetProc(scriptDLL, "Preinit");
|
||||
V_printf("%p\n",PreinitFn);
|
||||
if (PreinitFn)
|
||||
PreinitFn();
|
||||
|
||||
@@ -38,7 +47,8 @@ int build()
|
||||
build->m_pMainFn();
|
||||
};
|
||||
Plat_UnloadLibrary(scriptDLL);
|
||||
CCProject::GenerateCompileCommands();
|
||||
|
||||
ccompiler->GenerateLinterData();
|
||||
|
||||
return 0;
|
||||
};
|
||||
@@ -80,8 +90,7 @@ findbuild:
|
||||
} else {
|
||||
V_fclose(file);
|
||||
}
|
||||
extern char *szBuildDir;
|
||||
szBuildDir = szBuildcppDir;
|
||||
g_szBuildDir = szBuildcppDir;
|
||||
|
||||
#ifdef __linux
|
||||
signal(SIGHUP, IEngine_Signal);
|
||||
@@ -95,8 +104,8 @@ findbuild:
|
||||
signal(SIGSEGV, IEngine_Signal);
|
||||
signal(SIGTERM, IEngine_Signal);
|
||||
#endif
|
||||
ICommandLine::CreateCommandLine(c, v);
|
||||
if (ICommandLine::CheckParam("build"))
|
||||
CommandLine()->CreateCommandLine(c, v);
|
||||
if (CommandLine()->CheckParam("build"))
|
||||
return build();
|
||||
return 0;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user