📄 depslib.h
字号:
/*
* -= Copyright 2005 Tim Baker (treectrl@hotmail.com) =-
*
* This file is part of depslib.
*
* License is hereby granted to use this software and distribute it
* freely, as long as this copyright notice is retained and modifications
* are clearly marked.
*
* ALL WARRANTIES ARE HEREBY DISCLAIMED.
*/
#ifndef DEPSLIB_H
#define DEPSLIB_H
#include <time.h>
#ifdef __cplusplus
extern "C" {
#endif
/* This structure is returned by depsGetStats() */
struct depsStats
{
int scanned; /* the number of files scanned for #include */
int cache_used; /* This many files were not scanned for #include because
up-to-date entries in the cache were found */
int cache_updated; /* This many files had entries in the cache updated */
};
typedef struct _depsRef *depsRef;
/*
* -- depsStart --
* Call this once before the build begins. There must be a matching call
* to depsDone(). depsStart() may be called multiple times as long as
* depsDone() is called before the next call to depsStart().
*/
extern void depsStart(void);
/*
* -- depsSetCWD --
* Call this to specify the current working directory against which the 'path'
* arguments to depsAddSearchDir() and depsScanForHeaders() are considered
* relative to. depslib uses 'cwd' to convert relative paths to absolute paths.
*
* arg cwd (in) -> the absolute pathname of a directory.
*/
extern void depsSetCWD(const char *cwd);
/*
* -- depsCacheRead() --
* Call this to read a header cache file.
*
* arg path (in) -> the path of a header cache file
*/
extern void depsCacheRead(const char *path);
/*
* -- depsCacheWrite() --
* Call this to write a header cache file.
*
* arg path (in) -> the path of a header cache file
*/
extern void depsCacheWrite(const char *path);
/*
* -- depsSearchStart --
* Call this after depsStart() to initialize the list of search dirs.
*/
extern void depsSearchStart(void);
/*
* -- depsAddSearchDir --
* Call this repeatedly after depsSearchStart() to append a directory to
* the list of directories to look for header files in.
*
* arg path (in) -> the relative (or absolute) directory path
*/
extern void depsAddSearchDir(const char *path);
/*
* -- depsScanForHeaders --
* Call this repeatedly after depsSearchStart() to recursively scan a file for
* #include statements. For #include <foo.h> only the directories provided by
* previous calls to depsAddSearchDir() will be searched. For #include "foo.h"
* the directory of the file argument to this routine will be searched first
* followed by the current list of search directories.
*
* arg path (in) -> the relative (or absolute) file path
* result -> an opaque pointer to information about the given file, or NULL
* if the file was not found
*/
extern depsRef depsScanForHeaders(const char *path);
/*
* -- depsGetNewest --
* Call this to get the absolute path and file modification time of the file
* that has the most-recent file modification time. This could be the same
* file passed to depsScanForHeaders() or one of its descendent header files.
*
* arg ref (in) -> the result of depsScanForHeaders()
* arg time (out) -> the file modification time of the most-recent file
* result -> the absolute path of the most-recent file. On Windows this will
* be all lower-case.
*/
extern const char *depsGetNewest(depsRef ref, time_t *time);
/*
* -- depsTimeStamp --
* Return the timestamp for a file.
*
* arg path (in) -> the relative (or absolute) file path
* arg time (out) -> the file modification time or zero if not found
*/
extern void depsTimeStamp(const char *path, time_t *time);
/*
* -- depsGetStats --
* Returns statistics about the operation of depslib.
*
* arg stats (out) -> pointer to stats info
*/
extern void depsGetStats(struct depsStats *stats);
/*
* -- depsDone --
* Call this after depsStart() to free all the memory allocated by depslib.
* After calling this routine, depsStart() may be called again.
*/
extern void depsDone(void);
#define DEPS_ERROR_ALREADY_INIT 1
#define DEPS_ERROR_NOT_INIT 2
#define DEPS_ERROR_NOT_SEARCH 3
/*
* -- depsError --
* Return error code from last call.
*/
extern int depsError(void);
#ifdef __cplusplus
}
#endif
#endif /* DEPSLIB_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -