29#include <gwenhywfar/debug.h>
71 if (s && strcasecmp(s,
"TRUE")==0)
184 DBG_ERROR(
NULL,
"Invalid version string [%s]", sVersionString);
233 if (strcasecmp(name,
"option")==0)
235 else if (strcasecmp(name,
"dependencies")==0)
237 else if (strcasecmp(name,
"checkheaders")==0)
239 else if (strcasecmp(name,
"checkfunctions")==0)
241 else if (strcasecmp(name,
"checklibs")==0)
243 else if (strcasecmp(name,
"checkprogs")==0)
245 else if (strcasecmp(name,
"checkCompiler")==0)
247 else if (strcasecmp(name,
"target")==0)
249 else if (strcasecmp(name,
"define")==0)
251 else if (strcasecmp(name,
"i18n")==0)
253 else if (strcasecmp(name,
"buildFiles")==0)
255 else if (strcasecmp(name,
"extradist")==0)
257 else if (strcasecmp(name,
"data")==0)
259 else if (strcasecmp(name,
"i18n")==0)
261 else if (strcasecmp(name,
"subdirs")==0)
281 GWB_KEYVALUEPAIR_LIST *defineList;
326 if (!(varName && *varName)) {
330 if (quoted && strcasecmp(quoted,
"TRUE")==0)
345 const char *installPath;
359 fprintf(stderr,
"Adding language catalog \"%s\"\n", s);
367 DBG_WARN(
NULL,
"Tool msgfmt missing, not creating language catalogs");
385 if (!(installPath && *installPath))
388 if (installPath && *installPath) {
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
GWEN_DB_NODE * GWB_Context_GetVars(const GWB_CONTEXT *ctx)
struct GWB_CONTEXT GWB_CONTEXT
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
GWEN_DB_NODE * GWEN_DB_Group_new(const char *name)
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)
int GWEN_DB_GetIntValue(GWEN_DB_NODE *n, const char *path, int idx, int defVal)
void GWEN_DB_Group_free(GWEN_DB_NODE *n)
#define GWEN_DB_FLAGS_OVERWRITE_VARS
struct GWEN_DB_NODE GWEN_DB_NODE
#define DBG_DEBUG(dbg_logger, format, args...)
#define DBG_WARN(dbg_logger, format, args...)
#define DBG_INFO(dbg_logger, format, args...)
#define DBG_ERROR(dbg_logger, format, args...)
#define GWEN_ERROR_BAD_DATA
#define GWEN_ERROR_GENERIC
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
@ GWBUILD_TargetType_I18nCatalog
#define GWEN_DIR_SEPARATOR_S
int GWB_KeyValuePair_List_WriteAllPairsToBuffer(const GWB_KEYVALUEPAIR_LIST *kvpList, const char *prefix, const char *assignmentString, const char *delim, GWEN_BUFFER *destBuf)
int GWB_ParseBuildFiles(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseCheckCompiler(GWEN_UNUSED GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseCheckFunctions(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseCheckLibs(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseCheckProgs(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseDependencies(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseOption(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _parseChildNodes(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static int _parseDefine(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
int GWB_ParseProject(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static void _writeProjectVersionToContextDbVars(GWB_PROJECT *project, GWEN_DB_NODE *dbContextVars)
static int _setProjectVersionFromString(GWB_PROJECT *project, GWEN_DB_NODE *dbContextVars, const char *sVersionString)
static int _parseVersions(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static void _writeProjectSoVersionToContextDbVars(GWB_PROJECT *project, GWEN_DB_NODE *dbContextVars)
static int _parseI18n(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
static void _addTargetForLanguage(GWB_PROJECT *project, GWB_CONTEXT *currentContext, const char *sLanguage, const char *installPath)
static int _writeConfigH(const GWB_PROJECT *project)
static void _setProjectVersionFromProjectAttributes(GWB_PROJECT *project, GWEN_DB_NODE *dbContextVars, GWEN_XMLNODE *xmlNode)
int GWB_ParseTarget(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWEN_XMLNODE *xmlNode)
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)
GWB_TARGET * GWB_Parser_AddTargetForSourceFile(GWB_PROJECT *project, GWB_CONTEXT *currentContext, GWBUILD_TARGETTYPE targetType, const char *fileName, const char *fileType, const char *builderName, const char *installPath)
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
void GWB_Project_SetSoVersion(GWB_PROJECT *project, int vCurrent, int vAge, int vRevision)
GWB_KEYVALUEPAIR_LIST * GWB_Project_GetDefineList(const GWB_PROJECT *project)
uint32_t GWB_Project_GetFlags(const GWB_PROJECT *project)
void GWB_Project_SetVersion(GWB_PROJECT *project, int vMajor, int vMinor, int vPatchlevel, int vBuild, const char *vTag)
int GWB_Project_GetVersionPatchlevel(const GWB_PROJECT *project)
int GWB_Project_GetSoVersionRevision(const GWB_PROJECT *project)
int GWB_Project_GetSoVersionAge(const GWB_PROJECT *project)
int GWB_Project_GetVersionMinor(const GWB_PROJECT *project)
void GWB_Project_SetDefineQuoted(GWB_PROJECT *project, const char *name, const char *value)
int GWB_Project_GetSoVersionCurrent(const GWB_PROJECT *project)
const char * GWB_Project_GetVersionTag(const GWB_PROJECT *project)
void GWB_Project_AddFlags(GWB_PROJECT *project, uint32_t fl)
void GWB_Project_SetDefine(GWB_PROJECT *project, const char *name, const char *value)
int GWB_Project_GetVersionMajor(const GWB_PROJECT *project)
const char * GWB_Project_GetProjectName(const GWB_PROJECT *project)
void GWB_Project_SetProjectName(GWB_PROJECT *project, const char *s)
int GWB_Project_GetVersionBuild(const GWB_PROJECT *project)
#define GWB_PROJECT_FLAGS_CONFIG_H
struct GWB_PROJECT GWB_PROJECT
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
int GWEN_SyncIo_Helper_WriteFile(const char *fName, const uint8_t *ptrSource, uint64_t lenSource)
void GWB_Target_SetInstallName(GWB_TARGET *target, const char *s)
struct GWB_TARGET GWB_TARGET
void GWB_Utils_VersionToDbVar(GWEN_DB_NODE *db, const char *dbVarName, int vmajor, int vminor, int vpatchlevel, int vbuild, const char *vtag)
int GWB_Utils_VersionStringToDb(GWEN_DB_NODE *db, const char *prefix, const char *s)
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