| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package("librttopo")
- set_homepage("https://git.osgeo.org/gitea/rttopo/librttopo")
- set_description("RT Topology Library")
- set_license("GPL-2.0-or-later")
- add_urls("https://gitlab.com/rttopo/rttopo/-/archive/librttopo-$(version)/rttopo-librttopo-$(version).tar.bz2", {alias = "gitlab"})
- add_urls("https://github.com/CGX-GROUP/librttopo.git",
- "https://gitlab.com/rttopo/rttopo", {alias = "git"})
- add_versions("gitlab:1.1.0", "4b28732c0322849c8754751a384ee3596d06ab316dfc57fe9bbe757c82a27efe")
- add_versions("git:1.1.0", "librttopo-1.1.0")
- add_deps("geos")
- if is_plat("linux", "bsd") then
- add_syslinks("m")
- end
- if on_check then
- on_check("android", function (package)
- local ndk = package:toolchain("ndk"):config("ndkver")
- assert(ndk and tonumber(ndk) > 22, "package(librttopo) dep(geos) require ndk version > 22")
- end)
- end
- on_install(function (package)
- local geos_ver = assert(package:dep("geos"):version(), "geos version not found")
- os.touch("src/rttopo_config.h")
- io.writefile("xmake.lua", string.format([[
- option("ver", {default = "%s"})
- add_rules("mode.debug", "mode.release")
- add_requires("geos")
- target("rttopo")
- set_kind("$(kind)")
- add_files("src/*.c")
- add_includedirs("headers")
- add_headerfiles("headers/*.h")
- add_defines("RTGEOM_DEBUG_LEVEL=0")
- if has_config("ver") then
- add_defines("LIBRTGEOM_VERSION=\"" .. get_config("ver") .. "\"")
- add_defines("RTGEOM_GEOS_VERSION=%s")
- set_version(get_config("ver"), {soname = true})
- end
- set_configdir("headers")
- add_configfiles("headers/librttopo_geom.h.in", {pattern = "@(SRID_.-)@"})
- -- from https://github.com/conan-io/conan-center-index/blob/fcbc22cd090862c62de0332f9d3aac08620d53ca/recipes/librttopo/all/CMakeLists.txt#L6-L7
- set_configvar("SRID_MAX", "999999")
- set_configvar("SRID_USR_MAX", "998999")
- if is_kind("shared") and is_plat("windows") then
- add_rules("utils.symbols.export_all")
- end
- if is_plat("linux", "bsd") then
- add_syslinks("m")
- end
- add_packages("geos")
- ]], package:version_str(), (geos_ver:major() .. geos_ver:minor())))
- import("package.tools.xmake").install(package)
- end)
- on_test(function (package)
- assert(package:has_cfuncs("rtgeom_version", {includes = "librttopo.h"}))
- end)
|