-
BenceJanosSzabo authored
Change-Id: I1e1eec1986e6d2d45788184fcb438c6bc9d87725 Signed-off-by:
BenceJanosSzabo <bence.janos.szabo@ericsson.com>
BenceJanosSzabo authoredChange-Id: I1e1eec1986e6d2d45788184fcb438c6bc9d87725 Signed-off-by:
BenceJanosSzabo <bence.janos.szabo@ericsson.com>
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
xpather.h 10.03 KiB
/******************************************************************************
* Copyright (c) 2000-2017 Ericsson Telecom AB
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Baji, Laszlo
* Balasko, Jeno
* Baranyi, Botond
* Beres, Szabolcs
* Delic, Adam
* Kovacs, Ferenc
* Raduly, Csaba
* Szabo, Bence Janos
* Pandi, Krisztian
*
******************************************************************************/
#ifndef XPATHER_H_
#define XPATHER_H_
#include <stdio.h>
typedef int boolean;
#define TRUE 1
#define FALSE 0
enum tpd_result { TPD_FAILED = -1, TPD_SKIPPED = 0, TPD_SUCCESS = 1 };
struct string_list {
char* str;
struct string_list* next;
};
struct string2_list {
char* str1;
char* str2;
struct string2_list* next;
};
// This contains a project's configuration and the
// data that are important for determining the required configurations.
struct config_struct {
char* project_name; // Name of the project
char* project_conf; // Configuration of the project
boolean is_active; // True if this configuration is an active configuration
struct string_list* dependencies; // Projects that references this project
struct string2_list* requirements; // Configuration requirements (Project, Config)
struct string_list* children; // Projects that are being referenced by this project
boolean processed; // True if this project is already processed.
struct config_struct* next; // Pointer to the next element
};
// This contains a Project with it's configuration and the
// flag to determine if this configuration is the active one.
struct config_list {
char* str1; // Project name
char* str2; // Configuration
boolean is_active; // Is active configuration?
struct config_list* next; // Pointer to the next element
};
#ifdef __cplusplus
extern "C"
#endif
boolean isTopLevelExecutable(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
boolean isDynamicLibrary(const char* key);
#ifdef __cplusplus
extern "C"
#endif
const char* findLibraryPath(const char* libraryName, const char* projName);
#ifdef __cplusplus
extern "C"
#endif
const char* findLibraryName(const char* libraryName, const char* projName);
#ifdef __cplusplus
extern "C"
#endif
void erase_libs(void);
#ifdef __cplusplus
extern "C"
#endif
const char* getLibFromProject(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
struct string_list* getExternalLibs(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
struct string_list* getExternalLibPaths(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
struct string2_list* getLinkerLibs(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
struct string_list* getRefWorkingDirs(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
boolean hasExternalLibrary(const char* libName, const char* projName);
#ifdef __cplusplus
extern "C"
#endif
boolean hasSubProject(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
void print_libs(void);
#ifdef __cplusplus
extern "C"
#endif
boolean isTtcn3ModuleInLibrary(const char* moduleName);
#ifdef __cplusplus
extern "C"
#endif
const char* getTPDFileName(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
const char* getPathToRootDir(const char* projName);
#ifdef __cplusplus
extern "C"
#endif
boolean isAsn1ModuleInLibrary(const char* moduleName);
#ifdef __cplusplus
extern "C"
#endif
boolean isSourceFileInLibrary(const char* fileName);
#ifdef __cplusplus
extern "C"
#endif
boolean isHeaderFileInLibrary(const char* fileName);
#ifdef __cplusplus
extern "C"
#endif
boolean isTtcnPPFileInLibrary(const char* fileName);
#ifdef __cplusplus
extern "C"
#endif
boolean isXSDModuleInLibrary(const char* fileName);
#ifdef __cplusplus
extern "C"
#endif
boolean buildObjects(const char* projName, boolean add_referenced);
#ifdef __cplusplus
extern "C"
#endif
void free_string_list(struct string_list* act_elem);
#ifdef __cplusplus
extern "C"
#endif
void free_string2_list(struct string2_list* act_elem);
#ifdef __cplusplus
extern "C"
#endif
int is_xsd_module(const char *file_name, char **module_name);
#ifdef __cplusplus
extern "C"
#endif
const char *get_suffix(const char *file_name);
/**
*
* @param p_tpd_name filename
* @param actcfg actual configuration name
* @param file_list_path the argument of the -P switch
* @param argc pointer to argv
* @param argv pointer to argc
* @param optind pointer to optind
* @param ets_name from the -e switch
* @param gnu_make from the -g switch
* @param single_mode -s switch
* @param central_storage -c switch
* @param absolute_paths -a switch
* @param preprocess -p switch
* @param use_runtime_2 -R switch
* @param dynamic dynamic linking, -l switch
* @param makedepend -m switch
* @param filelist -P switch
* @param recursive -r switch
* @param force_overwrite -F switch
* @param output_file from the -o switch
* @param abs_work_dir workingDirectory element of TPD will be stored here, must be Free()'d
* @param sub_project_dirs directories of sub-projects that need to be built before this one,
if set to NULL when calling this function then it won't be set, otherwise it must be deallocated after the call
* @param program_name original value of argv[0], which is the executable path used to start this program
* @param prj_graph_fp write project graph xml data into this file if not NULL
* @create_symlink_list a list of symlinks to be created
* @param ttcn3_prep_includes TTCN3preprocessorIncludes
* @param ttcn3_prep_defines preprocessorDefines
* @param prep_includes preprocessorIncludes
* @param prep_defines preprocessorDefines
* @param codesplit codeSplitting
* @param quietly quietly
* @param disablesubtypecheck disableSubtypeChecking
* @param cxxcompiler CxxCompiler
* @param optlevel optimizationLevel
* @param optflags otherOptimizationFlags
* @param disableber disableBER -b
* @param disableraw disableRAW -r
* @param disabletext disableTEXT -x
* @param disablexer disableXER -X
* @param disablejson disableJSON -j
* @param forcexerinasn forceXERinASN.1 -a
* @param defaultasomit defaultasOmit -d
* @param gccmessageformat gccMessageFormat -g
* @param linenumber lineNumbersOnlyInMessages -i
* @param includesourceinfo includeSourceInfo -L
* @param addsourcelineinfo addSourceLineInfo -l
* @param suppresswarnings suppressWarnings -S
* @param outparamboundness outParamBoundness -Y
* @param omit_in_value_list omitInValueList -M
* @param warnings_for_bad_variants warningsForBadVariants -E
* @param activate_debugger activateDebugger -n
* @param disable_predef_exp_folder disablePredefinedExternalFolder
* @param solspeclibs SolarisSpecificLibraries
* @param sol8speclibs Solaris8SpecificLibraries
* @param linuxspeclibs LinuxSpecificLibraries
* @param freebsdspeclibs FreeBSDSpecificLibraries
* @param win32speclibs Win32SpecificLibraries
* @param ttcn3preprocessor ttcn3preprocessor
* @param linkerlibs linkerlibs
* @param linkerlibrarysearchpath linkerlibrarysearchpath
* @param Vflag -V switch
* @param Dflag -D switch
* @param generatorCommandOutput the output of the command that generates a Makefile snippet
* @param target_placement_list a list of (target,placement) strings pairs from the TPD
* @param prefix_workdir prefix working directory with project name
* @param run_command_list contains the working directories and the makefilegen commands to be called there
* @param search_paths contains the paths that can be tried if a file is not found
* @param n_search_paths contains the size of relative_prefixes
* @param makefileScript contains the script that can modify the makefile
* @return TPD_SUCCESS if parsing successful, TPD_SKIPPED if the tpd
* was seen already, or TPD_FAILED on error.
*/
#ifdef __cplusplus
extern "C"
#else
enum
#endif
tpd_result process_tpd(const char **p_tpd_name, const char *actcfg,
const char *file_list_path,
int *argc, char ***argv, boolean* p_free_argv,
int *optind, char **ets_name, char **project_name,
boolean *gnu_make, boolean *single_mode,
boolean *central_storage, boolean *absolute_paths,
boolean *preprocess, boolean *use_runtime_2,
boolean *dynamic, boolean *makedepend, boolean *filelist,
boolean *library, boolean recursive, boolean force_overwrite, boolean gen_only_top_level,
const char *output_file, char** abs_work_dir, struct string_list* sub_project_dirs,
const char* program_name, FILE* prj_graph_fp, struct string2_list* create_symlink_list, struct string_list* ttcn3_prep_includes,
struct string_list* ttcn3_prep_defines, struct string_list* ttcn3_prep_undefines, struct string_list* prep_includes,
struct string_list* prep_defines, struct string_list* prep_undefines, char **codesplit, boolean *quietly, boolean *disablesubtypecheck,
char** cxxcompiler, char** optlevel, char** optflags, boolean *disableber, boolean *disableraw, boolean *disabletext, boolean *disablexer,
boolean *disablejson, boolean *forcexerinasn, boolean *defaultasomit, boolean *gccmessageformat,
boolean *linenumber, boolean *includesourceinfo, boolean *addsourcelineinfo, boolean *suppresswarnings,
boolean *outparamboundness, boolean *omit_in_value_list, boolean *warnings_for_bad_variants, boolean *activate_debugger, boolean* ignore_untagged_union,
boolean *disable_predef_exp_folder, boolean* enable_legacy_encoding, struct string_list* solspeclibs, struct string_list* sol8speclibs,
struct string_list* linuxspeclibs, struct string_list* freebsdspeclibs, struct string_list* win32speclibs,
char** ttcn3preprocessor, struct string_list* linkerlibs, struct string_list* additionalObjects, struct string_list* linkerlibsearchpath, boolean Vflag, boolean Dflag,
boolean *Zflag, boolean *Hflag, char** generatorCommandOutput, struct string2_list* target_placement_list, boolean prefix_workdir, struct string2_list* run_command_list,
struct string2_list* required_configs, struct string_list** profiled_file_list, const char **search_paths, size_t n_search_paths, char** makefileScript);
#endif /* XPATHER_H_ */