xmake.lua 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package("vxl")
  2. set_homepage("https://github.com/vxl/vxl")
  3. set_description("A multi-platform collection of C++ software libraries for Computer Vision and Image Understanding.")
  4. add_urls("https://github.com/vxl/vxl/archive/refs/tags/$(version).tar.gz",
  5. "https://github.com/vxl/vxl.git")
  6. add_versions("v3.5.0", "f044d2a9336f45cd4586d68ef468c0d9539f9f1b30ceb4db85bd9b6fdb012776")
  7. add_versions("v3.3.2", "95ecde4b02bbe00aec0d656fd2c43373de2a5d41487a68135f0b565254919411")
  8. add_configs("contrib", {description = "Build contrib modules.", default = false, type = "boolean"})
  9. if is_plat("windows") then
  10. add_configs("shared", {description = "Build shared library.", default = false, type = "boolean", readonly = true})
  11. end
  12. add_deps("cmake", "bzip2", "libgeotiff", "libjpeg-turbo", "libpng", "libtiff", "zlib")
  13. if is_plat("linux") or (is_plat("mingw") and is_subhost("msys")) then
  14. add_extsources("pacman::vxl")
  15. end
  16. add_includedirs("include", "include/vxl/core", "include/vxl/vcl", "include/vxl/v3p")
  17. add_links("vpgl_xio", "vpgl_io", "vpgl_algo", "vpgl_file_formats", "vpgl", "vpdl", "vcsl", "vil_io", "vgl_xio", "vgl_io", "vnl_xio", "vnl_io", "vbl_io", "vul_io", "vil_algo", "vil", "vil1", "vgl_algo", "vgl", "vnl_algo", "v3p_netlib", "netlib", "testlib", "vnl", "vsl", "vbl", "vul", "vpl", "vcl", "rply", "clipper", "vxl_openjpeg")
  18. on_install("windows", "linux", "macosx", "bsd", function (package)
  19. io.replace("config/cmake/Modules/FindGEOTIFF.cmake", "include( ${MODULE_PATH}/NewCMake/FindGEOTIFF.cmake )", "find_package(GeoTIFF CONFIG REQUIRED)", {plain = true})
  20. io.replace("v3p/openjpeg2/CMakeLists.txt", "set_target_properties(openjpeg2 PROPERTIES", "set_target_properties(openjpeg2 PROPERTIES\n OUTPUT_NAME vxl_openjpeg", {plain = true})
  21. local configs = {
  22. "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"),
  23. "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"),
  24. "-DVXL_BUILD_CONTRIB=" .. (package:config("contrib") and "ON" or "OFF"),
  25. "-DBUILD_TESTING=OFF",
  26. "-DVXL_BUILD_EXAMPLES=OFF",
  27. "-DVXL_USING_NATIVE_BZLIB2=ON",
  28. "-DVXL_USING_NATIVE_GEOTIFF=ON",
  29. "-DVXL_USING_NATIVE_JPEG=ON",
  30. "-DVXL_USING_NATIVE_PNG=ON",
  31. "-DVXL_USING_NATIVE_TIFF=ON",
  32. "-DVXL_USING_NATIVE_ZLIB=ON",
  33. }
  34. if package:is_plat("windows") and package:is_arch("arm64") and package:is_cross() then
  35. table.insert(configs, "-DVCL_HAS_LFS=1")
  36. end
  37. import("package.tools.cmake").install(package, configs)
  38. end)
  39. on_test(function (package)
  40. assert(package:check_cxxsnippets({test = [[
  41. #include <vnl/vnl_matrix.h>
  42. #include <vnl/vnl_vector.h>
  43. #include <vil/vil_image_view.h>
  44. void test() {
  45. vnl_matrix<double> m(3, 3, 0.0);
  46. vnl_vector<double> v(3, 1.0);
  47. vnl_vector<double> r = m * v;
  48. vil_image_view<unsigned char> image(100, 100, 1);
  49. image.fill(128);
  50. }
  51. ]]}, {configs = {languages = "c++11"}}))
  52. end)