]> git.tdb.fi Git - libs/gui.git/blobdiff - Build
Update .gitignore to include build products on Windows
[libs/gui.git] / Build
diff --git a/Build b/Build
index 612f9be5a84e998326dba0f9ba37dadde3938513..2edee77c2b1bf74d72ad4eb5365593d33b125221 100644 (file)
--- a/Build
+++ b/Build
-/* $Id$ */
-
-package "mspgbase"
+package "mspgui"
 {
-       description "Mikkosoft Productions graphics base library";
-       version "0.0";
+       version "2.0";
+       description "Base graphics and input library";
 
        require "mspcore";
+       require "mspdatafile";
        require "sigc++-2.0";
-       require "Xlib";
+       if_arch "!windows & !darwin & !android"
+       {
+               require "xlib";
+       };
+       if_arch "windows"
+       {
+               build_info
+               {
+                       library "gdi32";
+                       library "user32";
+                       library "xinput";
+               };
+       };
+       if_arch "darwin"
+       {
+               build_info
+               {
+                       library "CoreFoundation.framework";
+                       library "AppKit.framework";
+               };
+       };
+
+       feature "devil" "Include DevIL support for loading image files";
+       if_feature "devil"
+       {
+               require "IL";
+       };
+
+       feature "libpng" "Include libpng support for loading PNG files"
+       {
+               default "yes";
+       };
+       if_feature "libpng"
+       {
+               require "libpng";
+       };
+
+       feature "libjpeg" "Include libjpeg support for loading JPEG files"
+       {
+               default "yes";
+       };
+       if_feature "libjpeg"
+       {
+               build_info
+               {
+                       library "jpeg";
+               };
+       };
+
+       if_arch "darwin"
+       {
+               feature "quartz" "Include Quartz support for loading image files"
+               {
+                       default "yes";
+               };
+               if_feature "quartz"
+               {
+                       build_info
+                       {
+                               library "ApplicationServices.framework";
+                       };
+               };
+       };
+
+       feature "opengl" "Include support for OpenGL contexts"
+       {
+               default "yes";
+       };
+       if_feature "opengl"
+       {
+               if_arch "android"
+               {
+                       require "opengles";
+               };
+               if_arch "!android"
+               {
+                       require "opengl";
+               };
+       };
+
+       feature "vulkan" "Include support for Vulkan contexts"
+       {
+               default "no";
+       };
+       if_feature "vulkan"
+       {
+               require "vulkan";
+       };
+
+       if_arch "!windows & !darwin & !android"
+       {
+               feature "xrandr" "Include support for video mode switching with XRandR"
+               {
+                       default "yes";
+                       export true;
+               };
+               if_feature "xrandr"
+               {
+                       require "xrandr";
+               };
+       };
 
-       library "mspgbase"
+       build_info
        {
-               source "source";
+               standard CXX "c++11";
+       };
+
+       library "mspgui"
+       {
+               source "source/graphics";
+               source "source/input";
+               if_feature "libpng"
+               {
+                       source "source/graphics/png";
+               };
+               if_feature "libjpeg"
+               {
+                       source "source/graphics/jpeg";
+               };
+               if_feature "devil"
+               {
+                       source "source/graphics/devil";
+               };
+               if_arch "linux"
+               {
+                       overlay "linux";
+               };
+               if_arch "windows"
+               {
+                       overlay "windows";
+                       if_feature "opengl"
+                       {
+                               overlay "wgl";
+                       };
+               };
+               if_arch "darwin"
+               {
+                       if_feature "quartz"
+                       {
+                               source "source/graphics/quartz";
+                       };
+                       overlay "cocoa";
+                       if_feature "opengl"
+                       {
+                               overlay "cgl";
+                       };
+                       build_info
+                       {
+                               standard CC "c99";
+                       };
+               };
+               if_arch "android"
+               {
+                       overlay "android";
+                       if_feature "opengl"
+                       {
+                               overlay "egl_android";
+                       };
+               };
+               if_arch "!windows & !darwin & !android"
+               {
+                       overlay "x11";
+                       if_feature "opengl"
+                       {
+                               overlay "glx";
+                       };
+                       if_feature "vulkan"
+                       {
+                               overlay "vkxlib";
+                       };
+               };
+               overlay "generic";
                install true;
-               install_headers "msp/gbase";
+               install_map
+               {
+                       map "source" "include/msp";
+               };
+       };
+
+       program "ev"
+       {
+               source "examples/ev.cpp";
+               use "mspgui";
+       };
+
+       program "lsmodes"
+       {
+               source "examples/lsmodes.cpp";
+               use "mspgui";
+       };
+
+       source_tarball
+       {
+               source "License.txt";
+               source "Changelog.txt";
        };
 };