package "mspgl"
{
- version "2.0";
+ version "3.0";
description "Lightweight C++/OpenGL graphics engine";
require "mspcore";
require "mspdatafile";
require "mspmath";
require "mspgui";
- require "opengl";
+ require "sigc++-2.0";
- library "mspgl"
+ feature "vulkan" "Use Vulkan instead of OpenGL as backend";
+ if_feature "vulkan"
{
- source "source";
- install true;
- install_map
- {
- map "source" "include/msp/gl";
- };
+ require "vulkan";
};
- program "mesh2c"
+ if_feature "!vulkan"
{
- source "tools/mesh2c.cpp";
- build_info
+ if_arch "android"
{
- library "mspgl";
+ require "opengles";
+ };
+ if_arch "!android"
+ {
+ require "opengl";
};
- };
- program "viewer"
- {
- source "tools/viewer.cpp";
- build_info
+ generate "GLEX"
{
- library "mspgl";
+ in_suffix ".glext";
+ out_suffix ".cpp";
+ out_suffix ".h";
+ command "scripts/extgen.py";
+ if_arch "android"
+ {
+ argument "gles2";
+ };
};
};
- program "shaders"
+ generate "RES"
{
- source "demos/shaders.cpp";
- build_info
- {
- library "mspgl";
- };
+ 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;
};
- program "texturing"
+ library "mspgl"
{
- source "demos/texturing.cpp";
+ 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
{
- library "mspgl";
+ 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 "cubemap"
+ program "viewer"
{
- source "demos/cubemap.cpp";
- build_info
- {
- library "mspgl";
- };
+ source "tools/viewer.cpp";
+ require "sigc++-2.0";
+ use "mspgl";
};
program "desertpillars"
{
- source "demos/desertpillars.cpp";
+ source "demos/desertpillars/source";
+ require "sigc++-2.0";
+ use "mspgl";
build_info
{
- library "mspgl";
+ standard CXX "c++14";
};
};
+ program "glslcompiler"
+ {
+ source "tools/glslcompiler.cpp";
+ use "mspgl";
+ };
+
source_tarball
{
source "License.txt";