]> 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 eb067af4dfd051da1e91723499a665ebe93319b9..2edee77c2b1bf74d72ad4eb5365593d33b125221 100644 (file)
--- a/Build
+++ b/Build
-/* $Id$ */
-
-package "mspgbase"
+package "mspgui"
 {
-       version "0.9";
+       version "2.0";
        description "Base graphics and input library";
 
-       tar_file "License.txt";
-
        require "mspcore";
-       require "mspstrings";
+       require "mspdatafile";
        require "sigc++-2.0";
-       if "arch!=win32"
+       if_arch "!windows & !darwin & !android"
        {
                require "xlib";
+       };
+       if_arch "windows"
+       {
                build_info
                {
-                       library "Xxf86vm";
+                       library "gdi32";
+                       library "user32";
+                       library "xinput";
                };
        };
-       if "arch=win32"
+       if_arch "darwin"
        {
                build_info
                {
-                       library "gdi32";
+                       library "CoreFoundation.framework";
+                       library "AppKit.framework";
                };
        };
 
        feature "devil" "Include DevIL support for loading image files";
-       if "with_devil"
+       if_feature "devil"
        {
-               require "devil";
+               require "IL";
        };
 
-       feature "opengl" "Include support for OpenGL contexts";
-       if "with_opengl"
+       feature "libpng" "Include libpng support for loading PNG files"
+       {
+               default "yes";
+       };
+       if_feature "libpng"
        {
-               require "opengl";
+               require "libpng";
        };
 
-       headers "gbase"
+       feature "libjpeg" "Include libjpeg support for loading JPEG files"
+       {
+               default "yes";
+       };
+       if_feature "libjpeg"
        {
-               source "source/gbase";
-               install_headers "msp/gbase";
+               build_info
+               {
+                       library "jpeg";
+               };
        };
 
-       headers "input"
+       if_arch "darwin"
        {
-               source "source/input";
-               install_headers "msp/input";
+               feature "quartz" "Include Quartz support for loading image files"
+               {
+                       default "yes";
+               };
+               if_feature "quartz"
+               {
+                       build_info
+                       {
+                               library "ApplicationServices.framework";
+                       };
+               };
        };
 
-       library "mspgbase"
+       feature "opengl" "Include support for OpenGL contexts"
        {
-               source "source/gbase";
+               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";
+               };
+       };
+
+       build_info
+       {
+               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_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";
        };
 };