| Index: icu46/source/tools/pkgdata/pkgtypes.h
|
| ===================================================================
|
| --- icu46/source/tools/pkgdata/pkgtypes.h (revision 0)
|
| +++ icu46/source/tools/pkgdata/pkgtypes.h (revision 0)
|
| @@ -0,0 +1,168 @@
|
| +/**************************************************************************
|
| +*
|
| +* Copyright (C) 2000-2009, International Business Machines
|
| +* Corporation and others. All Rights Reserved.
|
| +*
|
| +***************************************************************************
|
| +* file name: pkgdata.c
|
| +* encoding: ANSI X3.4 (1968)
|
| +* tab size: 8 (not used)
|
| +* indentation:4
|
| +*
|
| +* created on: 2000may16
|
| +* created by: Steven \u24C7 Loomis
|
| +*
|
| +* common types for pkgdata
|
| +*/
|
| +
|
| +#ifndef _PKGTYPES
|
| +#define _PKGTYPES
|
| +
|
| +/* headers */
|
| +#include "unicode/utypes.h"
|
| +#include "filestrm.h"
|
| +
|
| +/* linked list */
|
| +struct _CharList;
|
| +
|
| +typedef struct _CharList
|
| +{
|
| + const char *str;
|
| + struct _CharList *next;
|
| +} CharList;
|
| +
|
| +
|
| +
|
| +/*
|
| + * write CharList 'l' into stream 's' using deliminter 'delim' (delim can be NULL). quoted: -1 remove, 0 as is, 1 add quotes
|
| + */
|
| +const char *pkg_writeCharList(FileStream *s, CharList *l, const char *delim, int32_t quoted);
|
| +
|
| +/*
|
| + * Same, but use line breaks. quoted: -1 remove, 0 as is, 1 add quotes
|
| + */
|
| +const char *pkg_writeCharListWrap(FileStream *s, CharList *l, const char *delim, const char *brk, int32_t quoted);
|
| +
|
| +
|
| +/*
|
| + * Count items . 0 if null
|
| + */
|
| +uint32_t pkg_countCharList(CharList *l);
|
| +
|
| +/*
|
| + * Prepend string to CharList. Str is adopted!
|
| + */
|
| +CharList *pkg_prependToList(CharList *l, const char *str);
|
| +
|
| +/*
|
| + * append string to CharList. *end or even end can be null if you don't
|
| + * know it.[slow]
|
| + * Str is adopted!
|
| + */
|
| +CharList *pkg_appendToList(CharList *l, CharList** end, const char *str);
|
| +
|
| +/*
|
| + * strAlias is an alias to a full or relative path to a FILE. This function
|
| + * will search strAlias for the directory name (with strrchr). Then, it will
|
| + * determine if that directory is already in list l. If not, it will add it
|
| + * with strdup(strAlias).
|
| + * @param l list to append to , or NULL
|
| + * @param end end pointer-to-pointer. Can point to null, or be null.
|
| + * @param strAlias alias to full path string
|
| + * @return new list
|
| + */
|
| +CharList *pkg_appendUniqueDirToList(CharList *l, CharList** end, const char *strAlias);
|
| +
|
| +/*
|
| + * does list contain string? Returns: t/f
|
| + */
|
| +UBool pkg_listContains(CharList *l, const char *str);
|
| +
|
| +/*
|
| + * Delete list
|
| + */
|
| +void pkg_deleteList(CharList *l);
|
| +
|
| +/*
|
| + * Mode package function
|
| + */
|
| +struct UPKGOptions_;
|
| +typedef void (UPKGMODE)(struct UPKGOptions_ *, FileStream *s, UErrorCode *status);
|
| +
|
| +/*
|
| + * Static mode - write the readme file
|
| + * @param opt UPKGOptions
|
| + * @param libName Name of the .lib, etc file
|
| + * @param status ICU error code
|
| + */
|
| +void pkg_sttc_writeReadme(struct UPKGOptions_ *opt, const char *libName, UErrorCode *status);
|
| +
|
| +/*
|
| + * Options to be passed throughout the program
|
| + */
|
| +
|
| +typedef struct UPKGOptions_
|
| +{
|
| + CharList *fileListFiles; /* list of files containing files for inclusion in the package */
|
| + CharList *filePaths; /* All the files, with long paths */
|
| + CharList *files; /* All the files */
|
| + CharList *outFiles; /* output files [full paths] */
|
| +
|
| + const char *shortName; /* name of what we're building */
|
| + const char *cShortName; /* name of what we're building as a C identifier */
|
| + const char *entryName; /* special entrypoint name */
|
| + const char *targetDir; /* dir for packaged data to go */
|
| + const char *dataDir; /* parent of dir for package (default: tmpdir) */
|
| + const char *tmpDir;
|
| + const char *srcDir;
|
| + const char *options; /* Options arg */
|
| + const char *mode; /* Mode of building */
|
| + const char *version; /* Library version */
|
| + const char *comment; /* comment string */
|
| + const char *install; /* Where to install to (NULL = don't install) */
|
| + const char *icuroot; /* where does ICU lives */
|
| + const char *libName; /* name for library (default: shortName) */
|
| + UBool rebuild;
|
| + UBool verbose;
|
| + UBool quiet;
|
| +} UPKGOptions;
|
| +
|
| +char * convertToNativePathSeparators(char *path);
|
| +
|
| +
|
| +/* set up common defines for library naming */
|
| +
|
| +#ifdef U_WINDOWS
|
| +# ifndef UDATA_SO_SUFFIX
|
| +# define UDATA_SO_SUFFIX ".dll"
|
| +# endif
|
| +# define LIB_PREFIX ""
|
| +# define LIB_STATIC_PREFIX ""
|
| +# define OBJ_SUFFIX ".obj"
|
| +# define UDATA_LIB_SUFFIX ".lib"
|
| +
|
| +#elif defined(U_CYGWIN)
|
| +# define LIB_PREFIX "cyg"
|
| +# define LIB_STATIC_PREFIX "lib"
|
| +# define OBJ_SUFFIX ".o"
|
| +# define UDATA_LIB_SUFFIX ".a"
|
| +
|
| +#else /* POSIX? */
|
| +# define LIB_PREFIX "lib"
|
| +# define LIB_STATIC_PREFIX "lib"
|
| +# define OBJ_SUFFIX ".o"
|
| +# define UDATA_LIB_SUFFIX ".a"
|
| +#endif
|
| +
|
| +#define ASM_SUFFIX ".s"
|
| +
|
| +/* defines for common file names */
|
| +#define UDATA_CMN_PREFIX ""
|
| +#define UDATA_CMN_SUFFIX ".dat"
|
| +#define UDATA_CMN_INTERMEDIATE_SUFFIX "_dat"
|
| +
|
| +#define ICUDATA_RES_FILE "icudata.res"
|
| +
|
| +#define PKGDATA_DERIVED_PATH '\t'
|
| +
|
| +#endif
|
|
|
| Property changes on: icu46/source/tools/pkgdata/pkgtypes.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|