xmake.lua 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package("imath")
  2. set_homepage("https://github.com/AcademySoftwareFoundation/Imath/")
  3. set_description("Imath is a C++ and python library of 2D and 3D vector, matrix, and math operations for computer graphics")
  4. set_license("BSD-3-Clause")
  5. add_urls("https://github.com/AcademySoftwareFoundation/Imath/archive/refs/tags/$(version).tar.gz",
  6. "https://github.com/AcademySoftwareFoundation/Imath.git")
  7. add_versions("v3.1.12", "8a1bc258f3149b5729c2f4f8ffd337c0e57f09096e4ba9784329f40c4a9035da")
  8. add_versions("v3.1.10", "f2943e86bfb694e216c60b9a169e5356f8a90f18fbd34d7b6e3450be14f60b10")
  9. add_versions("v3.1.0", "211c907ab26d10bd01e446da42f073ee7381e1913d8fa48084444bc4e1b4ef87")
  10. add_versions("v3.1.1", "a63fe91d8d0917acdc31b0c9344b1d7dbc74bf42de3e3ef5ec982386324b9ea4")
  11. add_versions("v3.1.2", "f21350efdcc763e23bffd4ded9bbf822e630c15ece6b0697e2fcb42737c08c2d")
  12. add_versions("v3.1.3", "0bf7ec51162c4d17a4c5b850fb3f6f7a195cff9fa71f4da7735f74d7b5124320")
  13. add_versions("v3.1.4", "fcca5fbb37d375a252bacd8a29935569bdc28b888f01ef1d9299ca0c9e87c17a")
  14. add_versions("v3.1.5", "1e9c7c94797cf7b7e61908aed1f80a331088cc7d8873318f70376e4aed5f25fb")
  15. add_versions("v3.1.9", "f1d8aacd46afed958babfced3190d2d3c8209b66da451f556abd6da94c165cf3")
  16. add_versions("v3.1.11", "9057849585e49b8b85abe7cc1e76e22963b01bfdc3b6d83eac90c499cd760063")
  17. add_includedirs("include", "include/Imath")
  18. add_deps("cmake")
  19. on_install(function (package)
  20. if package:is_plat("windows", "mingw") and package:config("shared") then
  21. package:add("defines", "IMATH_DLL")
  22. end
  23. local configs = {"-DBUILD_TESTING=OFF"}
  24. table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"))
  25. table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
  26. if package:is_plat("windows") then
  27. table.insert(configs, "-DCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY=''")
  28. end
  29. import("package.tools.cmake").install(package, configs)
  30. if package:is_plat("windows") and package:is_debug() then
  31. local dir = package:installdir(package:config("shared") and "bin" or "lib")
  32. os.vcp(path.join(package:buildir(), "**.pdb"), dir)
  33. end
  34. end)
  35. on_test(function (package)
  36. assert(package:check_cxxsnippets({test = [[
  37. void test() {
  38. Imath::V3f a(0, 0, 0);
  39. Imath::V3f b(1, 1, 1);
  40. Imath::V3f c(2, 9, 2);
  41. Imath::Box3f box(a);
  42. box.extendBy(c);
  43. }
  44. ]]}, {configs = {languages = "c++11"}, includes = "Imath/ImathBox.h"}))
  45. end)