some work on fpc

This commit is contained in:
2025-12-30 22:13:01 +02:00
parent 842eeabbde
commit 773a541199
27 changed files with 298 additions and 101 deletions

View File

@@ -47,6 +47,7 @@ public:
// File system manager.
//-----------------------------------------------------------------------------
#define FILE_SYSTEM_2_INTERFACE_NAME "FileSystem2_001"
#define FILE_SYSTEM_2_BUILD_DIRECTORY_INTERFACE_VERSION "FileSystem2BuildDirectory_001"
abstract_class IFileSystem2
{
@@ -75,6 +76,11 @@ public:
extern IFileSystem2 *filesystem2;
struct StageOutput_t
{
const char *m_szName;
CUtlString m_szPath;
};
//-----------------------------------------------------------------------------
// Build stage.
@@ -84,6 +90,8 @@ class CBuildStage
public:
CBuildStage( const char *psz, int(*pMainFn)() );
const char *m_psz;
CUtlString m_szPath;
CUtlVector<StageOutput_t> m_outputs;
int(*m_pMainFn)();
};
@@ -110,11 +118,14 @@ static int __build_stage_##sz()
#define ADD_DEPENDENCY_BUILD_FILE(name, path) \
static CBuildDependentFile __##name##DependencyFile(path);
#define ADD_OUTPUT_LIBRARY(sz) \
#define ADD_OUTPUT_OBJECT(sz, path) \
g_pCurrentStage->m_outputs.AppendTail((StageOutput_t){sz, path});
#define DEPEND_ON_PROJECT(sz) \
#define GET_PROJECT_LIBRARY(sz, szLib) \
FPC_GetProjectObject(#sz, szLib)
struct BuildFileInfo_t
{
@@ -123,8 +134,18 @@ struct BuildFileInfo_t
};
BuildFileInfo_t *GetBuildFileInfo();
extern CBuildStage *g_pCurrentStage;
#define BUILD_FILE_INFO_INTERFACE_NAME "BuildFileInfo001"
CUtlString FPC_GetProjectObject( const char *szName, const char *szObjectName );
#define BUILD_FILE_INFO_INTERFACE_VERSION "BuildFileInfo001"
#define BUILD_CURRENT_STAGE_INTERFACE_VERSION "BuildCurrentStage001"
typedef CUtlString(*GetProjectObjectFn)( const char *szName, const char *szObjectName );
#define BUILD_GET_PROJECT_OBJECT_INTERFACE_VERSION "GetProjectObject001"
#define LIBFPC_INIT_INTERFACE_VERSION "LibFPCInit001"
extern IINIFile *g_pConfig;