1 
2 //          Copyright 2019 - 2021 Michael D. Parker
3 // Distributed under the Boost Software License, Version 1.0.
4 //    (See accompanying file LICENSE_1_0.txt or copy at
5 //          http://www.boost.org/LICENSE_1_0.txt)
6 
7 module bindbc.freetype.config;
8 
9 enum FTSupport {
10     noLibrary,
11     badLibrary,
12     ft26    = 26,
13     ft27    = 27,
14     ft28    = 28,
15     ft29    = 29,
16     ft210   = 210,
17     ft211   = 211,
18 }
19 
20 version(BindBC_Static) version = BindFT_Static;
21 version(BindFT_Static) enum staticBinding = true;
22 else enum staticBinding = false;
23 
24 enum FREETYPE_MAJOR = 2;
25 
26 version(Posix) enum enableBZIP2 = true;
27 else version(FT_BZIP2) enum enableBZIP2 = true;
28 else enum enableBZIP2 = false;
29 
30 version(FT_27) {
31     enum FREETYPE_MINOR = 7;
32     enum FREETYPE_PATCH = 1;
33     enum ftSupport = FTSupport.ft27;
34 }
35 else version(FT_28) {
36     enum FREETYPE_MINOR = 8;
37     enum FREETYPE_PATCH = 1;
38     enum ftSupport = FTSupport.ft28;
39 }
40 else version(FT_29) {
41     enum FREETYPE_MINOR = 9;
42     enum FREETYPE_PATCH = 1;
43     enum ftSupport = FTSupport.ft29;
44 }
45 else version(FT_210) {
46     enum FREETYPE_MINOR = 10;
47     enum FREETYPE_PATCH = 4;
48     enum ftSupport = FTSupport.ft210;
49 }
50 else version(FT_211) {
51     enum FREETYPE_MINOR = 11;
52     enum FREETYPE_PATCH = 0;
53     enum ftSupport = FTSupport.ft211;
54 }
55 else { // default
56     enum FREETYPE_MINOR = 6;
57     enum FREETYPE_PATCH = 4;
58     enum ftSupport = FTSupport.ft26;
59 }
60 
61 // config/ftconfg.h
62 alias FT_Int16 = short;
63 alias FT_UInt16 = ushort;
64 alias FT_Int32 = int;
65 alias FT_UInt32 = uint;
66 alias FT_Fast = int;
67 alias FT_UFast = uint;
68 alias FT_Int64 = long;
69 alias FT_Uint64 = ulong;