package "mspgl" { version "3.0"; description "Lightweight C++/OpenGL graphics engine"; require "mspcore"; require "mspdatafile"; require "mspmath"; require "mspgui"; require "sigc++-2.0"; feature "vulkan" "Use Vulkan instead of OpenGL as backend"; if_feature "vulkan" { require "vulkan"; }; if_feature "!vulkan" { if_arch "android" { require "opengles"; }; if_arch "!android" { require "opengl"; }; generate "GLEX" { in_suffix ".glext"; out_suffix ".cpp"; out_suffix ".h"; command "scripts/extgen.py"; if_arch "android" { argument "gles2"; }; }; }; generate "RES" { in_suffix ".glsl"; in_suffix ".samp"; in_suffix ".mesh"; in_suffix ".png"; out_suffix ".cpp"; command "mspdatatool"; arguments "-i" "-n" "Msp::GL"; out_argument "-o"; processing_unit DIRECTORY; }; library "mspgl" { source "source/core"; source "source/materials"; source "source/render"; source "source/effects"; source "source/animation"; source "source/resources"; source "source/glsl"; source "source/builders"; if_feature "vulkan" { source "source/backends/vulkan"; build_info { incpath "source/backends/vulkan"; }; }; if_feature "!vulkan" { source "source/backends/opengl"; build_info { incpath "source/backends/opengl"; }; }; source "extensions"; source "builtin_data"; source "shaderlib"; build_info { incpath "source"; incpath "source/core"; incpath "source/materials"; incpath "source/render"; incpath "source/effects"; incpath "source/animation"; incpath "source/resources"; incpath "source/builders"; standard CXX "c++11"; }; install true; install_map { map "source/core" "include/msp/gl"; map "source/materials" "include/msp/gl"; map "source/render" "include/msp/gl"; map "source/effects" "include/msp/gl"; map "source/animation" "include/msp/gl"; map "source/resources" "include/msp/gl"; map "source/glsl" "include/msp/gl/glsl"; map "source/builders" "include/msp/gl"; map "source/backends/opengl" "include/msp/gl"; map "source/backends/vulkan" "include/msp/gl"; map "extensions" "include/msp/gl/extensions"; }; }; program "viewer" { source "tools/viewer.cpp"; require "sigc++-2.0"; use "mspgl"; }; program "desertpillars" { source "demos/desertpillars/source"; require "sigc++-2.0"; use "mspgl"; build_info { standard CXX "c++14"; }; }; program "glslcompiler" { source "tools/glslcompiler.cpp"; use "mspgl"; }; source_tarball { source "License.txt"; source "Changelog.txt"; }; };