Sync with 5.4.0
[deliverable/titan.core.git] / compiler2 / xpather.h
1 ///////////////////////////////////////////////////////////////////////////////
2 // Copyright (c) 2000-2015 Ericsson Telecom AB
3 // All rights reserved. This program and the accompanying materials
4 // are made available under the terms of the Eclipse Public License v1.0
5 // which accompanies this distribution, and is available at
6 // http://www.eclipse.org/legal/epl-v10.html
7 ///////////////////////////////////////////////////////////////////////////////
8 #ifndef XPATHER_H_
9 #define XPATHER_H_
10
11 #include <stdio.h>
12
13 typedef int boolean;
14 #define TRUE 1
15 #define FALSE 0
16
17 enum tpd_result { TPD_FAILED = -1, TPD_SKIPPED = 0, TPD_SUCCESS = 1 };
18
19 struct string_list {
20 char* str;
21 struct string_list* next;
22 };
23
24 struct string2_list {
25 char* str1;
26 char* str2;
27 struct string2_list* next;
28 };
29
30 #ifdef __cplusplus
31 extern "C"
32 #endif
33 boolean isTopLevelExecutable(const char* projName);
34
35 #ifdef __cplusplus
36 extern "C"
37 #endif
38 boolean isDynamicLibrary(const char* key);
39
40 #ifdef __cplusplus
41 extern "C"
42 #endif
43 const char* findLibraryPath(const char* libraryName, const char* projName);
44
45 #ifdef __cplusplus
46 extern "C"
47 #endif
48 const char* findLibraryName(const char* libraryName, const char* projName);
49
50 #ifdef __cplusplus
51 extern "C"
52 #endif
53 void erase_libs();
54
55 #ifdef __cplusplus
56 extern "C"
57 #endif
58 const char* getLibFromProject(const char* projName);
59
60 #ifdef __cplusplus
61 extern "C"
62 #endif
63 struct string_list* getExternalLibs(const char* projName);
64
65 #ifdef __cplusplus
66 extern "C"
67 #endif
68 struct string_list* getExternalLibPaths(const char* projName);
69
70 #ifdef __cplusplus
71 extern "C"
72 #endif
73 struct string2_list* getLinkerLibs(const char* projName);
74
75 #ifdef __cplusplus
76 extern "C"
77 #endif
78 struct string_list* getRefWorkingDirs(const char* projName);
79
80 #ifdef __cplusplus
81 extern "C"
82 #endif
83 boolean hasExternalLibrary(const char* libName, const char* projName);
84
85 #ifdef __cplusplus
86 extern "C"
87 #endif
88 boolean hasSubProject(const char* projName);
89
90 #ifdef __cplusplus
91 extern "C"
92 #endif
93 void print_libs();
94
95 #ifdef __cplusplus
96 extern "C"
97 #endif
98 boolean isTtcn3ModuleInLibrary(const char* moduleName);
99
100 #ifdef __cplusplus
101 extern "C"
102 #endif
103 const char* getTPDFileName(const char* projName);
104
105 #ifdef __cplusplus
106 extern "C"
107 #endif
108 const char* getPathToRootDir(const char* projName);
109
110 #ifdef __cplusplus
111 extern "C"
112 #endif
113 boolean isAsn1ModuleInLibrary(const char* moduleName);
114
115 #ifdef __cplusplus
116 extern "C"
117 #endif
118 boolean isSourceFileInLibrary(const char* fileName);
119
120 #ifdef __cplusplus
121 extern "C"
122 #endif
123 boolean isHeaderFileInLibrary(const char* fileName);
124
125 #ifdef __cplusplus
126 extern "C"
127 #endif
128 boolean isTtcnPPFileInLibrary(const char* fileName);
129
130 #ifdef __cplusplus
131 extern "C"
132 #endif
133 boolean buildObjects(const char* projName, boolean add_referenced);
134
135
136 /**
137 *
138 * @param p_tpd_name filename
139 * @param actcfg actual configuration name
140 * @param file_list_path the argument of the -P switch
141 * @param argc pointer to argv
142 * @param argv pointer to argc
143 * @param optind pointer to optind
144 * @param ets_name from the -e switch
145 * @param gnu_make from the -g switch
146 * @param single_mode -s switch
147 * @param central_storage -c switch
148 * @param absolute_paths -a switch
149 * @param preprocess -p switch
150 * @param use_runtime_2 -R switch
151 * @param dynamic dynamic linking, -l switch
152 * @param makedepend -m switch
153 * @param filelist -P switch
154 * @param recursive -r switch
155 * @param force_overwrite -F switch
156 * @param output_file from the -o switch
157 * @param abs_work_dir workingDirectory element of TPD will be stored here, must be Free()'d
158 * @param sub_project_dirs directories of sub-projects that need to be built before this one,
159 if set to NULL when calling this function then it won't be set, otherwise it must be deallocated after the call
160 * @param program_name original value of argv[0], which is the executable path used to start this program
161 * @param prj_graph_fp write project graph xml data into this file if not NULL
162 * @create_symlink_list a list of symlinks to be created
163 * @param ttcn3_prep_includes TTCN3preprocessorIncludes
164 * @param ttcn3_prep_defines preprocessorDefines
165 * @param prep_includes preprocessorIncludes
166 * @param prep_defines preprocessorDefines
167 * @param codesplit codeSplitting
168 * @param quietly quietly
169 * @param disablesubtypecheck disableSubtypeChecking
170 * @param cxxcompiler CxxCompiler
171 * @param optlevel optimizationLevel
172 * @param optflags otherOptimizationFlags
173 * @param disableber disableBER -b
174 * @param disableraw disableRAW -r
175 * @param disabletext disableTEXT -x
176 * @param disablexer disableXER -X
177 * @param disablejson disableJSON -j
178 * @param forcexerinasn forceXERinASN.1 -a
179 * @param defaultasomit defaultasOmit -d
180 * @param gccmessageformat gccMessageFormat -g
181 * @param linenumber lineNumbersOnlyInMessages -i
182 * @param includesourceinfo includeSourceInfo -L
183 * @param addsourcelineinfo addSourceLineInfo -l
184 * @param suppresswarnings suppressWarnings -S
185 * @param outparamboundness outParamBoundness -Y
186 * @param omit_in_value_list omitInValueList -M
187 * @param solspeclibs SolarisSpecificLibraries
188 * @param sol8speclibs Solaris8SpecificLibraries
189 * @param linuxspeclibs LinuxSpecificLibraries
190 * @param freebsdspeclibs FreeBSDSpecificLibraries
191 * @param win32speclibs Win32SpecificLibraries
192 * @param ttcn3preprocessor ttcn3preprocessor
193 * @param linkerlibs linkerlibs
194 * @param linkerlibrarysearchpath linkerlibrarysearchpath
195 * @param Vflag -V switch
196 * @param Dflag -D switch
197 * @param generatorCommandOutput the output of the command that generates a Makefile snippet
198 * @param target_placement_list a list of (target,placement) strings pairs from the TPD
199 * @param prefix_workdir prefix working directory with project name
200 * @param run_command_list contains the working directories and the makefilegen commands to be called there
201 * @return TPD_SUCCESS if parsing successful, TPD_SKIPPED if the tpd
202 * was seen already, or TPD_FAILED on error.
203 */
204 #ifdef __cplusplus
205 extern "C"
206 #else
207 enum
208 #endif
209 tpd_result process_tpd(const char *p_tpd_name, const char *actcfg,
210 const char *file_list_path,
211 int *argc, char ***argv,
212 int *optind, char **ets_name, char **project_name,
213 boolean *gnu_make, boolean *single_mode,
214 boolean *central_storage, boolean *absolute_paths,
215 boolean *preprocess, boolean *use_runtime_2,
216 boolean *dynamic, boolean *makedepend, boolean *filelist,
217 boolean *library, boolean recursive, boolean force_overwrite, boolean gen_only_top_level,
218 const char *output_file, char** abs_work_dir, struct string_list* sub_project_dirs,
219 const char* program_name, FILE* prj_graph_fp, struct string2_list* create_symlink_list, struct string_list* ttcn3_prep_includes,
220 struct string_list* ttcn3_prep_defines, struct string_list* ttcn3_prep_undefines, struct string_list* prep_includes,
221 struct string_list* prep_defines, struct string_list* prep_undefines, boolean *codesplit, boolean *quietly, boolean *disablesubtypecheck,
222 char** cxxcompiler, char** optlevel, char** optflags, boolean *disableber, boolean *disableraw, boolean *disabletext, boolean *disablexer,
223 boolean *disablejson, boolean *forcexerinasn, boolean *defaultasomit, boolean *gccmessageformat,
224 boolean *linenumber, boolean *includesourceinfo, boolean *addsourcelineinfo, boolean *suppresswarnings,
225 boolean *outparamboundness, boolean *omit_in_value_list, struct string_list* solspeclibs, struct string_list* sol8speclibs,
226 struct string_list* linuxspeclibs, struct string_list* freebsdspeclibs, struct string_list* win32speclibs,
227 char** ttcn3preprocessor, struct string_list* linkerlibs, struct string_list* additionalObjects, struct string_list* linkerlibsearchpath, boolean Vflag, boolean Dflag,
228 boolean *Zflag, boolean *Hflag, char** generatorCommandOutput, struct string2_list* target_placement_list, boolean prefix_workdir, struct string2_list* run_command_list,
229 struct string2_list* required_configs, struct string_list** profiled_file_list);
230
231 #endif /* XPATHER_H_ */
This page took 0.11798 seconds and 6 git commands to generate.