tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

pkg_genc.h (2660B)


      1 // © 2016 and later: Unicode, Inc. and others.
      2 // License & terms of use: http://www.unicode.org/copyright.html
      3 /******************************************************************************
      4 *   Copyright (C) 2008-2011, International Business Machines
      5 *   Corporation and others.  All Rights Reserved.
      6 *******************************************************************************
      7 */
      8 
      9 #ifndef __PKG_GENC_H__
     10 #define __PKG_GENC_H__
     11 
     12 #include "unicode/utypes.h"
     13 #include "toolutil.h"
     14 
     15 #include "unicode/putil.h"
     16 #include "putilimp.h"
     17 
     18 /*** Platform #defines move here ***/
     19 #if U_PLATFORM_HAS_WIN32_API
     20 #ifdef __GNUC__
     21 #define WINDOWS_WITH_GNUC
     22 #else
     23 #define WINDOWS_WITH_MSVC
     24 #endif
     25 #endif
     26 
     27 
     28 #if !defined(WINDOWS_WITH_MSVC)
     29 #define BUILD_DATA_WITHOUT_ASSEMBLY
     30 #endif
     31 
     32 #ifndef U_DISABLE_OBJ_CODE /* testing */
     33 #if defined(WINDOWS_WITH_MSVC) || U_PLATFORM_IS_LINUX_BASED
     34 #define CAN_WRITE_OBJ_CODE
     35 #endif
     36 #if U_PLATFORM_HAS_WIN32_API || defined(U_ELF)
     37 #define CAN_GENERATE_OBJECTS
     38 #endif
     39 #endif
     40 
     41 #if U_PLATFORM == U_PF_CYGWIN || defined(CYGWINMSVC)
     42 #define USING_CYGWIN
     43 #endif
     44 
     45 /*
     46 * When building the data library without assembly,
     47 * some platforms use a single c code file for all of
     48 * the data to generate the final data library. This can
     49 * increase the performance of the pkdata tool.
     50 */
     51 #if U_PLATFORM == U_PF_OS400
     52 #define USE_SINGLE_CCODE_FILE
     53 #endif
     54 
     55 /* Need to fix the file seperator character when using MinGW. */
     56 #if defined(WINDOWS_WITH_GNUC) || defined(USING_CYGWIN)
     57 #define PKGDATA_FILE_SEP_STRING "/"
     58 #else
     59 #define PKGDATA_FILE_SEP_STRING U_FILE_SEP_STRING
     60 #endif
     61 
     62 #define LARGE_BUFFER_MAX_SIZE 16384
     63 #define SMALL_BUFFER_MAX_SIZE 4096
     64 #define BUFFER_PADDING_SIZE 20
     65 
     66 /** End platform defines **/
     67 
     68 
     69 
     70 U_CAPI void U_EXPORT2
     71 printAssemblyHeadersToStdErr(void);
     72 
     73 U_CAPI UBool U_EXPORT2
     74 checkAssemblyHeaderName(const char* optAssembly);
     75 
     76 U_CAPI UBool U_EXPORT2
     77 checkCpuArchitecture(const char* optCpuArch);
     78 
     79 U_CAPI void U_EXPORT2
     80 writeCCode(
     81    const char *filename,
     82    const char *destdir,
     83    const char *optEntryPoint,
     84    const char *optName,
     85    const char *optFilename,
     86    char *outFilePath,
     87    size_t outFilePathCapacity);
     88 
     89 U_CAPI void U_EXPORT2
     90 writeAssemblyCode(
     91    const char *filename,
     92    const char *destdir,
     93    const char *optEntryPoint,
     94    const char *optFilename,
     95    char *outFilePath,
     96    size_t outFilePathCapacity);
     97 
     98 U_CAPI void U_EXPORT2
     99 writeObjectCode(
    100    const char *filename,
    101    const char *destdir,
    102    const char *optEntryPoint,
    103    const char *optMatchArch,
    104    const char *optCpuArch,
    105    const char *optFilename,
    106    char *outFilePath,
    107    size_t outFilePathCapacity,
    108    UBool optWinDllExport);
    109 
    110 #endif