14 #define DISABLE_DEBUGLOG 17 #include "gwenbuild/buildctx/buildctx_p.h" 20 #include <gwenhywfar/debug.h> 21 #include <gwenhywfar/text.h> 22 #include <gwenhywfar/directory.h> 44 if (bctx->initialSourceDir)
55 if (bctx->commandList) {
93 GWB_BUILD_CMD_LIST2_ITERATOR *it;
95 it=GWB_BuildCmd_List2_First(commandList);
99 cmd=GWB_BuildCmd_List2Iterator_Data(it);
106 cmd=GWB_BuildCmd_List2Iterator_Next(it);
108 GWB_BuildCmd_List2Iterator_free(it);
116 GWB_FILE_LIST2_ITERATOR *it;
118 it=GWB_File_List2_First(fileList);
122 file=GWB_File_List2Iterator_Data(it);
142 file=GWB_File_List2Iterator_Next(it);
144 GWB_File_List2Iterator_free(it);
191 GWB_BuildCmd_List2_PushBack(bctx->commandList, bcmd);
199 const char *groupName,
200 GWB_FILE_LIST2 *destFileList)
216 const char *fileType;
217 const char *flagsAsText;
230 GWB_File_List2_PushBack(destFileList, file);
253 if (strcasecmp(s,
"DIST")==0)
255 else if (strcasecmp(s,
"INSTALL")==0)
257 else if (strcasecmp(s,
"GENERATED")==0)
283 DBG_ERROR(
NULL,
"Error reading BuildContext file \"%s\": Bad XML (%d)", fileName, rv);
289 if (xmlBuildCtx==
NULL) {
290 DBG_ERROR(
NULL,
"XML file \"%s\" doesn not contain a BuildContext element,", fileName);
317 DBG_ERROR(
NULL,
"Error writing BuildContext to file \"%s\" (%d)", fileName, rv);
const char * GWB_File_GetFileType(const GWB_FILE *f)
static void _readCommandsFromXml(GWB_BUILD_CONTEXT *bctx, GWEN_XMLNODE *xmlNode, const char *groupName)
GWB_BUILD_CONTEXT * GWB_BuildCtx_new()
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
#define GWEN_XML_FLAGS_DEFAULT
uint32_t GWB_File_GetId(const GWB_FILE *f)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
#define GWEN_XML_FLAGS_SIMPLE
GWEN_XMLNODE * GWEN_XMLNode_FindNextTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
static void _writeCommandList2ToXml(const GWB_BUILD_CMD_LIST2 *commandList, GWEN_XMLNODE *xmlNode, const char *groupName)
struct GWB_BUILD_CONTEXT GWB_BUILD_CONTEXT
static void _writeFileList2ToXml(const GWB_FILE_LIST2 *fileList, GWEN_XMLNODE *xmlNode, const char *groupName)
GWENHYWFAR_API int GWEN_XML_ReadFile(GWEN_XMLNODE *n, const char *filepath, uint32_t flags)
void GWB_File_SetFileType(GWB_FILE *f, const char *s)
GWB_BUILD_CMD * GWB_BuildCmd_fromXml(GWEN_XMLNODE *xmlNode, GWB_FILE_LIST2 *fileList)
void GWEN_XMLNode_SetCharValue(GWEN_XMLNODE *n, const char *name, const char *value)
GWEN_XMLNODE * GWEN_XMLNode_new(GWEN_XMLNODE_TYPE t, const char *data)
#define GWB_FILE_FLAGS_DIST
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWB_BuildCtx_toXml(const GWB_BUILD_CONTEXT *bctx, GWEN_XMLNODE *xmlNode)
GWB_BUILD_CONTEXT * GWB_BuildCtx_ReadFromXmlFile(const char *fileName)
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
#define GWB_FILE_FLAGS_INSTALL
const char * GWB_File_GetFolder(const GWB_FILE *f)
GWB_FILE * GWB_File_new(const char *folder, const char *fName, uint32_t id)
const char * GWB_File_GetName(const GWB_FILE *f)
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
GWEN_XMLNODE * GWEN_XMLNode_FindFirstTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
int GWEN_XMLNode_GetIntProperty(const GWEN_XMLNODE *n, const char *name, int defaultValue)
const char * GWEN_XMLNode_GetCharValue(const GWEN_XMLNODE *n, const char *name, const char *defValue)
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
void GWB_BuildCtx_SetInitialSourceDir(GWB_BUILD_CONTEXT *bctx, const char *s)
void GWB_File_SetFlags(GWB_FILE *f, uint32_t i)
GWEN_STRINGLIST * GWEN_StringList_fromString(const char *str, const char *delimiters, int checkDouble)
GWENHYWFAR_API int GWEN_XMLNode_WriteFile(const GWEN_XMLNODE *n, const char *fname, uint32_t flags)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
static void _readFilesFromXml(GWEN_XMLNODE *xmlNode, const char *groupName, GWB_FILE_LIST2 *destFileList)
void GWEN_XMLNode_free(GWEN_XMLNODE *n)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
static uint32_t _readFlagsFromChar(const char *flagsAsText)
void GWEN_XMLNode_SetIntProperty(GWEN_XMLNODE *n, const char *name, int value)
int GWB_BuildCtx_WriteToXmlFile(const GWB_BUILD_CONTEXT *buildCtx, const char *fileName)
#define DBG_ERROR(dbg_logger, format, args...)
static void _writeFileFlagsToXml(uint32_t flags, GWEN_XMLNODE *xmlNode, const char *varName)
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
struct GWB_BUILD_CMD GWB_BUILD_CMD
uint32_t GWB_File_GetFlags(const GWB_FILE *f)
void GWB_BuildCmd_toXml(const GWB_BUILD_CMD *bcmd, GWEN_XMLNODE *xmlNode)
GWB_BUILD_CONTEXT * GWB_BuildCtx_fromXml(GWEN_XMLNODE *xmlNode)
struct GWEN__XMLNODE GWEN_XMLNODE
#define GWB_FILE_FLAGS_GENERATED
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
void GWEN_XMLNode_AddChild(GWEN_XMLNODE *n, GWEN_XMLNODE *child)