<pre style='margin:0'>
Eric A. Borisch (eborisch) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/885596f36cf2d5fa569b7e2e2335db6907770c02">https://github.com/macports/macports-ports/commit/885596f36cf2d5fa569b7e2e2335db6907770c02</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 885596f py-clang: python bindings to libclang
</span>885596f is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 885596f36cf2d5fa569b7e2e2335db6907770c02
</span>Author: Eric A. Borisch <eborisch@macports.org>
AuthorDate: Sat Apr 7 12:05:27 2018 -0500
<span style='display:block; white-space:pre;color:#404040;'> py-clang: python bindings to libclang
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes https://trac.macports.org/ticket/39551
</span>---
python/py-clang/Portfile | 114 +++++++++++++++++++++++++++++++++++++++++
python/py-clang/files/setup.py | 31 +++++++++++
2 files changed, 145 insertions(+)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-clang/Portfile b/python/py-clang/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..d893bcf
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-clang/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,114 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- 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
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup python 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Actual versions defined by variants below
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name py-clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.versions 27 34 35 36
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+python.default_version 27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license NCSA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers eborisch \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description Python bindings for clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description ${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ https://github.com/llvm-mirror/clang/tree/master/bindings/python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${name} ne ${subport}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ master_sites http://llvm.org/releases/${version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Share llvm's downloads
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dist_subdir llvm
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ livecheck.url http://llvm.org/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ checksums \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfe-3.7.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 Ae9383a4608d42781fa47fa3cdefc1f7adfebd98 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfe-3.8.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 a280504a3ba3aa59274120305f68fc8f8b3aca9c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 4cd3836dfb4b88b597e075341cae86d61c63ce3963e45c7fe6a8bf59bb382cdf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfe-3.9.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 51930c2d55eacd44df28b49a84565771c94f418e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 e6c4cebb96dee827fa0470af313dff265af391cb6da8d429842ef208c8f25e63 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfe-4.0.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 4f30f077c6c39489720ec43a748d04dab0fbff79 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 61738a735852c23c3bdbe52d035488cdb2083013f384d67c1ba36fabebd8769b \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfe-5.0.1.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 205adf6bdc9252b7b891157904befa28f40c9e9a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 135f6c9b0cd2da1aff2250e065946258eb699777888df39ca5a5b4fe5e23d0ff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cfe-6.0.0.src.tar.xz \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rmd160 5e9383a4608d42781fa47fa3cdefc1f7adfebd98 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 e07d6dd8d9ef196cfc8e8bb131cbd6a2ed0b1caf1715f9d05b0f0eeaddb6df32 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set clanglist {37 38 39 40 50 60}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set clangvlist {3.7.1 3.8.1 3.9.1 4.0.1 5.0.1 6.0.0}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach cvnum $clanglist {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Explictly use (and depend on) the libclang we select during install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cvidx [lsearch $clanglist $cvnum]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set clang_version [lindex $clangvlist $cvidx]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cflist {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach v [lreplace $clanglist $cvidx $cvidx] {lappend cflist clang$v}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cvstr [string index $cvnum 0].[string index $cvnum 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set substr \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "library_path = '${prefix}/libexec/llvm-${cvstr}/lib'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ eval [subst {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ variant clang${cvnum} description {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Use clang${cvnum}'s libclang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } conflicts $cflist {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version ${clang_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:clang-${cvstr}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles cfe-${clang_version}.src.tar.xz
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ worksrcdir cfe-${clang_version}.src/bindings/python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-patch {reinplace {s^library_path = None^$substr^} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ clang/cindex.py}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Yes, I didn't bother escaping the '.'s
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ livecheck.regex \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ " ([string range $clang_version 0 2].\\\[0-9\\\]+): "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![variant_isset clang37] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang38] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang39] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang40] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang50] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang60]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ default_variants +clang37
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pre-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Will never hit this when installing from packages, which is OK, as
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # they will have the default variant set above.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![variant_isset clang37] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang38] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang39] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang40] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang50] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ![variant_isset clang60]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "At least one of the clangNN variants must be active."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return -code error "Unsupported (no) variants selected."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file copy ${filespath}/setup.py ${worksrcpath}/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set DOCDIR ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${DOCDIR}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file copy ${worksrcpath}/README.txt ${DOCDIR}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ The path to the selected libclang variant has been recorded in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ installed package. It can be overridden with:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cindex.set_library_(path|file)().
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/python/py-clang/files/setup.py b/python/py-clang/files/setup.py
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..bf42cbb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/python/py-clang/files/setup.py
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,31 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/usr/bin/env python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8 -*-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Based on https://raw.githubusercontent.com/trolldbois/python-clang/master/setup.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+from setuptools import setup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+setup(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ name="clang",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version="6.0",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description="libclang python bindings",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description=open("README.txt").read(),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ url="http://clang.llvm.org/",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ download_url="http://llvm.org/releases/download.html",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ license="License :: OSI Approved :: University of Illinois/NCSA Open Source License",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ classifiers=[
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Intended Audience :: Developers",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "License :: OSI Approved :: University of Illinois/NCSA Open Source License",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Development Status :: 5 - Production/Stable",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Topic :: Software Development :: Compilers",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Programming Language :: Python :: 2.7",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Programming Language :: Python :: 3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ keywords=["llvm", "clang", "libclang"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ author="LLVM team",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zip_safe=False,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ packages=["clang"],
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # if use nose.collector, many plugins not is avaliable
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # see: http://nose.readthedocs.org/en/latest/setuptools_integration.html
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test_suite="nose.collector",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ tests_require=['nose']
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+)
</span></pre><pre style='margin:0'>
</pre>