20#include <gwenhywfar/debug.h>
21#include <gwenhywfar/text.h>
48 target=
_readTarget(project, currentContext, xmlNode);
67 GWB_Context_Tree2_AddChild(currentContext, newContext);
145 if (strcasecmp(name,
"subdirs")==0)
147 else if (strcasecmp(name,
"sources")==0)
151 else if (strcasecmp(name,
"headers")==0)
153 else if (strcasecmp(name,
"data")==0)
155 else if (strcasecmp(name,
"extradist")==0)
157 else if (strcasecmp(name,
"useTargets")==0)
159 else if (strcasecmp(name,
"includes")==0)
161 else if (strcasecmp(name,
"define")==0)
163 else if (strcasecmp(name,
"libraries")==0)
165 else if (strcasecmp(name,
"target")==0)
167 else if (strcasecmp(name,
"buildFiles")==0)
204 if (targetNameList) {
209 const char *sTargetName;
212 if (sTargetName && *sTargetName)
229 const char *builderType;
255 if (sEntry && *sEntry)
284 if (!(varName && *varName)) {
288 if (quoted && strcasecmp(quoted,
"TRUE")==0) {
336 if (sEntry && *sEntry)
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
GWB_TARGET * GWB_Context_GetCurrentTarget(const GWB_CONTEXT *ctx)
void GWB_Context_AddInclude(GWB_CONTEXT *ctx, const char *genType, const char *incl)
void GWB_Context_SetCurrentTarget(GWB_CONTEXT *ctx, GWB_TARGET *target)
void GWB_Context_free(GWB_CONTEXT *ctx)
GWEN_DB_NODE * GWB_Context_GetVars(const GWB_CONTEXT *ctx)
void GWB_Context_SetDefine(GWB_CONTEXT *ctx, const char *name, const char *value)
struct GWB_CONTEXT GWB_CONTEXT
int GWEN_DB_SetCharValueFromInt(GWEN_DB_NODE *n, uint32_t flags, const char *path, int val)
int GWEN_DB_SetCharValue(GWEN_DB_NODE *n, uint32_t flags, const char *path, const char *val)
#define GWEN_DB_FLAGS_OVERWRITE_VARS
struct GWEN_DB_NODE GWEN_DB_NODE
#define DBG_DEBUG(dbg_logger, format, args...)
#define DBG_INFO(dbg_logger, format, args...)
#define DBG_ERROR(dbg_logger, format, args...)
#define GWEN_ERROR_INTERNAL
#define GWEN_ERROR_GENERIC
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
GWBUILD_TARGETTYPE GWBUILD_TargetType_fromString(const char *s)
@ GWBUILD_TargetType_Invalid
int GWB_ParseBuildFiles(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static GWB_TARGET * _readTarget(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _parseChildNodes(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _parseUsedTargets(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseTarget(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _parseDefines(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _parseLibraries(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _parseIncludes(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
GWB_CONTEXT * GWB_Parser_CopyContextForTarget(const GWB_CONTEXT *sourceContext)
int GWB_Parser_ParseSubdirs(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode, GWB_PARSER_PARSE_ELEMENT_FN fn)
GWEN_STRINGLIST * GWB_Parser_ReadXmlDataIntoStringList(GWEN_DB_NODE *db, GWEN_XMLNODE *xmlNode)
int GWB_Parser_ParseWellKnownElements(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *n, GWB_PARSER_PARSE_ELEMENT_FN fn)
int GWB_Parser_ParseSourcesOrHeaders(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode, uint32_t fileFlags, const char *defaultTypeName, const char *defaultBuilder)
#define GWB_PARSER_SRCFILEFLAGS_ALWAYSDIST
#define GWB_PARSER_SRCFILEFLAGS_ISSOURCE
void GWB_Project_AddTarget(GWB_PROJECT *project, GWB_TARGET *target)
struct GWB_PROJECT GWB_PROJECT
void GWEN_StringList_free(GWEN_STRINGLIST *sl)
const char * GWEN_StringListEntry_Data(const GWEN_STRINGLISTENTRY *se)
GWEN_STRINGLISTENTRY * GWEN_StringListEntry_Next(const GWEN_STRINGLISTENTRY *se)
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
void GWB_Target_SetTargetType(GWB_TARGET *target, GWBUILD_TARGETTYPE t)
void GWB_Target_SetSoVersion(GWB_TARGET *target, int vCurrent, int vAge, int vRevision)
void GWB_Target_SetInstallPath(GWB_TARGET *target, const char *s)
GWB_TARGET * GWB_Target_new(GWB_PROJECT *project)
void GWB_Target_SetContext(GWB_TARGET *target, GWB_CONTEXT *ctx)
int GWB_Target_GetSoVersionRevision(const GWB_TARGET *target)
void GWB_Target_SetId(GWB_TARGET *target, const char *s)
void GWB_Target_AddUsedTargetName(GWB_TARGET *target, const char *s)
int GWB_Target_GetSoVersionCurrent(const GWB_TARGET *target)
void GWB_Target_AddUsedLibraryName(GWB_TARGET *target, const char *s)
void GWB_Target_SetName(GWB_TARGET *target, const char *s)
const char * GWB_Target_GetName(const GWB_TARGET *target)
int GWB_Target_GetSoVersionAge(const GWB_TARGET *target)
void GWB_Target_free(GWB_TARGET *target)
struct GWB_TARGET GWB_TARGET
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
GWEN_XMLNODE * GWEN_XMLNode_GetFirstTag(const GWEN_XMLNODE *n)
GWEN_XMLNODE * GWEN_XMLNode_GetNextTag(const GWEN_XMLNODE *n)
int GWEN_XMLNode_ExpandProperties(const GWEN_XMLNODE *n, GWEN_DB_NODE *dbVars)
const char * GWEN_XMLNode_GetData(const GWEN_XMLNODE *n)
int GWEN_XMLNode_GetIntProperty(const GWEN_XMLNODE *n, const char *name, int defaultValue)
struct GWEN__XMLNODE GWEN_XMLNODE