You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.5 KiB
107 lines
2.5 KiB
// © 2016 and later: Unicode, Inc. and others.
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
|
/******************************************************************************
|
|
* Copyright (C) 2008-2011, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
*******************************************************************************
|
|
*/
|
|
|
|
#ifndef __PKG_GENC_H__
|
|
#define __PKG_GENC_H__
|
|
|
|
#include "unicode/utypes.h"
|
|
#include "toolutil.h"
|
|
|
|
#include "unicode/putil.h"
|
|
#include "putilimp.h"
|
|
|
|
/*** Platform #defines move here ***/
|
|
#if U_PLATFORM_HAS_WIN32_API
|
|
#ifdef __GNUC__
|
|
#define WINDOWS_WITH_GNUC
|
|
#else
|
|
#define WINDOWS_WITH_MSVC
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#if !defined(WINDOWS_WITH_MSVC)
|
|
#define BUILD_DATA_WITHOUT_ASSEMBLY
|
|
#endif
|
|
|
|
#ifndef U_DISABLE_OBJ_CODE /* testing */
|
|
#if defined(WINDOWS_WITH_MSVC) || U_PLATFORM_IS_LINUX_BASED
|
|
#define CAN_WRITE_OBJ_CODE
|
|
#endif
|
|
#if U_PLATFORM_HAS_WIN32_API || defined(U_ELF)
|
|
#define CAN_GENERATE_OBJECTS
|
|
#endif
|
|
#endif
|
|
|
|
#if U_PLATFORM == U_PF_CYGWIN || defined(CYGWINMSVC)
|
|
#define USING_CYGWIN
|
|
#endif
|
|
|
|
/*
|
|
* When building the data library without assembly,
|
|
* some platforms use a single c code file for all of
|
|
* the data to generate the final data library. This can
|
|
* increase the performance of the pkdata tool.
|
|
*/
|
|
#if U_PLATFORM == U_PF_OS400
|
|
#define USE_SINGLE_CCODE_FILE
|
|
#endif
|
|
|
|
/* Need to fix the file seperator character when using MinGW. */
|
|
#if defined(WINDOWS_WITH_GNUC) || defined(USING_CYGWIN)
|
|
#define PKGDATA_FILE_SEP_STRING "/"
|
|
#else
|
|
#define PKGDATA_FILE_SEP_STRING U_FILE_SEP_STRING
|
|
#endif
|
|
|
|
#define LARGE_BUFFER_MAX_SIZE 2048
|
|
#define SMALL_BUFFER_MAX_SIZE 512
|
|
#define SMALL_BUFFER_FLAG_NAMES 32
|
|
#define BUFFER_PADDING_SIZE 20
|
|
|
|
/** End platform defines **/
|
|
|
|
|
|
|
|
U_CAPI void U_EXPORT2
|
|
printAssemblyHeadersToStdErr(void);
|
|
|
|
U_CAPI UBool U_EXPORT2
|
|
checkAssemblyHeaderName(const char* optAssembly);
|
|
|
|
U_CAPI void U_EXPORT2
|
|
writeCCode(
|
|
const char *filename,
|
|
const char *destdir,
|
|
const char *optName,
|
|
const char *optFilename,
|
|
char *outFilePath,
|
|
size_t outFilePathCapacity);
|
|
|
|
U_CAPI void U_EXPORT2
|
|
writeAssemblyCode(
|
|
const char *filename,
|
|
const char *destdir,
|
|
const char *optEntryPoint,
|
|
const char *optFilename,
|
|
char *outFilePath,
|
|
size_t outFilePathCapacity);
|
|
|
|
U_CAPI void U_EXPORT2
|
|
writeObjectCode(
|
|
const char *filename,
|
|
const char *destdir,
|
|
const char *optEntryPoint,
|
|
const char *optMatchArch,
|
|
const char *optFilename,
|
|
char *outFilePath,
|
|
size_t outFilePathCapacity,
|
|
UBool optWinDllExport);
|
|
|
|
#endif
|