gwenhywfar  5.10.1
project.h
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Mon Feb 08 2021
3  copyright : (C) 2021 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 #ifndef GWBUILD_PROJECT_H
11 #define GWBUILD_PROJECT_H
12 
13 
14 typedef struct GWB_PROJECT GWB_PROJECT;
15 
16 
19 #include "gwenbuild/types/file.h"
21 #include "gwenbuild/types/target.h"
22 #include "gwenbuild/types/option.h"
24 
25 
26 #define GWB_PROJECT_FLAGS_SHARED 0x0001
27 #define GWB_PROJECT_FLAGS_CONFIG_H 0x0002
28 
29 
30 
32 void GWB_Project_free(GWB_PROJECT *project);
33 
35 
37 
38 
39 const char *GWB_Project_GetProjectName(const GWB_PROJECT *project);
40 void GWB_Project_SetProjectName(GWB_PROJECT *project, const char *s);
41 
42 void GWB_Project_SetVersion(GWB_PROJECT *project, int vMajor, int vMinor, int vPatchlevel, int vBuild, const char *vTag);
43 int GWB_Project_GetVersionMajor(const GWB_PROJECT *project);
44 int GWB_Project_GetVersionMinor(const GWB_PROJECT *project);
46 int GWB_Project_GetVersionBuild(const GWB_PROJECT *project);
47 const char *GWB_Project_GetVersionTag(const GWB_PROJECT *project);
48 
49 void GWB_Project_SetSoVersion(GWB_PROJECT *project, int vCurrent, int vAge, int vRevision);
51 int GWB_Project_GetSoVersionAge(const GWB_PROJECT *project);
53 
54 GWB_KEYVALUEPAIR_LIST *GWB_Project_GetDefineList(const GWB_PROJECT *project);
55 void GWB_Project_SetDefine(GWB_PROJECT *project, const char *name, const char *value);
56 void GWB_Project_SetDefineQuoted(GWB_PROJECT *project, const char *name, const char *value);
58 
59 
60 GWB_KEYVALUEPAIR_LIST *GWB_Project_GetGivenOptionList(const GWB_PROJECT *project);
61 void GWB_Project_SetGivenOptionList(GWB_PROJECT *project, GWB_KEYVALUEPAIR_LIST *kvpList);
62 void GWB_Project_SetGivenOption(GWB_PROJECT *project, const char *name, const char *value);
63 const char *GWB_Project_GetGivenOption(const GWB_PROJECT *project, const char *name);
64 
65 
66 GWB_FILE_LIST2 *GWB_Project_GetFileList(const GWB_PROJECT *project);
67 GWB_FILE *GWB_Project_GetFileByPathAndName(const GWB_PROJECT *project, const char *folder, const char *fname);
68 void GWB_Project_AddFile(GWB_PROJECT *project, GWB_FILE *file);
69 
70 GWB_TARGET_LIST2 *GWB_Project_GetTargetList(const GWB_PROJECT *project);
71 void GWB_Project_AddTarget(GWB_PROJECT *project, GWB_TARGET *target);
72 GWB_TARGET *GWB_Project_GetTargetById(const GWB_PROJECT *project, const char *name);
73 
74 GWB_BUILDER_LIST2 *GWB_Project_GetBuilderList(const GWB_PROJECT *project);
75 void GWB_Project_AddBuilder(GWB_PROJECT *project, GWB_BUILDER *builder);
76 
77 
78 GWB_OPTION_LIST *GWB_Project_GetOptionList(const GWB_PROJECT *project);
79 void GWB_Project_AddOption(GWB_PROJECT *project, GWB_OPTION *option);
80 GWB_OPTION *GWB_Project_GetOptionById(const GWB_PROJECT *project, const char *optionId);
81 
82 uint32_t GWB_Project_GetFlags(const GWB_PROJECT *project);
83 void GWB_Project_SetFlags(GWB_PROJECT *project, uint32_t fl);
84 void GWB_Project_AddFlags(GWB_PROJECT *project, uint32_t fl);
85 void GWB_Project_DelFlags(GWB_PROJECT *project, uint32_t fl);
86 
87 GWB_BUILD_CMD_LIST *GWB_Project_GetExplicitBuildList(const GWB_PROJECT *project);
89 
90 
91 void GWB_Project_toXml(const GWB_PROJECT *project, GWEN_XMLNODE *xmlNode);
92 
93 
94 void GWB_Project_Dump(const GWB_PROJECT *project, int indent, int fullDump);
95 
96 
97 #endif
GWB_TARGET_LIST2 * GWB_Project_GetTargetList(const GWB_PROJECT *project)
Definition: project.c:234
struct GWB_CONTEXT GWB_CONTEXT
Definition: context.h:17
void GWB_Project_SetDefineQuoted(GWB_PROJECT *project, const char *name, const char *value)
Definition: project.c:316
int GWB_Project_GetSoVersionAge(const GWB_PROJECT *project)
Definition: project.c:159
void GWB_Project_SetProjectName(GWB_PROJECT *project, const char *s)
Definition: project.c:84
GWB_BUILDER_LIST2 * GWB_Project_GetBuilderList(const GWB_PROJECT *project)
Definition: project.c:277
struct GWB_OPTION GWB_OPTION
Definition: option.h:17
void GWB_Project_SetSoVersion(GWB_PROJECT *project, int vCurrent, int vAge, int vRevision)
Definition: project.c:143
struct GWB_FILE GWB_FILE
Definition: file.h:18
uint32_t GWB_Project_GetFlags(const GWB_PROJECT *project)
Definition: project.c:173
void GWB_Project_free(GWB_PROJECT *project)
Definition: project.c:51
void GWB_Project_SetVersion(GWB_PROJECT *project, int vMajor, int vMinor, int vPatchlevel, int vBuild, const char *vTag)
Definition: project.c:96
void GWB_Project_AddExplicitBuild(GWB_PROJECT *project, GWB_BUILD_CMD *bcmd)
Definition: project.c:413
struct GWB_PROJECT GWB_PROJECT
Definition: project.h:14
GWB_BUILD_CMD_LIST * GWB_Project_GetExplicitBuildList(const GWB_PROJECT *project)
Definition: project.c:406
GWENBUILD * GWB_Project_GetGwbuild(const GWB_PROJECT *project)
Definition: project.c:70
GWB_FILE * GWB_Project_GetFileByPathAndName(const GWB_PROJECT *project, const char *folder, const char *fname)
Definition: project.c:212
GWB_TARGET * GWB_Project_GetTargetById(const GWB_PROJECT *project, const char *name)
Definition: project.c:248
void GWB_Project_AddBuilder(GWB_PROJECT *project, GWB_BUILDER *builder)
Definition: project.c:284
GWB_CONTEXT * GWB_Project_GetRootContext(const GWB_PROJECT *project)
Definition: project.c:226
void GWB_Project_SetFlags(GWB_PROJECT *project, uint32_t fl)
Definition: project.c:180
void GWB_Project_SetDefine(GWB_PROJECT *project, const char *name, const char *value)
Definition: project.c:298
const char * GWB_Project_GetGivenOption(const GWB_PROJECT *project, const char *name)
Definition: project.c:399
struct GWB_TARGET GWB_TARGET
Definition: target.h:17
void GWB_Project_toXml(const GWB_PROJECT *project, GWEN_XMLNODE *xmlNode)
Definition: project.c:420
void GWB_Project_SetGivenOptionList(GWB_PROJECT *project, GWB_KEYVALUEPAIR_LIST *kvpList)
Definition: project.c:381
int GWB_Project_GetSoVersionRevision(const GWB_PROJECT *project)
Definition: project.c:166
int GWB_Project_GetVersionPatchlevel(const GWB_PROJECT *project)
Definition: project.c:122
int GWB_Project_GetVersionMajor(const GWB_PROJECT *project)
Definition: project.c:108
void GWB_Project_AddFile(GWB_PROJECT *project, GWB_FILE *file)
Definition: project.c:219
GWB_KEYVALUEPAIR_LIST * GWB_Project_GetDefineList(const GWB_PROJECT *project)
Definition: project.c:291
void GWB_Project_SetGivenOption(GWB_PROJECT *project, const char *name, const char *value)
Definition: project.c:389
void GWB_Project_ClearDefineList(GWB_PROJECT *project)
Definition: project.c:331
GWB_KEYVALUEPAIR_LIST * GWB_Project_GetGivenOptionList(const GWB_PROJECT *project)
Definition: project.c:374
int GWB_Project_GetVersionBuild(const GWB_PROJECT *project)
Definition: project.c:129
const char * GWB_Project_GetVersionTag(const GWB_PROJECT *project)
Definition: project.c:136
struct GWB_BUILD_CMD GWB_BUILD_CMD
Definition: buildcmd.h:20
struct GWB_BUILDER GWB_BUILDER
Definition: builder.h:17
void GWB_Project_AddFlags(GWB_PROJECT *project, uint32_t fl)
Definition: project.c:187
const char * GWB_Project_GetProjectName(const GWB_PROJECT *project)
Definition: project.c:77
void GWB_Project_AddOption(GWB_PROJECT *project, GWB_OPTION *option)
Definition: project.c:348
int GWB_Project_GetVersionMinor(const GWB_PROJECT *project)
Definition: project.c:115
GWB_OPTION_LIST * GWB_Project_GetOptionList(const GWB_PROJECT *project)
Definition: project.c:341
int GWB_Project_GetSoVersionCurrent(const GWB_PROJECT *project)
Definition: project.c:152
struct GWENBUILD GWENBUILD
Definition: gwenbuild.h:15
void GWB_Project_DelFlags(GWB_PROJECT *project, uint32_t fl)
Definition: project.c:194
GWB_OPTION * GWB_Project_GetOptionById(const GWB_PROJECT *project, const char *optionId)
Definition: project.c:355
struct GWEN__XMLNODE GWEN_XMLNODE
Definition: xml.h:156
void GWB_Project_Dump(const GWB_PROJECT *project, int indent, int fullDump)
Definition: project.c:538
GWB_PROJECT * GWB_Project_new(GWENBUILD *gwbuild, GWB_CONTEXT *ctx)
Definition: project.c:30
GWB_FILE_LIST2 * GWB_Project_GetFileList(const GWB_PROJECT *project)
Definition: project.c:205
void GWB_Project_AddTarget(GWB_PROJECT *project, GWB_TARGET *target)
Definition: project.c:241