You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
168 lines
6.2 KiB
Tcl
168 lines
6.2 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-sip4
|
|
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
|
|
|
|
# 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 310
|
|
|
|
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 2
|
|
|
|
patchfiles patch-siputils.py.diff \
|
|
patch-specs_macx-g++.diff \
|
|
patch-configure.py.diff \
|
|
patch-add_ppc64.diff
|
|
|
|
# https://trac.macports.org/ticket/68643
|
|
python.pep517 no
|
|
|
|
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++ \
|
|
--no-dist-info
|
|
|
|
# always add some arch flags, since the user might have overridden
|
|
# the default arch build (e.g., ticket #44086).
|
|
python.add_archflags no
|
|
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"
|
|
|
|
livecheck.type none
|
|
|
|
# deactivate hack to have a smooth transition from the original py-pip
|
|
# (providing version 4.x) to the legacy py-pip4 port
|
|
pre-activate {
|
|
if {![catch {set installed [lindex [registry_active py${python.version}-sip] 0]}]} {
|
|
set _version [lindex $installed 1]
|
|
if {[vercmp $_version ${version}] >= 0} {
|
|
registry_deactivate_composite py${python.version}-sip "" [list ports_nodepcheck 1]
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
livecheck.type regex
|
|
livecheck.url https://www.riverbankcomputing.com/software/sip/download
|
|
livecheck.regex sip-(4(\\.\\d+)+)${extract.suffix}
|
|
}
|