Statistics
| Branch: | Tag: | Revision:

root / gnuradio-core / src / lib / general / CMakeLists.txt @ f2ab263b

History | View | Annotate | Download (10.5 kB)

1
# Copyright 2010-2012 Free Software Foundation, Inc.
2
#
3
# This file is part of GNU Radio
4
#
5
# GNU Radio is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3, or (at your option)
8
# any later version.
9
#
10
# GNU Radio is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
# GNU General Public License for more details.
14
#
15
# You should have received a copy of the GNU General Public License
16
# along with GNU Radio; see the file COPYING.  If not, write to
17
# the Free Software Foundation, Inc., 51 Franklin Street,
18
# Boston, MA 02110-1301, USA.
19
20
########################################################################
21
# This file included, use CMake directory variables
22
########################################################################
23
24
########################################################################
25
# Handle the generated sine table
26
########################################################################
27
add_custom_command(
28
    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
29
    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/gen_sine_table.py
30
    COMMAND ${PYTHON_EXECUTABLE}
31
        ${CMAKE_CURRENT_SOURCE_DIR}/gen_sine_table.py >
32
        ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
33
)
34
35
include(AddFileDependencies)
36
ADD_FILE_DEPENDENCIES(${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.cc
37
    ${CMAKE_CURRENT_BINARY_DIR}/sine_table.h
38
)
39
40
########################################################################
41
# Handle the generated constants
42
########################################################################
43
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c
44
    "import time;print time.strftime('%a, %d %b %Y %H:%M:%S', time.gmtime())"
45
    OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE
46
)
47
message(STATUS "Loading build date ${BUILD_DATE} into gr_constants...")
48
49
message(STATUS "Loading version ${VERSION} into gr_constants...")
50
51
file(TO_NATIVE_PATH "${CMAKE_INSTALL_PREFIX}/${GR_CONF_DIR}"     SYSCONFDIR)
52
file(TO_NATIVE_PATH "${CMAKE_INSTALL_PREFIX}/${GR_PKG_CONF_DIR}" GR_PREFSDIR)
53
54
#double escape for windows backslash path separators
55
string(REPLACE "\\" "\\\\" prefix ${prefix})
56
string(REPLACE "\\" "\\\\" SYSCONFDIR ${SYSCONFDIR})
57
string(REPLACE "\\" "\\\\" GR_PREFSDIR ${GR_PREFSDIR})
58
59
configure_file(
60
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.cc.in
61
    ${CMAKE_CURRENT_BINARY_DIR}/gr_constants.cc
62
@ONLY)
63
64
list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_BINARY_DIR}/gr_constants.cc)
65
66
########################################################################
67
# Append gnuradio-core library sources
68
########################################################################
69
list(APPEND gnuradio_core_sources
70
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_circular_file.cc
71
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_count_bits.cc
72
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_fast_atan2f.cc
73
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_fft_vcc_fftw.cc
74
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.cc
75
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_misc.cc
76
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_random.cc
77
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_reverse.cc
78
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_add_const_ss_generic.cc
79
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_char_to_float.cc
80
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_control_loop.cc
81
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_debugger_hook.cc
82
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_fft.cc
83
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_char.cc
84
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_int.cc
85
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_short.cc
86
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_uchar.cc
87
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_glfsr.cc
88
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_interleaved_short_to_complex.cc
89
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_int_to_float.cc
90
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_short_to_float.cc
91
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_uchar_to_float.cc
92
    ${CMAKE_CURRENT_SOURCE_DIR}/malloc16.c
93
)
94
95
########################################################################
96
# Append gnuradio-core test sources
97
########################################################################
98
list(APPEND test_gnuradio_core_sources
99
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_general.cc
100
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_circular_file.cc
101
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_cpm.cc
102
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_firdes.cc
103
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt.cc
104
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt_nco.cc
105
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_fxpt_vco.cc
106
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gr_math.cc
107
    ${CMAKE_CURRENT_SOURCE_DIR}/qa_gri_lfsr.cc
108
)
109
110
########################################################################
111
# Install runtime headers
112
########################################################################
113
install(FILES
114
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_core_api.h
115
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_circular_file.h
116
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.h
117
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_count_bits.h
118
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_expj.h
119
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_fft_vcc_fftw.h
120
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt.h
121
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt_nco.h
122
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_fxpt_vco.h
123
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_log2_const.h
124
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_math.h
125
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_misc.h
126
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_nco.h
127
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_random.h
128
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_reverse.h
129
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_simple_framer_sync.h
130
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_test_types.h
131
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_vco.h
132
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_add_const_ss.h
133
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_cc.h
134
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_ff.h
135
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_cc.h
136
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_ff.h
137
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_char_to_float.h
138
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_control_loop.h
139
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_debugger_hook.h
140
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_fft.h
141
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_char.h
142
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_int.h
143
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_short.h
144
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_float_to_uchar.h
145
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_lfsr.h
146
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_glfsr.h
147
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_interleaved_short_to_complex.h
148
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_lfsr_15_1_0.h
149
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_lfsr_32k.h
150
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_int_to_float.h
151
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_short_to_float.h
152
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_uchar_to_float.h
153
    ${CMAKE_CURRENT_SOURCE_DIR}/malloc16.h
154
    ${CMAKE_CURRENT_SOURCE_DIR}/random.h
155
    DESTINATION ${GR_INCLUDE_DIR}/gnuradio
156
    COMPONENT "core_devel"
157
)
158
159
########################################################################
160
# Install swig headers
161
########################################################################
162
if(ENABLE_PYTHON)
163
install(FILES
164
    ${CMAKE_CURRENT_SOURCE_DIR}/general.i
165
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_constants.i
166
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_cc.i
167
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc_ff.i
168
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_cc.i
169
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_agc2_ff.i
170
    ${CMAKE_CURRENT_SOURCE_DIR}/gri_control_loop.i
171
    DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
172
    COMPONENT "core_swig"
173
)
174
endif(ENABLE_PYTHON)
175
176
########################################################################
177
# Handle triple-threat files that have cc, h, and i
178
########################################################################
179
set(gr_core_general_triple_threats
180
    complex_vec_test
181
    gr_add_ff
182
    gr_additive_scrambler_bb
183
    gr_agc_cc
184
    gr_agc_ff
185
    gr_agc2_cc
186
    gr_agc2_ff
187
    gr_align_on_samplenumbers_ss
188
    gr_bin_statistics_f
189
    gr_bytes_to_syms
190
    gr_char_to_float
191
    gr_char_to_short
192
    gr_check_counting_s
193
    gr_check_lfsr_32k_s
194
    gr_complex_to_interleaved_short
195
    gr_complex_to_xxx
196
    gr_conjugate_cc
197
    gr_copy
198
    gr_cpfsk_bc
199
    gr_cpm
200
    gr_ctcss_squelch_ff
201
    gr_decode_ccsds_27_fb
202
    gr_diff_decoder_bb
203
    gr_diff_encoder_bb
204
    gr_diff_phasor_cc
205
    gr_dpll_bb
206
    gr_deinterleave
207
    gr_delay
208
    gr_encode_ccsds_27_bb
209
    gr_fake_channel_coder_pp
210
    gr_feedforward_agc_cc
211
    gr_feval
212
    gr_fft_vcc
213
    gr_fft_vfc
214
    gr_firdes
215
    gr_float_to_char
216
    gr_float_to_complex
217
    gr_float_to_int
218
    gr_float_to_short
219
    gr_float_to_uchar
220
    gr_fmdet_cf
221
    gr_frequency_modulator_fc
222
    gr_framer_sink_1
223
    gr_glfsr_source_b
224
    gr_glfsr_source_f
225
    gr_head
226
    gr_int_to_float
227
    gr_interleave
228
    gr_interleaved_short_to_complex
229
    gr_iqcomp_cc
230
    gr_keep_one_in_n
231
    gr_keep_m_in_n
232
    gr_kludge_copy
233
    gr_lfsr_32k_source_s
234
    gr_map_bb
235
    gr_multiply_cc
236
    gr_multiply_ff
237
    gr_multiply_const_cc
238
    gr_multiply_const_ff
239
    gr_multiply_conjugate_cc
240
    gr_nlog10_ff
241
    gr_nop
242
    gr_null_sink
243
    gr_null_source
244
    gr_pa_2x2_phase_combiner
245
    gr_packet_sink
246
    gr_peak_detector2_fb
247
    gr_phase_modulator_fc
248
    gr_pll_carriertracking_cc
249
    gr_pll_freqdet_cf
250
    gr_pll_refout_cc
251
    gr_pn_correlator_cc
252
    gr_prefs
253
    gr_probe_avg_mag_sqrd_c
254
    gr_probe_avg_mag_sqrd_cf
255
    gr_probe_avg_mag_sqrd_f
256
    gr_pwr_squelch_cc
257
    gr_pwr_squelch_ff
258
    gr_quadrature_demod_cf
259
    gr_rail_ff
260
    gr_regenerate_bb
261
    gr_remez
262
    gr_rms_cf
263
    gr_rms_ff
264
    gr_repeat
265
    gr_short_to_float
266
    gr_short_to_char
267
    gr_simple_correlator
268
    gr_simple_framer
269
    gr_simple_squelch_cc
270
    gr_skiphead
271
    gr_squelch_base_cc
272
    gr_squelch_base_ff
273
    gr_stream_mux
274
    gr_stream_to_streams
275
    gr_stream_to_vector
276
    gr_streams_to_stream
277
    gr_streams_to_vector
278
    gr_stretch_ff
279
    gr_test
280
    gr_threshold_ff
281
    gr_throttle
282
    gr_transcendental
283
    gr_uchar_to_float
284
    gr_vco_f
285
    gr_vector_map
286
    gr_vector_to_stream
287
    gr_vector_to_streams
288
    gr_unpack_k_bits_bb
289
    gr_pack_k_bits_bb
290
    gr_descrambler_bb
291
    gr_scrambler_bb
292
    gr_probe_density_b
293
    gr_annotator_alltoall
294
    gr_annotator_1to1
295
    gr_burst_tagger
296
    gr_correlate_access_code_tag_bb
297
)
298
299
foreach(file_tt ${gr_core_general_triple_threats})
300
    list(APPEND gnuradio_core_sources ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.cc)
301
    install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.h DESTINATION ${GR_INCLUDE_DIR}/gnuradio COMPONENT "core_devel")
302
    if(ENABLE_PYTHON)
303
        install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${file_tt}.i DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig COMPONENT "core_swig")
304
    endif(ENABLE_PYTHON)
305
endforeach(file_tt ${gr_core_general_triple_threats})