#ifndef __MCPU_CPP_INCLUDE_PATH_H__ #define __MCPU_CPP_INCLUDE_PATH_H__ 1 #include #include #include enum mcpu_include_class { MCPU_INCLUDE_USER_EXPLICIT = 0, MCPU_INCLUDE_SYSTEM_EXPLICIT, MCPU_INCLUDE_USER_CONFIG_LANGUAGE, MCPU_INCLUDE_USER_CONFIG, MCPU_INCLUDE_SYSTEM_CONFIG_LANGUAGE, MCPU_INCLUDE_SYSTEM_CONFIG, MCPU_INCLUDE_AFTER_EXPLICIT, MCPU_INCLUDE_AFTER_CONFIG }; typedef struct mcpu_include_dir mcpu_include_dir; struct mcpu_include_dir { char *path; enum mcpu_include_class class_type; enum mcpu_language language; int language_specific; mcpu_include_dir *next; }; typedef struct mcpu_include_paths mcpu_include_paths; struct mcpu_include_paths { mcpu_include_dir *first; mcpu_include_dir *last; int no_standard_includes; }; void mcpu_include_paths_init( mcpu_include_paths *paths ); void mcpu_include_paths_free( mcpu_include_paths *paths ); int mcpu_include_paths_add( mcpu_include_paths *paths, const char *path, enum mcpu_include_class class_type ); int mcpu_include_paths_add_language( mcpu_include_paths *paths, const char *path, enum mcpu_include_class class_type, enum mcpu_language language ); int mcpu_include_paths_add_list( mcpu_include_paths *paths, const char *list, enum mcpu_include_class class_type ); int mcpu_include_paths_from_config( mcpu_include_paths *paths, const mcpu_config *config ); int mcpu_include_paths_dump( const mcpu_include_paths *paths, FILE *stream ); char *mcpu_include_find( const mcpu_include_paths *paths, const char *source_filename, const char *include_filename, int quoted, enum mcpu_language language, int include_next, const mcpu_include_dir *after_dir, const mcpu_include_dir **found_dir ); #endif /* __MCPU_CPP_INCLUDE_PATH_H__ */