You've already forked macports-ports
mirror of
https://github.com/encounter/macports-ports.git
synced 2026-03-30 11:29:27 -07:00
170 lines
6.1 KiB
Tcl
170 lines
6.1 KiB
Tcl
# -*- 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
|
|
|
|
name py-sip
|
|
categories-append devel
|
|
maintainers {michaelld @michaelld} openmaintainer
|
|
license {GPL-2 GPL-3 PSF}
|
|
platforms macosx
|
|
|
|
description create Python bindings for C and C++ libraries
|
|
long_description \
|
|
SIP is a tool that makes it very easy to create \
|
|
Python bindings for C and C++ libraries. \
|
|
It was originally developed to create PyQt, \
|
|
the Python bindings for the Qt toolkit, \
|
|
but can be used to create bindings for any \
|
|
C or C++ library.
|
|
|
|
homepage https://www.riverbankcomputing.com/software/sip/intro
|
|
|
|
version 4.19.25
|
|
|
|
# bumped the epoch to revert from 4.19.10 to 4.19.8. The former caused
|
|
# configuration errors in py*-qscitilla-qt5 and py*-pyqt4, and
|
|
# possibly others. See also: https://trac.macports.org/ticket/56746 .
|
|
epoch 1
|
|
|
|
# from siplib/sip.h[.in]:
|
|
#
|
|
# Define the current API version number. SIP must handle modules with
|
|
# the same major number and with the same or earlier minor number.
|
|
# Whenever data structure elements are added they must be appended and
|
|
# the minor number incremented. Whenever data structure elements are
|
|
# removed or the order changed then the major number must be
|
|
# incremented and the minor number set to 0.
|
|
#
|
|
# SIP 4.19.[19-25] provides SIP API 12.7
|
|
# SIP 4.19.[14-18] provides SIP API 12.6
|
|
# SIP 4.19.[12-13] provides SIP API 12.5
|
|
# SIP 4.19.[9-11] do not work with MacPorts
|
|
# -> see the "epoch" note above for more info
|
|
# SIP 4.19.8 provides SIP API 12.4
|
|
# SIP 4.19.[4-7] provides SIP API 12.3
|
|
# SIP 4.19.3 provides SIP API 12.2
|
|
# SIP 4.19.[1-2] provides SIP API 12.1
|
|
# SIP 4.19.0 provides SIP API 12.0
|
|
# SIP 4.18.[0-1] provides SIP API 11.3
|
|
# SIP 4.17.0 provides SIP API 11.2
|
|
# SIP 4.16.[8-9] provides SIP API 11.2
|
|
# -> BUT: the change is to the private API, not the public one.
|
|
# -> SO: no rev-bumps are be needed.
|
|
# SIP 4.16.[1-7] provides SIP API 11.1.
|
|
# SIP 4.15.5 provided SIP API 11.0.
|
|
|
|
python.versions 27 35 36 37 38 39
|
|
python.default_version 27
|
|
|
|
if {${name} ne ${subport}} {
|
|
|
|
master_sites https://www.riverbankcomputing.com/static/Downloads/sip/${version}
|
|
|
|
set branch [join [lrange [split ${version} .] 0 1] .]
|
|
set patch [lindex [split ${version} .] 2]
|
|
|
|
if {${patch} == 0} {
|
|
distname sip-${branch}
|
|
} else {
|
|
distname sip-${version}
|
|
}
|
|
|
|
checksums rmd160 9709eda79d7e0a73eca82e25cbbfd0af6da074c8 \
|
|
sha256 b39d93e937647807bac23579edbff25fe46d16213f708370072574ab1f1b4211 \
|
|
size 1056384
|
|
revision 0
|
|
|
|
patchfiles patch-siputils.py.diff \
|
|
patch-specs_macx-g++.diff \
|
|
patch-configure.py.diff \
|
|
patch-add_ppc64.diff
|
|
|
|
use_configure yes
|
|
|
|
pre-configure {
|
|
# Ensure correct compilers are used
|
|
reinplace "s|@CC@|${configure.cc}|" \
|
|
${worksrcpath}/specs/macx-g++
|
|
reinplace "s|@CXX@|${configure.cxx}|" \
|
|
${worksrcpath}/specs/macx-g++
|
|
}
|
|
|
|
configure.cmd ${python.bin} configure.py
|
|
configure.pre_args -b ${python.prefix}/bin \
|
|
-d ${python.pkgd} \
|
|
-e ${python.include} \
|
|
-v ${python.prefix}/share/sip \
|
|
-p macx-g++
|
|
|
|
# always add some arch flags, since the user might have overridden
|
|
# the default arch build (e.g., ticket #44086).
|
|
python.add_archflags no
|
|
if {![info exists universal_possible]} {
|
|
set universal_possible [expr {${os.universal_supported} && [llength ${configure.universal_archs}] >= 2}]
|
|
}
|
|
if {${universal_possible} && [variant_isset universal]} {
|
|
|
|
foreach arch ${configure.universal_archs} {
|
|
configure.args-append "--arch=${arch}"
|
|
}
|
|
configure.universal_args
|
|
configure.post_args LFLAGS="-F${frameworks_dir} -L${prefix}/lib \
|
|
${configure.universal_ldflags}"
|
|
configure.post_args-append CFLAGS="${configure.universal_cflags}"
|
|
configure.post_args-append CXXFLAGS="${configure.universal_cxxflags}"
|
|
|
|
} else {
|
|
|
|
configure.args-append "--arch=${configure.build_arch}"
|
|
configure.post_args LFLAGS="-F${frameworks_dir} -L${prefix}/lib \
|
|
${configure.ld_archflags}"
|
|
configure.post_args-append CFLAGS="${configure.cc_archflags}"
|
|
configure.post_args-append CXXFLAGS="${configure.cxx_archflags}"
|
|
|
|
}
|
|
|
|
if {${configure.sdkroot} eq ""} {
|
|
set configure.sdkroot "/"
|
|
}
|
|
|
|
configure.args-append --sdk=${configure.sdkroot}
|
|
|
|
build.cmd make
|
|
build.target all
|
|
|
|
test.run yes
|
|
test.cmd cd siplib && ${python.bin} -c 'import sip'
|
|
|
|
destroot.cmd make
|
|
destroot.destdir DESTDIR=${destroot}
|
|
|
|
post-destroot {
|
|
xinstall -m 755 -d ${destroot}${prefix}/share/doc
|
|
file copy ${worksrcpath}/doc ${destroot}${prefix}/share/doc/${subport}
|
|
xinstall -m 644 -W ${worksrcpath} LICENSE LICENSE-GPL2 LICENSE-GPL3 NEWS README \
|
|
${destroot}${prefix}/share/doc/${subport}
|
|
system "${python.bin} ${python.libdir}/compileall.py ${destroot}${prefix}"
|
|
system "${python.bin} -O ${python.libdir}/compileall.py ${destroot}${prefix}"
|
|
}
|
|
|
|
notes "${subport} is available under a PSF license with one addition: \n
|
|
4. Licensee may not use SIP to generate Python bindings for any C or
|
|
C++ library for which bindings are already provided by Riverbank. \n
|
|
GPL-2 or GPL-3 licenses are also available. For details see
|
|
${prefix}/share/doc/${subport}/LICENSE \[-GPL2 -GPL3\]\n\n"
|
|
|
|
}
|
|
|
|
if {[string last devel ${subport}] != -1} {
|
|
|
|
livecheck.type none
|
|
|
|
} else {
|
|
|
|
livecheck.type regex
|
|
livecheck.url https://www.riverbankcomputing.com/software/sip/download
|
|
livecheck.regex sip-(4(\\.\\d+)+)${extract.suffix}
|
|
|
|
}
|