All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
platform.h
Go to the documentation of this file.
1 // File: platform.h
3 // Description: Place holder
4 // Author:
5 // Created:
6 //
7 // (C) Copyright 2006, Google Inc.
8 // Licensed under the Apache License, Version 2.0 (the "License");
9 // you may not use this file except in compliance with the License.
10 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
12 // Unless required by applicable law or agreed to in writing, software
13 // distributed under the License is distributed on an "AS IS" BASIS,
14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 // See the License for the specific language governing permissions and
16 // limitations under the License.
17 //
19 
20 #ifndef TESSERACT_CCUTIL_PLATFORM_H__
21 #define TESSERACT_CCUTIL_PLATFORM_H__
22 
23 #include <string.h>
24 
25 #define DLLSYM
26 #ifdef _WIN32
27 #ifdef __GNUC__
28 #define ultoa _ultoa
29 #endif /* __GNUC__ */
30 #define SIGNED
31 #if defined(_MSC_VER)
32 #define snprintf _snprintf
33 #if (_MSC_VER <= 1400)
34 #define vsnprintf _vsnprintf
35 #endif /* (_MSC_VER <= 1400) */
36 #endif /* defined(_MSC_VER) */
37 #else
38 #define __UNIX__
39 #include <limits.h>
40 #ifndef PATH_MAX
41 #define MAX_PATH 4096
42 #else
43 #define MAX_PATH PATH_MAX
44 #endif
45 #define SIGNED signed
46 #endif
47 
48 #ifdef _WIN32
49 #ifndef M_PI
50 #define M_PI 3.14159265358979323846
51 #endif
52 #endif
53 
54 #if defined(_WIN32) || defined(__CYGWIN__)
55  #if defined(TESS_EXPORTS)
56  #define TESS_API __declspec(dllexport)
57  #elif defined(TESS_IMPORTS)
58  #define TESS_API __declspec(dllimport)
59  #else
60  #define TESS_API
61  #endif
62  #define TESS_LOCAL
63 #else
64  #if __GNUC__ >= 4
65  #if defined(TESS_EXPORTS) || defined(TESS_IMPORTS)
66  #define TESS_API __attribute__ ((visibility ("default")))
67  #define TESS_LOCAL __attribute__ ((visibility ("hidden")))
68  #else
69  #define TESS_API
70  #define TESS_LOCAL
71  #endif
72  #else
73  #define TESS_API
74  #define TESS_LOCAL
75  #endif
76 #endif
77 
78 #if defined(_WIN32) || defined(__CYGWIN__)
79  #define _TESS_FILE_BASENAME_ \
80  (strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__)
81 #else // Unices
82  #define _TESS_FILE_BASENAME_ \
83  (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
84 #endif
85 
86 #endif // TESSERACT_CCUTIL_PLATFORM_H__