15#include "gwenbuild/types/project_p.h"
17#include <gwenhywfar/memory.h>
18#include <gwenhywfar/debug.h>
36 project->gwbuild=gwbuild;
37 project->contextTree=ctx;
39 project->fileList=GWB_File_List2_new();
40 project->targetList=GWB_Target_List2_new();
41 project->builderList=GWB_Builder_List2_new();
42 project->optionList=GWB_Option_List_new();
43 project->givenOptionList=GWB_KeyValuePair_List_new();
44 project->explicitBuildList=GWB_BuildCmd_List_new();
54 GWB_KeyValuePair_List_free(project->givenOptionList);
55 GWB_Option_List_free(project->optionList);
56 GWB_File_List2_free(project->fileList);
58 GWB_Target_List2_free(project->targetList);
59 GWB_Builder_List2_free(project->builderList);
60 GWB_KeyValuePair_List_free(project->defineList);
61 free(project->versionTag);
62 GWB_BuildCmd_List_free(project->explicitBuildList);
72 return project->gwbuild;
79 return project->projectName;
86 if (project->projectName)
87 free(project->projectName);
89 project->projectName=strdup(s);
91 project->projectName=
NULL;
98 project->versionMajor=vMajor;
99 project->versionMinor=vMinor;
100 project->versionPatchlevel=vPatchlevel;
101 project->versionBuild=vBuild;
102 free(project->versionTag);
103 project->versionTag=vTag?strdup(vTag):
NULL;
110 return project->versionMajor;
117 return project->versionMinor;
124 return project->versionPatchlevel;
131 return project->versionBuild;
138 return project->versionTag;
145 project->soVersionCurrent=vCurrent;
146 project->soVersionAge=vAge;
147 project->soVersionRevision=vRevision;
154 return project->soVersionCurrent;
161 return project->soVersionAge;
168 return project->soVersionRevision;
175 return project->flags;
207 return project->fileList;
221 GWB_File_List2_PushBack(project->fileList, file);
228 return project->contextTree;
236 return project->targetList;
243 GWB_Target_List2_PushBack(project->targetList, target);
250 if (project->targetList) {
251 GWB_TARGET_LIST2_ITERATOR *it;
253 it=GWB_Target_List2_First(project->targetList);
257 target=GWB_Target_List2Iterator_Data(it);
262 if (s && strcasecmp(s,
id)==0)
264 target=GWB_Target_List2Iterator_Next(it);
266 GWB_Target_List2Iterator_free(it);
279 return project->builderList;
286 GWB_Builder_List2_PushBack(project->builderList, builder);
293 return project->defineList;
303 if (project->defineList==
NULL)
304 project->defineList=GWB_KeyValuePair_List_new();
333if (project->defineList==
NULL)
334 project->defineList=GWB_KeyValuePair_List_new();
336 GWB_KeyValuePair_List_Clear(project->defineList);
343 return project->optionList;
350 GWB_Option_List_Add(option, project->optionList);
359 option=GWB_Option_List_First(project->optionList);
364 if (sName && strcasecmp(sName, optionId)==0)
366 option=GWB_Option_List_Next(option);
376 return project->givenOptionList;
383 GWB_KeyValuePair_List_free(project->givenOptionList);
384 project->givenOptionList=kvpList;
394 GWB_KeyValuePair_List_Add(kvp, project->givenOptionList);
408 return project->explicitBuildList;
415 GWB_BuildCmd_List_Add(bcmd, project->explicitBuildList);
422 if (project->projectName)
428 if (project->versionTag)
437 if (project->defineList) {
445 if (project->givenOptionList) {
453 if (project->explicitBuildList) {
461 if (project->fileList) {
515 if (strcasecmp(s,
"SHARED")==0)
517 else if (strcasecmp(s,
"CONFIG_H")==0)
542 for(i=0; i<indent; i++)
543 fprintf(stderr,
" ");
544 fprintf(stderr,
"Project:\n");
556 for(i=0; i<indent; i++)
557 fprintf(stderr,
" ");
558 fprintf(stderr,
"flags...........:");
560 fprintf(stderr,
" SHARED");
561 fprintf(stderr,
"\n");
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)
uint32_t GWEN_Buffer_GetUsedBytes(const GWEN_BUFFER *bf)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
void GWB_BuildCmd_List_WriteXml(const GWB_BUILD_CMD_LIST *cmdList, GWEN_XMLNODE *xmlNode, const char *groupName)
struct GWB_BUILD_CMD GWB_BUILD_CMD
static uint32_t _readFlagsFromChar(const char *flagsAsText)
struct GWB_BUILDER GWB_BUILDER
void GWB_Context_Tree2_Dump(const GWB_CONTEXT *ctx, int indent)
void GWB_Context_free(GWB_CONTEXT *ctx)
struct GWB_CONTEXT GWB_CONTEXT
#define DBG_ERROR(dbg_logger, format, args...)
void GWB_File_List2_WriteXml(const GWB_FILE_LIST2 *fileList, GWEN_XMLNODE *xmlNode, const char *groupName)
GWB_FILE * GWB_File_List2_GetFileByPathAndName(const GWB_FILE_LIST2 *fileList, const char *folder, const char *fname)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWBUILD_Debug_PrintKvpList(const char *sName, const GWB_KEYVALUEPAIR_LIST *kvpList, int indent)
void GWBUILD_Debug_PrintIntValue(const char *sName, int value, int indent)
void GWBUILD_Debug_PrintOptionList(const char *sName, const GWB_OPTION_LIST *optionList, int indent)
void GWBUILD_Debug_PrintFileList2(const char *sName, const GWB_FILE_LIST2 *fileList2, int indent)
void GWBUILD_Debug_PrintBuilderList2(const char *sName, const GWB_BUILDER_LIST2 *builderList2, int indent, int fullDump)
void GWBUILD_Debug_PrintTargetList2(const char *sName, const GWB_TARGET_LIST2 *targetList2, int indent, int fullDump)
void GWBUILD_Debug_PrintValue(const char *sName, const char *sValue, int indent)
struct GWENBUILD GWENBUILD
void GWB_KeyValuePair_List_WriteXml(const GWB_KEYVALUEPAIR_LIST *kvpList, GWEN_XMLNODE *xmlNode, const char *groupName)
GWB_KEYVALUEPAIR * GWB_KeyValuePair_new(const char *key, const char *value)
const char * GWB_KeyValuePair_List_GetValue(const GWB_KEYVALUEPAIR_LIST *kvpList, const char *key)
GWB_KEYVALUEPAIR * GWB_KeyValuePair_List_GetFirstByKey(const GWB_KEYVALUEPAIR_LIST *kvpList, const char *key)
void GWB_KeyValuePair_SetValue(GWB_KEYVALUEPAIR *kvp, const char *s)
struct GWB_KEYVALUEPAIR GWB_KEYVALUEPAIR
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)
const char * GWB_Option_GetId(const GWB_OPTION *option)
struct GWB_OPTION GWB_OPTION
void GWB_Project_toXml(const GWB_PROJECT *project, GWEN_XMLNODE *xmlNode)
void GWB_Project_free(GWB_PROJECT *project)
void GWB_Project_SetGivenOptionList(GWB_PROJECT *project, GWB_KEYVALUEPAIR_LIST *kvpList)
void GWB_Project_SetSoVersion(GWB_PROJECT *project, int vCurrent, int vAge, int vRevision)
GWB_KEYVALUEPAIR_LIST * GWB_Project_GetDefineList(const GWB_PROJECT *project)
void GWB_Project_SetFlags(GWB_PROJECT *project, uint32_t fl)
GWB_FILE * GWB_Project_GetFileByPathAndName(const GWB_PROJECT *project, const char *folder, const char *fname)
GWB_BUILDER_LIST2 * GWB_Project_GetBuilderList(const GWB_PROJECT *project)
const char * GWB_Project_GetGivenOption(const GWB_PROJECT *project, const char *name)
void GWB_Project_AddOption(GWB_PROJECT *project, GWB_OPTION *option)
void GWB_Project_AddTarget(GWB_PROJECT *project, GWB_TARGET *target)
GWB_PROJECT * GWB_Project_new(GWENBUILD *gwbuild, GWB_CONTEXT *ctx)
static void _writeFileFlagsToXml(uint32_t flags, GWEN_XMLNODE *xmlNode, const char *varName)
GWB_TARGET * GWB_Project_GetTargetById(const GWB_PROJECT *project, const char *id)
uint32_t GWB_Project_GetFlags(const GWB_PROJECT *project)
void GWB_Project_AddFile(GWB_PROJECT *project, GWB_FILE *file)
void GWB_Project_SetVersion(GWB_PROJECT *project, int vMajor, int vMinor, int vPatchlevel, int vBuild, const char *vTag)
GWENBUILD * GWB_Project_GetGwbuild(const GWB_PROJECT *project)
int GWB_Project_GetVersionPatchlevel(const GWB_PROJECT *project)
GWB_BUILD_CMD_LIST * GWB_Project_GetExplicitBuildList(const GWB_PROJECT *project)
int GWB_Project_GetSoVersionRevision(const GWB_PROJECT *project)
GWB_OPTION * GWB_Project_GetOptionById(const GWB_PROJECT *project, const char *optionId)
GWB_CONTEXT * GWB_Project_GetRootContext(const GWB_PROJECT *project)
int GWB_Project_GetSoVersionAge(const GWB_PROJECT *project)
int GWB_Project_GetVersionMinor(const GWB_PROJECT *project)
GWB_KEYVALUEPAIR_LIST * GWB_Project_GetGivenOptionList(const GWB_PROJECT *project)
void GWB_Project_AddBuilder(GWB_PROJECT *project, GWB_BUILDER *builder)
void GWB_Project_SetGivenOption(GWB_PROJECT *project, const char *name, const char *value)
void GWB_Project_SetDefineQuoted(GWB_PROJECT *project, const char *name, const char *value)
GWB_FILE_LIST2 * GWB_Project_GetFileList(const GWB_PROJECT *project)
int GWB_Project_GetSoVersionCurrent(const GWB_PROJECT *project)
const char * GWB_Project_GetVersionTag(const GWB_PROJECT *project)
GWB_TARGET_LIST2 * GWB_Project_GetTargetList(const GWB_PROJECT *project)
void GWB_Project_AddExplicitBuild(GWB_PROJECT *project, GWB_BUILD_CMD *bcmd)
GWB_OPTION_LIST * GWB_Project_GetOptionList(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)
void GWB_Project_DelFlags(GWB_PROJECT *project, uint32_t fl)
void GWB_Project_Dump(const GWB_PROJECT *project, int indent, int fullDump)
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)
void GWB_Project_ClearDefineList(GWB_PROJECT *project)
#define GWB_PROJECT_FLAGS_CONFIG_H
struct GWB_PROJECT GWB_PROJECT
#define GWB_PROJECT_FLAGS_SHARED
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_STRINGLIST * GWEN_StringList_fromString(const char *str, const char *delimiters, int checkDouble)
GWEN_STRINGLISTENTRY * GWEN_StringList_FirstEntry(const GWEN_STRINGLIST *sl)
struct GWEN_STRINGLISTENTRYSTRUCT GWEN_STRINGLISTENTRY
struct GWEN_STRINGLISTSTRUCT GWEN_STRINGLIST
const char * GWB_Target_GetId(const GWB_TARGET *target)
struct GWB_TARGET GWB_TARGET
GWEN_XMLNODE * GWEN_XMLNode_new(GWEN_XMLNODE_TYPE t, const char *data)
void GWEN_XMLNode_SetIntValue(GWEN_XMLNODE *n, const char *name, int value)
void GWEN_XMLNode_AddChild(GWEN_XMLNODE *n, GWEN_XMLNODE *child)
void GWEN_XMLNode_SetCharValue(GWEN_XMLNODE *n, const char *name, const char *value)
struct GWEN__XMLNODE GWEN_XMLNODE