18#include <gwenhywfar/debug.h>
19#include <gwenhywfar/process.h>
20#include <gwenhywfar/text.h>
21#include <gwenhywfar/syncio.h>
34 const char *sMinVersion,
35 const char *sMaxVersion);
82 if (strcasecmp(name,
"subdirs")==0)
84 else if (strcasecmp(name,
"dep")==0)
108 const char *sMinVersion;
109 const char *sMaxVersion;
119 if (!(sId && *sId)) {
125 if (!(sName && *sName)) {
131 required=(strcasecmp(s,
"TRUE")==0)?1:0;
166 DBG_ERROR(
NULL,
"Dependency \"%s\" not found but required", sName);
198 DBG_ERROR(
NULL,
"Error retrieving variable \"%s\" for dependency \"%s\"", s, sId);
215 const char *sMinVersion,
216 const char *sMaxVersion)
241 stdOutBuffer, stdErrBuffer);
254 fprintf(stdout,
" dep %s: %s\n", sId, (rv==0)?
"found":
"not found");
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)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
GWEN_DB_NODE * GWB_Context_GetVars(const GWB_CONTEXT *ctx)
struct GWB_CONTEXT GWB_CONTEXT
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_GENERIC
#define GWEN_ERROR_NOT_FOUND
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
int GWB_ParseDependencies(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _callPkgConfig(GWEN_DB_NODE *db, const char *sId, const char *sName, const char *suffix, const char *args)
static int _parseChildNodes(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _retrieveCflags(GWEN_DB_NODE *db, const char *sId, const char *sName)
void _replaceControlCharsWithBlanks(char *ptr)
static int _retrieveLdflags(GWEN_DB_NODE *db, const char *sId, const char *sName)
int _retrieveVariables(GWB_CONTEXT *currentContext, GWEN_DB_NODE *db, const char *sId, const char *sName, GWEN_XMLNODE *xmlNode)
static int _checkVersion(GWEN_DB_NODE *db, const char *sId, const char *sName, const char *sMinVersion, const char *sMaxVersion)
int _parseDep(GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int _retrieveVariable(GWEN_DB_NODE *db, const char *sId, const char *sName, const char *variableName)
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)
void GWB_Parser_SetItemValue(GWEN_DB_NODE *db, const char *sId, const char *suffix, const char *value)
GWENHYWFAR_API int GWEN_Process_RunCommandWaitAndGather(const char *prg, const char *args, GWEN_BUFFER *stdOutBuffer, GWEN_BUFFER *stdErrBuffer)
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 GWEN_Text_CondenseBuffer(GWEN_BUFFER *buf)
const char * GWEN_XMLNode_GetProperty(const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
GWEN_XMLNODE * GWEN_XMLNode_FindFirstTag(const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
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)
struct GWEN__XMLNODE GWEN_XMLNODE