]> git.tdb.fi Git - libs/gui.git/blob - Build
Add a class for creating Vulkan graphics contexts
[libs/gui.git] / Build
1 package "mspgui"
2 {
3         version "1.1";
4         description "Base graphics and input library";
5
6         require "mspcore";
7         require "sigc++-2.0";
8         if_arch "!windows & !darwin & !android"
9         {
10                 require "xlib";
11         };
12         if_arch "windows"
13         {
14                 build_info
15                 {
16                         library "gdi32";
17                         library "xinput";
18                 };
19         };
20         if_arch "darwin"
21         {
22                 build_info
23                 {
24                         library "CoreFoundation.framework";
25                         library "AppKit.framework";
26                 };
27         };
28
29         feature "devil" "Include DevIL support for loading image files";
30         if_feature "devil"
31         {
32                 require "IL";
33         };
34
35         feature "libpng" "Include libpng support for loading PNG files"
36         {
37                 default "yes";
38         };
39         if_feature "libpng"
40         {
41                 require "libpng";
42         };
43
44         feature "libjpeg" "Include libjpeg support for loading JPEG files"
45         {
46                 default "yes";
47         };
48         if_feature "libjpeg"
49         {
50                 build_info
51                 {
52                         library "jpeg";
53                 };
54         };
55
56         if_arch "darwin"
57         {
58                 feature "quartz" "Include Quartz support for loading image files"
59                 {
60                         default "yes";
61                 };
62                 if_feature "quartz"
63                 {
64                         build_info
65                         {
66                                 library "ApplicationServices.framework";
67                         };
68                 };
69         };
70
71         feature "opengl" "Include support for OpenGL contexts"
72         {
73                 default "yes";
74         };
75         if_feature "opengl"
76         {
77                 if_arch "android"
78                 {
79                         require "opengles";
80                 };
81                 if_arch "!android"
82                 {
83                         require "opengl";
84                 };
85         };
86
87         feature "vulkan" "Include support for Vulkan contexts"
88         {
89                 default "no";
90         };
91         if_feature "vulkan"
92         {
93                 require "vulkan";
94         };
95
96         if_arch "!windows & !darwin & !android"
97         {
98                 feature "xrandr" "Include support for video mode switching with XRandR"
99                 {
100                         export true;
101                 };
102                 if_feature "xrandr"
103                 {
104                         require "xrandr";
105                 };
106         };
107
108         library "mspgui"
109         {
110                 source "source/graphics";
111                 source "source/input";
112                 if_feature "libpng"
113                 {
114                         source "source/graphics/png";
115                 };
116                 if_feature "libjpeg"
117                 {
118                         source "source/graphics/jpeg";
119                 };
120                 if_feature "devil"
121                 {
122                         source "source/graphics/devil";
123                 };
124                 if_arch "linux"
125                 {
126                         overlay "linux";
127                 };
128                 if_arch "windows"
129                 {
130                         overlay "windows";
131                         if_feature "opengl"
132                         {
133                                 overlay "wgl";
134                         };
135                 };
136                 if_arch "darwin"
137                 {
138                         if_feature "quartz"
139                         {
140                                 source "source/graphics/quartz";
141                         };
142                         overlay "cocoa";
143                         if_feature "opengl"
144                         {
145                                 overlay "cgl";
146                         };
147                         build_info
148                         {
149                                 standard CC "c99";
150                         };
151                 };
152                 if_arch "android"
153                 {
154                         overlay "android";
155                         if_feature "opengl"
156                         {
157                                 overlay "egl_android";
158                         };
159                 };
160                 if_arch "!windows & !darwin & !android"
161                 {
162                         overlay "x11";
163                         if_feature "opengl"
164                         {
165                                 overlay "glx";
166                         };
167                         if_feature "vulkan"
168                         {
169                                 overlay "vkxlib";
170                         };
171                 };
172                 overlay "generic";
173                 install true;
174                 install_map
175                 {
176                         map "source" "include/msp";
177                 };
178         };
179
180         program "ev"
181         {
182                 source "examples/ev.cpp";
183                 use "mspgui";
184         };
185
186         source_tarball
187         {
188                 source "License.txt";
189                 source "Changelog.txt";
190         };
191 };