/
Portfile
133 lines (100 loc) · 4.55 KB
/
Portfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# -*- 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
# $Id$
PortSystem 1.0
PortGroup cmake 1.0
PortGroup github 1.0
PortGroup active_variants 1.1
github.setup bastibl gr-rds ecdd362b464b979fdcfbb778b3328cb21b307f9f
categories science comms
maintainers michaelld openmaintainer
description Provides the Radio Data System (RDS) block for GNU Radio.
long_description ${description}
license GPL-2+
platforms darwin
version 20140115
revision 1
checksums rmd160 7ba76a15be8075e94c5234ef38168ca591166260 \
sha256 e7449cb85e45bf9c91b96ae5485b35a66dc1410337b49d3644db74f505e4ea81
depends_build-append port:pkgconfig
depends_lib-append port:boost \
port:cppunit \
port:libxml2 \
port:swig
depends_run-append port:gr-osmosdr
# allow gr-osmosdr to work with both gnuradio and gnuradio-devel ...
depends_lib-append path:lib/libgnuradio-runtime.dylib:gnuradio
# ... but not with gnuradio-legacy or gnuradio-next
pre-fetch {
if {![catch {set installed [lindex [registry_active gnuradio-legacy] 0]}]} {
# gnuradio-legacy is installed; this version of gr-osmosdr does not work with gnuradio-legacy
ui_msg "\nError: ${name} requires the gnuradio or gnuradio-devel port, and will not work with the gnuradio-legacy port. deactivate gnuradio-legacy, and then install or activate gnuradio or gnuradio-devel.\n"
return -code error "Invalid port dependency: gnuradio-legacy"
}
if {![catch {set installed [lindex [registry_active gnuradio-next] 0]}]} {
# gnuradio-next is installed; this version of gr-osmosdr does not work with gnuradio-next
ui_msg "\nError: ${name} requires the gnuradio or gnuradio-devel port, and will not work with the gnuradio-next port. deactivate gnuradio-next, and then install or activate gnuradio or gnuradio-devel.\n"
return -code error "Invalid port dependency: gnuradio-next"
}
}
# do VPATH build
post-extract { file mkdir ${workpath}/build }
configure.dir ${workpath}/build
build.dir ${workpath}/build
# remove top-level include path, such that internal headers are used
# instead of any already-installed ones.
configure.cppflags-delete -I${prefix}/include
# remove top-level library path, such that internal libraries are used
# instead of any already-installed ones.
configure.ldflags-delete -L${prefix}/lib
# set last configure argument to the reletive path
# to the top-level cmake source
configure.post_args ../${worksrcdir}
# be verbose when building, for debugging purposes
build.post_args VERBOSE=1
# set Python variants
set pythons_suffixes {26 27}
global chosen_python_suffix
set chosen_python_suffix ""
set pythons_ports {}
foreach s ${pythons_suffixes} {
lappend pythons_ports python${s}
}
foreach s ${pythons_suffixes} {
set p python${s}
set v [join [split ${s} ""] "."]
set i [lsearch -exact ${pythons_ports} ${p}]
set c [lreplace ${pythons_ports} ${i} ${i}]
eval [subst {
variant ${p} description "Build UHD for Python ${v}" \
conflicts ${c} {
set chosen_python_suffix ${s}
# require gnuradio to also have this Python variant
require_active_variants \
path:lib/libgnuradio-runtime.dylib:gnuradio ${p}
depends_lib-append \
port:${p}
# specify that Python version to use
configure.args-append \
-DPYTHON_EXECUTABLE=${prefix}/bin/python${v} \
-DPYTHON_INCLUDE_DIR=${prefix}/Library/Frameworks/Python.framework/Versions/${v}/Headers \
-DPYTHON_LIBRARY=${prefix}/Library/Frameworks/Python.framework/Versions/${v}/Python \
-DGR_PYTHON_DIR=${frameworks_dir}/Python.framework/Versions/${v}/lib/python${v}/site-packages
}
}]
}
# if no python variant is set, default to 2.7
if {![variant_isset python26] &&
![variant_isset python27]} {
default_variants +python27
}
# make sure -python27 was not used alone
if {![variant_isset python26] &&
![variant_isset python27]} {
return -code error "Exactly one Python variant must be selected."
}
post-destroot {
# copy the provided app into examples
xinstall -m 755 -d ${destroot}/${prefix}/share/gnuradio/examples/grc/rds
xinstall -m 644 -W ${worksrcpath} apps/rds_rx.grc \
${destroot}/${prefix}/share/gnuradio/examples/grc/rds
}