fix_qgis_build_with_pysip5 (#39941)
* fix_qgis_build_with_pysip5 * build fails with newer protobuf * somehow findgdal can figure this out. * Update var/spack/repos/builtin/packages/qgis/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * fix gdal lib again * qgis needs QtPositioning provided by qt+location option * fix FindPyQt5 cmake file * fix bug * fix qsci sip issue * fix bug * blackify * improve * add latest LTR * add build dep * revert until bug is fixed * specify proj version for qgis 3.28 * improve gdal libs search via indicating gdal-config * make flake happy * improve deps * add 3.28.11, improve style * fix style * [@spackbot] updating style on behalf of Sinan81 --------- Co-authored-by: Sinan81 <Sinan@world> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Sinan81 <Sinan81@users.noreply.github.com>
This commit is contained in:
parent
86d2e1af97
commit
58017f484c
1 changed files with 46 additions and 8 deletions
|
@ -17,15 +17,18 @@ class Qgis(CMakePackage):
|
|||
|
||||
maintainers("adamjstewart", "Sinan81")
|
||||
|
||||
version("3.28.3", sha256="a09124f46465a520f6d735306ba3954c339b84aa396d6f52b476b82edcc4fe0e")
|
||||
# Prefer latest long term release
|
||||
version(
|
||||
"3.22.16",
|
||||
sha256="dbd1f8a639291bb2492eea61e4ef96079d7b27d3dfa538dab8cd98f31429254a",
|
||||
"3.28.11",
|
||||
sha256="c5eb703893c7f98de051c45d677c4a34b40f986db51782a4930ddefad4e193b4",
|
||||
preferred=True,
|
||||
)
|
||||
version("3.28.10", sha256="cff867e97909bbc2facce6343770dcb1b61fc6e4855f57783e30bf63d51c5218")
|
||||
version("3.28.3", sha256="a09124f46465a520f6d735306ba3954c339b84aa396d6f52b476b82edcc4fe0e")
|
||||
version("3.22.16", sha256="dbd1f8a639291bb2492eea61e4ef96079d7b27d3dfa538dab8cd98f31429254a")
|
||||
version("3.22.0", sha256="cf0c169863f332aab67d8c4943e14b73a564f0254bf54015f5826c6427e6785b")
|
||||
version("3.18.2", sha256="1913e4d5596bbc8b7d143f3defb18bf376f750a71f334f69d76af5deca7ecc5d")
|
||||
version("3.16.16", sha256="ccd2f404534fcb00b5e17863375462090c9575e68b32ce50b2e7e925d1e01a49")
|
||||
version("3.16.12", sha256="65e9634b5c885c98f3555cf77bc2e3fae5e19279aa17e3f6626ff5d7455fd2b9")
|
||||
version("3.16.5", sha256="525f469ad6e40dd7a8f09ebab5eb6a2dffc45939b99b7d937750cc04ed78d61c")
|
||||
version("3.14.16", sha256="c9915c2e577f1812a2b35b678b123c58407e07824d73e5ec0dda13db7ca75c04")
|
||||
|
@ -110,9 +113,12 @@ class Qgis(CMakePackage):
|
|||
depends_on("proj@4.4.0:")
|
||||
depends_on("proj@4.9.3:", when="@3.8.2:")
|
||||
depends_on("proj@7.2:", when="@3.28:")
|
||||
depends_on("proj@:8", when="@3.28") # build fails with proj@9
|
||||
depends_on("py-psycopg2", type=("build", "run")) # TODO: is build dependency necessary?
|
||||
depends_on("py-pyqt4", when="@2")
|
||||
depends_on("py-pyqt5@5.3:", when="@3")
|
||||
depends_on("py-sip", type="build")
|
||||
depends_on("py-pyqt-builder", type="build", when="^py-sip@5:")
|
||||
depends_on("py-requests", type=("build", "run")) # TODO: is build dependency necessary?
|
||||
depends_on("python@3.0.0:", type=("build", "run"), when="@3")
|
||||
depends_on("python@3.6:", type=("build", "run"), when="@3.18:")
|
||||
|
@ -120,14 +126,15 @@ class Qgis(CMakePackage):
|
|||
depends_on("qca@2.2.1:")
|
||||
depends_on("qjson")
|
||||
depends_on("qscintilla +python")
|
||||
depends_on("qt+dbus")
|
||||
depends_on("qt+dbus@5.12.0:", when="@3.20:")
|
||||
depends_on("qt+dbus@5.14.0:", when="@3.28:")
|
||||
depends_on("qt+dbus+location")
|
||||
depends_on("qt+dbus+location@5.12.0:", when="@3.20:")
|
||||
depends_on("qt+dbus+location@5.14.0:", when="@3.28:")
|
||||
depends_on("qtkeychain@0.5:", when="@3:")
|
||||
depends_on("qwt@5:")
|
||||
depends_on("qwtpolar")
|
||||
depends_on("sqlite@3.0.0: +column_metadata")
|
||||
depends_on("protobuf", when="@3.16.4:")
|
||||
depends_on("protobuf@:3.21", when="@:3.28")
|
||||
depends_on("zstd", when="@3.22:")
|
||||
|
||||
# Runtime python dependencies, not mentioned in install instructions
|
||||
|
@ -163,8 +170,38 @@ class Qgis(CMakePackage):
|
|||
depends_on("qt@:4", when="@2")
|
||||
|
||||
patch("pyqt5.patch", when="@:3.14 ^qt@5")
|
||||
patch("pyqt5_3165x.patch", when="@3.16.5:3.21 ^qt@5")
|
||||
patch("pyqt5_322x.patch", when="@3.22: ^qt@5")
|
||||
patch("pyqt5_3165x.patch", when="@3.16.5:3.21 ^qt@5 ^py-sip@4")
|
||||
patch("pyqt5_322x.patch", when="@3.22: ^qt@5 ^py-sip@4")
|
||||
|
||||
@run_before("cmake", when="^py-pyqt5")
|
||||
def fix_pyqt5_cmake(self):
|
||||
cmfile = FileFilter(join_path("cmake", "FindPyQt5.cmake"))
|
||||
pyqtpath = join_path(
|
||||
self.spec["py-pyqt5"].prefix, self.spec["python"].package.platlib, "PyQt5"
|
||||
)
|
||||
cmfile.filter(
|
||||
'SET(PYQT5_MOD_DIR "${Python_SITEARCH}/PyQt5")',
|
||||
'SET(PYQT5_MOD_DIR "' + pyqtpath + '")',
|
||||
string=True,
|
||||
)
|
||||
cmfile.filter(
|
||||
'SET(PYQT5_SIP_DIR "${Python_SITEARCH}/PyQt5/bindings")',
|
||||
'SET(PYQT5_SIP_DIR "' + pyqtpath + '/bindings")',
|
||||
string=True,
|
||||
)
|
||||
|
||||
@run_before("build")
|
||||
def fix_qsci_sip(self):
|
||||
if "^py-pyqt5" in self.spec:
|
||||
pyqtx = "PyQt5"
|
||||
elif "^py-pyqt6" in self.spec:
|
||||
pyqtx = "PyQt6"
|
||||
|
||||
sip_inc_dir = join_path(
|
||||
self.spec["qscintilla"].prefix, self.spec["python"].package.platlib, pyqtx, "bindings"
|
||||
)
|
||||
with open(join_path("python", "gui", "pyproject.toml.in"), "a") as tomlfile:
|
||||
tomlfile.write(f'\n[tool.sip.project]\nsip-include-dirs = ["{sip_inc_dir}"]\n')
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
|
@ -185,6 +222,7 @@ def cmake_args(self):
|
|||
"-DLIBZIP_INCLUDE_DIR=" + self.spec["libzip"].prefix.include,
|
||||
"-DLIBZIP_CONF_INCLUDE_DIR=" + self.spec["libzip"].prefix.lib.libzip.include,
|
||||
"-DGDAL_CONFIG_PREFER_PATH=" + self.spec["gdal"].prefix.bin,
|
||||
"-DGDAL_CONFIG=" + join_path(self.spec["gdal"].prefix.bin, "gdal-config"),
|
||||
"-DGEOS_CONFIG_PREFER_PATH=" + self.spec["geos"].prefix.bin,
|
||||
"-DGSL_CONFIG_PREFER_PATH=" + self.spec["gsl"].prefix.bin,
|
||||
"-DPOSTGRES_CONFIG_PREFER_PATH=" + self.spec["postgresql"].prefix.bin,
|
||||
|
|
Loading…
Reference in a new issue