12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package("lcms")
- set_homepage("https://www.littlecms.com/")
- set_description("A free, open source, CMM engine. It provides fast transforms between ICC profiles.")
- set_license("MIT")
- add_urls("https://github.com/mm2/Little-CMS/archive/refs/tags/lcms$(version).tar.gz",
- "https://github.com/mm2/Little-CMS.git")
- add_versions("2.17", "6e6f6411db50e85ae8ff7777f01b2da0614aac13b7b9fcbea66dc56a1bc71418")
- add_patches("2.17", "https://github.com/mm2/Little-CMS/commit/1723db795a477de2b010db7a53b2d159ab94c3fa.diff",
- "5f47d872f0439ec340e6f59089abbd6ea579539f85a31634787dfbbd9c0bb8aa")
- add_deps("meson", "ninja")
- add_configs("jpeg", {description = "Use JPEG", default = false, type = "boolean"})
- add_configs("tiff", {description = "Use LibTiff", default = false, type = "boolean"})
- add_configs("utils", {description = "Build the utils", default = false, type = "boolean"})
- add_configs("fastfloat", {description = "Build and install the fast float plugin, use only if GPL 3.0 is acceptable", default = false, type = "boolean"})
- add_configs("threaded", {description = "Build and install the multi threaded plugin, use only if GPL 3.0 is acceptable", default = false, type = "boolean"})
- if is_plat("linux", "bsd") then
- add_syslinks("pthread", "m")
- elseif is_plat("wasm") then
- add_syslinks("pthread")
- add_ldflags("-s USE_PTHREADS=1")
- add_cxflags("-pthread")
- end
- on_load(function (package)
- if package:is_plat("windows") and package:config("shared") then
- package:add("defines", "CMS_DLL")
- end
- if package:config("jpeg") then
- package:add("deps", "libjpeg")
- end
- if package:config("tiff") then
- package:add("deps", "libtiff")
- end
- end)
- on_install(function (package)
- local configs = {}
- if package:is_plat("wasm") and package:config("shared") then
- table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no"))
- table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))
- if package:config("jpeg") then
- table.insert(configs, "--with-jpeg=" .. package:dep("libjpeg"):installdir())
- end
- if package:config("tiff") then
- table.insert(configs, "--with-tiff=" .. package:dep("libtiff"):installdir())
- end
- if package:config("fastfloat") then
- table.insert(configs, "--with-fastfloat")
- end
- if package:config("threaded") then
- table.insert(configs, "--with-threaded")
- end
- if package:config("pic") ~= false then
- table.insert(configs, "--with-pic")
- end
- if package:debug() then
- table.insert(configs, "--enable-debug")
- end
- import("package.tools.autoconf").install(package, configs)
- else
- table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static"))
- table.insert(configs, "-Djpeg=" .. (package:config("jpeg") and "enabled" or "disabled"))
- table.insert(configs, "-Dtiff=" .. (package:config("tiff") and "enabled" or "disabled"))
- table.insert(configs, "-Dutils=" .. (package:config("utils") and "true" or "false"))
- table.insert(configs, "-Dfastfloat=" .. (package:config("fastfloat") and "true" or "false"))
- table.insert(configs, "-Dthreaded=" .. (package:config("threaded") and "true" or "false"))
-
- import("package.tools.meson").install(package, configs)
- end
- end)
- on_test(function (package)
- assert(package:has_cfuncs("cmsXYZ2xyY", {includes = "lcms2.h"}))
- end)
|