+ 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";
+ };
+ };