xmake.lua 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package("magnum-plugins")
  2. set_homepage("https://magnum.graphics/")
  3. set_description("Plugins for magnum, C++11/C++14 graphics middleware for games and data visualization.")
  4. set_license("MIT")
  5. add_urls("https://github.com/mosra/magnum-plugins/archive/refs/tags/$(version).zip",
  6. "https://github.com/mosra/magnum-plugins.git")
  7. add_versions("v2020.06", "8e1e98674ef3f0276f68abbdfecef1d72ae95b5a812b78c1ff45dba10fc72e3f")
  8. add_configs("plugin_static", {description = "Build plugins as static libraries.", default = false, type = "boolean"})
  9. add_configs("openddl", {description = "Build the OpenDdl library.", default = false, type = "boolean"})
  10. local plugins = {"assimpimporter", "basisimageconverter", "basisimporter", "ddsimporter", "devilimageimporter", "drflacaudioimporter", "drmp3audioimporter", "drwavimporter", "faad2audioimporter", "freetypefont", "glslangshaderconverter", "harfbuzzfont", "icoimporter", "jpegimageconverter", "jpegimporter", "meshoptimizersceneconverter", "miniexrimageconverter", "openexrimageconverter", "openexrimporter", "opengeximporter", "pngimageconverter", "pngimporter", "primitiveimporter", "spirvtoolsshaderconverter", "stanfordimporter", "stanfordsceneconverter", "stbdxtimageconverter", "stbimageconverter", "stbimageimporter", "stbtruetypefont", "stbvorbisaudioimporter", "tinygltfimporter"}
  11. for _, plugin in ipairs(plugins) do
  12. add_configs(plugin, {description = "Build the " .. plugin .. " plugin.", default = false, type = "boolean"})
  13. end
  14. add_deps("cmake", "magnum")
  15. on_load("windows", "linux", "macosx", function (package)
  16. local configdeps = {assimpimporter = "assimp",
  17. devilimageimporter = "devil",
  18. faad2audioimporter = "faad2",
  19. freetypefont = "freetype",
  20. glslangshaderconverter = "vulkansdk",
  21. harfbuzzfont = "harfbuzz",
  22. jpegimporter = "libjpeg-turbo",
  23. openexrimageconverter = "openexr",
  24. openexrimporter = "openexr",
  25. pngimageconverter = "libpng",
  26. pngimporter = "libpng",
  27. spirvtoolsshaderconverter = "vulkansdk"}
  28. for config, dep in pairs(configdeps) do
  29. if package:config(config) then
  30. package:add("deps", dep)
  31. end
  32. end
  33. end)
  34. on_install("windows", "linux", "macosx", function (package)
  35. local configs = {"-DBUILD_TESTS=OFF", "-DLIB_SUFFIX="}
  36. table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
  37. table.insert(configs, "-DBUILD_STATIC=" .. (package:config("shared") and "OFF" or "ON"))
  38. table.insert(configs, "-DBUILD_PLUGIN_STATIC=" .. (package:config("plugin_static") and "ON" or "OFF"))
  39. table.insert(configs, "-DWITH_OPENDDL=" .. (package:config("openddl") and "ON" or "OFF"))
  40. for _, plugin in ipairs(plugins) do
  41. table.insert(configs, "-DWITH_" .. plugin:upper() .. "=" .. (package:config(plugin) and "ON" or "OFF"))
  42. end
  43. import("package.tools.cmake").install(package, configs)
  44. end)
  45. on_test(function (package)
  46. assert(package:check_cxxsnippets({test = [[
  47. void test() {
  48. auto year = MAGNUMPLUGINS_VERSION_YEAR;
  49. auto month = MAGNUMPLUGINS_VERSION_MONTH;
  50. }
  51. ]]}, {configs = {languages = "c++14"}, includes = "Magnum/versionPlugins.h"}))
  52. end)