# -*- 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 0 # Needed for change to meta-versioning epoch 1 name py-clang python.versions 27 34 35 36 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 http://llvm.org/ use_xz yes checksums \ cfe-3.7.1.src.tar.xz \ rmd160 185b0f75970bc50682766a21794440578db87b5d \ sha256 56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674 \ cfe-3.8.1.src.tar.xz \ rmd160 a280504a3ba3aa59274120305f68fc8f8b3aca9c \ sha256 4cd3836dfb4b88b597e075341cae86d61c63ce3963e45c7fe6a8bf59bb382cdf \ 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.1.src.tar.xz \ rmd160 205adf6bdc9252b7b891157904befa28f40c9e9a \ sha256 135f6c9b0cd2da1aff2250e065946258eb699777888df39ca5a5b4fe5e23d0ff \ cfe-6.0.0.src.tar.xz \ rmd160 5e9383a4608d42781fa47fa3cdefc1f7adfebd98 \ sha256 e07d6dd8d9ef196cfc8e8bb131cbd6a2ed0b1caf1715f9d05b0f0eeaddb6df32 \ depends_build-append port:py${python.version}-setuptools set clanglist {37 38 39 40 50 60} set clangvlist {3.7.1 3.8.1 3.9.1 4.0.1 5.0.1 6.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 http://llvm.org/releases/${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 clang38] && ![variant_isset clang39] && ![variant_isset clang40] && ![variant_isset clang50] && ![variant_isset clang60]} { 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 clang38] && ![variant_isset clang39] && ![variant_isset clang40] && ![variant_isset clang50] && ![variant_isset clang60]} { 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)(). } }