2
0

xmake.lua 1.7 KB

123456789101112131415161718192021222324252627282930313233343536
  1. package("openmesh")
  2. set_homepage("https://www.graphics.rwth-aachen.de/software/openmesh/")
  3. set_description("OpenMesh is a generic and efficient data structure for representing and manipulating polygonal meshes.")
  4. set_license("BSD-3-Clause")
  5. add_urls("https://www.graphics.rwth-aachen.de/media/openmesh_static/Releases/$(version)/OpenMesh-$(version).tar.gz")
  6. add_versions("8.1", "0953777f483d47ea9fa00c329838443a7a09dde8be77bf7de188001cb9e768a7")
  7. add_versions("9.0", "b9574c921482798ce75a8bf578345a84b928ca26ee759219d21b310e2db9d006")
  8. add_deps("cmake")
  9. if is_plat("windows") then
  10. add_defines("_USE_MATH_DEFINES")
  11. end
  12. on_install("windows", "macosx", "linux", function (package)
  13. io.replace("CMakeLists.txt", "add_subdirectory (src/Unittests)", "", {plain = true})
  14. local configs = {"-DOPENMESH_DOCS=OFF", "-DBUILD_APPS=OFF"}
  15. table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
  16. table.insert(configs, "-DOPENMESH_BUILD_SHARED=" .. (package:config("shared") and "ON" or "OFF"))
  17. import("package.tools.cmake").install(package, configs)
  18. if package:is_plat("windows") and package:config("shared") then
  19. os.trymv(package:installdir("*.dll"), package:installdir("bin"))
  20. end
  21. end)
  22. on_test(function (package)
  23. assert(package:check_cxxsnippets({test = [[
  24. void test() {
  25. typedef OpenMesh::PolyMesh_ArrayKernelT<> MyMesh;
  26. MyMesh mesh;
  27. MyMesh::VertexHandle vhandle[8];
  28. vhandle[0] = mesh.add_vertex(MyMesh::Point(-1, -1, 1));
  29. }
  30. ]]}, {configs = {languages = "c++11"}, includes = "OpenMesh/Core/Mesh/PolyMesh_ArrayKernelT.hh"}))
  31. end)