cmEngine  0.1.1
A library for interpreting CMake code.
cmFunctionContext.h
1 #ifndef cmEngine_Include_cmEngine_cmFunctionContext_h
2 #define cmEngine_Include_cmEngine_cmFunctionContext_h
3 
4 #include <cmEngine/cmCacheType.h>
5 #include <cmEngine/cmPublic.h>
6 
7 #include <stddef.h>
8 
9 #ifdef __cplusplus
10 extern "C" {
11 #endif
12 
13 struct cmArgument;
14 struct cmFunctionContext;
15 struct cmMessage;
16 
23 CM_PUBLIC void
24 cmIssueMessage(struct cmFunctionContext* function_context, const struct cmMessage* message);
25 
26 #ifdef __GNUC__
27 # define cmIssue_ATTRIBUTES __attribute__((format(printf, 2, 3)))
28 #else
29 # define cmIssue_ATTRIBUTES
30 #endif
31 
38 CM_PUBLIC const char*
39 cmGetFunctionFilename(const struct cmFunctionContext* function_context);
40 
46 CM_PUBLIC size_t
47 cmGetFunctionLine(const struct cmFunctionContext* function_context);
48 
54 CM_PUBLIC size_t
55 cmGetFunctionColumn(const struct cmFunctionContext* function_context);
56 
63 CM_PUBLIC struct cmHost*
64 cmGetFunctionHost(struct cmFunctionContext* function_context);
65 
71 CM_PUBLIC void
72 cmIssueFatalError(struct cmFunctionContext* function_context, const char* fmt, ...) cmIssue_ATTRIBUTES;
73 
79 CM_PUBLIC void
80 cmIssueError(struct cmFunctionContext* function_context, const char* fmt, ...) cmIssue_ATTRIBUTES;
81 
87 CM_PUBLIC void
88 cmIssueWarning(struct cmFunctionContext* function_context, const char* fmt, ...) cmIssue_ATTRIBUTES;
89 
97 CM_PUBLIC const struct cmArgument*
98 cmPopFunctionArgument(struct cmFunctionContext* function_context);
99 
106 CM_PUBLIC const struct cmArgument*
107 cmPeekFunctionArgument(struct cmFunctionContext* function_context);
108 
114 CM_PUBLIC void
115 cmNextFunctionArgument(struct cmFunctionContext* function_context);
116 
123 CM_PUBLIC int
124 cmFunctionHasParentScope(const struct cmFunctionContext* function_context);
125 
130 #define CM_PARENT_SCOPE 1
131 
141 CM_PUBLIC int
142 cmDefineVariableFromFunction(struct cmFunctionContext* function_context,
143  const char* name,
144  const char* value,
145  int flags);
146 
156 CM_PUBLIC int
157 cmUndefineVariableFromFunction(struct cmFunctionContext* function_context,
158  const char* name,
159  int flags);
160 
165 {
167  const char* name;
169  const char* value;
171  const char* doc;
174 };
175 
182 CM_PUBLIC int
184  const struct cmCacheVariableDesc* desc);
185 
186 #ifdef __cplusplus
187 } /* extern "C" */
188 #endif
189 
190 #endif /* cmEngine_Include_cmEngine_cmFunctionContext_h */
Definition: cmArgument.c:12
CM_PUBLIC void cmIssueMessage(struct cmFunctionContext *function_context, const struct cmMessage *message)
Definition: cmFunctionContext.c:351
CM_PUBLIC int cmFunctionHasParentScope(const struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:426
CM_PUBLIC void cmNextFunctionArgument(struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:343
Definition: cmFunctionContext.h:164
CM_PUBLIC void cmIssueFatalError(struct cmFunctionContext *function_context, const char *fmt,...) cmIssue_ATTRIBUTES
Definition: cmFunctionContext.c:380
CM_PUBLIC void cmIssueWarning(struct cmFunctionContext *function_context, const char *fmt,...) cmIssue_ATTRIBUTES
Definition: cmFunctionContext.c:403
Definition: cmFunctionContext.c:32
const char * name
Definition: cmFunctionContext.h:167
CM_PUBLIC struct cmHost * cmGetFunctionHost(struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:526
CM_PUBLIC const struct cmArgument * cmPeekFunctionArgument(struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:333
enum cmCacheType type
Definition: cmFunctionContext.h:173
CM_PUBLIC void cmIssueError(struct cmFunctionContext *function_context, const char *fmt,...) cmIssue_ATTRIBUTES
Definition: cmFunctionContext.c:357
Definition: cmHost.h:23
CM_PUBLIC size_t cmGetFunctionColumn(const struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:282
cmCacheType
Definition: cmCacheType.h:16
Definition: cmMessageFunction.c:17
CM_PUBLIC const char * cmGetFunctionFilename(const struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:270
const char * value
Definition: cmFunctionContext.h:169
CM_PUBLIC const struct cmArgument * cmPopFunctionArgument(struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:323
const char * doc
Definition: cmFunctionContext.h:171
CM_PUBLIC int cmDefineVariableFromFunction(struct cmFunctionContext *function_context, const char *name, const char *value, int flags)
Definition: cmFunctionContext.c:432
CM_PUBLIC size_t cmGetFunctionLine(const struct cmFunctionContext *function_context)
Definition: cmFunctionContext.c:276
CM_PUBLIC int cmDefineCacheVariableFromFunction(struct cmFunctionContext *function_context, const struct cmCacheVariableDesc *desc)
Definition: cmFunctionContext.c:472
CM_PUBLIC int cmUndefineVariableFromFunction(struct cmFunctionContext *function_context, const char *name, int flags)
Definition: cmFunctionContext.c:512