xmake.lua 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package("gte")
  2. set_homepage("https://github.com/davideberly/GeometricTools")
  3. set_description("A collection of source code for computing in the fields of mathematics, geometry, graphics, image analysis and physics.")
  4. set_license("BSL-1.0")
  5. add_urls("https://github.com/davideberly/GeometricTools.git")
  6. add_versions("2025.08.20", "1ed0582d307b8608eb1b741d067f657e09483a5e")
  7. add_includedirs("include", "include/GTE")
  8. add_links("gtmathematicsgpu", "gtapplications", "gtgraphics")
  9. if is_plat("linux") then
  10. add_deps("egl-headers", "libpng", "libx11")
  11. end
  12. if is_plat("linux") then
  13. add_syslinks("GL", "GLX", "EGL", "X11")
  14. else
  15. add_syslinks("d3d11", "d3dcompiler", "dxguid", "dxgi", "windowscodecs")
  16. add_syslinks("opengl32", "user32", "ole32", "oleaut32", "gdi32")
  17. end
  18. on_install("windows", "linux", "mingw@!macosx", "msys", function (package)
  19. os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua")
  20. -- GCC15 requirement
  21. io.replace("GTE/Applications/Environment.h", "#include <cstdarg>", "#include <cstdarg>\n#include <cstdint>", {plain = true})
  22. if not is_plat("windows", "linux") then
  23. -- MinGW cant behave as MSVC 2015+ and define MSC_VER
  24. io.replace("GTE/Graphics/GTGraphics.cpp", "#if defined(GTE_USE_MSWINDOWS)", "#if 0", {plain = true})
  25. io.replace("GTE/Applications/GTApplications.cpp", "#if defined(GTE_USE_MSWINDOWS)", "#if 0", {plain = true})
  26. io.replace("GTE/Graphics/GL46/GTGraphicsGL46.cpp", "#if defined(GTE_USE_MSWINDOWS)", "#if 0", {plain = true})
  27. io.replace("GTE/Graphics/DX11/GTGraphicsDX11.cpp", "#if defined(GTE_USE_MSWINDOWS)", "#if 0", {plain = true})
  28. io.replace("GTE/MathematicsGPU/GTMathematicsGPU.cpp", "#if defined(GTE_USE_MSWINDOWS)", "#if 0", {plain = true})
  29. -- Supply missing DX11 implementation for MinGW
  30. os.cp(path.join(package:scriptdir(), "port", "d3d11-effects-mingw-supplements.h"), "GTE/Graphics/DX11/d3d11-effects-mingw-supplements.h")
  31. io.replace("GTE/Graphics/DX11/DX11.h", [[#if !defined(NOMINMAX)]], [[#include "d3d11-effects-mingw-supplements.h"
  32. #if !defined(NOMINMAX)]], {plain = true})
  33. end
  34. import("package.tools.xmake").install(package)
  35. end)
  36. on_test(function (package)
  37. assert(package:check_cxxsnippets({test = [[
  38. #include <memory>
  39. #include <GTE/MathematicsGPU/GTMathematicsGPU.h>
  40. void test() {
  41. std::shared_ptr<gte::GraphicsEngine> engine;
  42. std::shared_ptr<gte::ProgramFactory> factory;
  43. gte::GPUFluid2 fluid(engine, factory, 128, 128, 0.016f, 0.001f, 0.001f);
  44. fluid.Initialize();
  45. }
  46. ]]}, {configs = {languages = "c++14"}}))
  47. end)