# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4 PortSystem 1.0 PortGroup python 1.0 # meta-version; bump whenever underlying clangs are updated. Needed to support # portindex (variants can't have different versions.) version 2 # Needed for change to meta-versioning epoch 1 name py-clang python.versions 27 34 35 36 37 python.default_version 27 platforms darwin license NCSA maintainers {eborisch @eborisch} \ openmaintainer description Python bindings for clang long_description ${description} homepage \ https://github.com/llvm-mirror/clang/tree/master/bindings/python supported_archs noarch if {${name} ne ${subport}} { # Share llvm's downloads dist_subdir llvm livecheck.url https://llvm.org/ use_xz yes checksums \ cfe-3.7.1.src.tar.xz \ rmd160 185b0f75970bc50682766a21794440578db87b5d \ sha256 56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674 \ cfe-3.9.1.src.tar.xz \ rmd160 51930c2d55eacd44df28b49a84565771c94f418e \ sha256 e6c4cebb96dee827fa0470af313dff265af391cb6da8d429842ef208c8f25e63 \ cfe-4.0.1.src.tar.xz \ rmd160 4f30f077c6c39489720ec43a748d04dab0fbff79 \ sha256 61738a735852c23c3bdbe52d035488cdb2083013f384d67c1ba36fabebd8769b \ cfe-5.0.2.src.tar.xz \ rmd160 e4aa04b8aaa39d7c222d33b0e95b8d06c423d229 \ sha256 fa9ce9724abdb68f166deea0af1f71ca0dfa9af8f7e1261f2cae63c280282800 \ cfe-6.0.1.src.tar.xz \ rmd160 c280cd2037b19f9bd733944b765f9ca23b35e0a4 \ sha256 7c243f1485bddfdfedada3cd402ff4792ea82362ff91fbdac2dae67c6026b667 \ cfe-7.0.1.src.tar.xz \ rmd160 914adafed7c97e5ebab15a437670906c404cb8bd \ sha256 a45b62dde5d7d5fdcdfa876b0af92f164d434b06e9e89b5d0b1cbc65dfe3f418 \ cfe-8.0.0.src.tar.xz \ rmd160 bd4dd523edcde136156b773cc66bfad1fc52dbc4 \ sha256 084c115aab0084e63b23eee8c233abb6739c399e29966eaeccfc6e088e0b736b \ depends_build-append port:py${python.version}-setuptools set clanglist {37 39 40 50 60 70 80} set clangvlist {3.7.1 3.9.1 4.0.1 5.0.2 6.0.1 7.0.1 8.0.0} foreach cvnum $clanglist { # Explictly use (and depend on) the libclang we select during install set cvidx [lsearch $clanglist $cvnum] set clang_version [lindex $clangvlist $cvidx] set cflist {} foreach v [lreplace $clanglist $cvidx $cvidx] {lappend cflist clang$v} set cvstr [string index $cvnum 0].[string index $cvnum 1] set substr \ "library_path = '${prefix}/libexec/llvm-${cvstr}/lib'" variant clang${cvnum} description { Use clang${cvnum}'s libclang } conflicts {*}${cflist} " master_sites https://releases.llvm.org/${clang_version} depends_lib-append port:clang-${cvstr} distfiles cfe-${clang_version}.src.tar.xz worksrcdir cfe-${clang_version}.src/bindings/python post-patch {reinplace {s^library_path = None^$substr^} \ clang/cindex.py} livecheck.version ${clang_version} # Yes, I didn't bother escaping the '.'s livecheck.regex \ \" ([string range $clang_version 0 2].\\\[0-9\\\]+): \" " } if {![variant_isset clang37] && ![variant_isset clang39] && ![variant_isset clang40] && ![variant_isset clang50] && ![variant_isset clang60] && ![variant_isset clang70] && ![variant_isset clang80]} { default_variants +clang50 } pre-extract { # Will never hit this when installing from packages, which is OK, as # they will have the default variant set above. if {![variant_isset clang37] && ![variant_isset clang39] && ![variant_isset clang40] && ![variant_isset clang50] && ![variant_isset clang60] && ![variant_isset clang70] && ![variant_isset clang80]} { ui_error "At least one of the clangNN variants must be active." return -code error "Unsupported (no) variants selected." } } post-extract { file copy ${filespath}/setup.py ${worksrcpath}/ } post-destroot { set DOCDIR ${destroot}${prefix}/share/doc/${subport} xinstall -d ${DOCDIR} file copy ${worksrcpath}/README.txt ${DOCDIR} } notes { The path to the selected libclang variant has been recorded in the\ installed package. It can be overridden with:\ cindex.set_library_(path|file)(). } }