diff options
Diffstat (limited to 'gr-atsc/lib/CMakeLists.txt')
-rw-r--r-- | gr-atsc/lib/CMakeLists.txt | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/gr-atsc/lib/CMakeLists.txt b/gr-atsc/lib/CMakeLists.txt new file mode 100644 index 0000000000..b30581be79 --- /dev/null +++ b/gr-atsc/lib/CMakeLists.txt @@ -0,0 +1,164 @@ +# Copyright 2011-2013 Free Software Foundation, Inc. +# +# This file is part of GNU Radio +# +# GNU Radio is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3, or (at your option) +# any later version. +# +# GNU Radio is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Radio; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, +# Boston, MA 02110-1301, USA. + +######################################################################## +# Setup the include and linker paths +######################################################################## +include_directories( + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${GR_ATSC_INCLUDE_DIRS} + ${GR_FILTER_INCLUDE_DIRS} + ${GR_ANALOG_INCLUDE_DIRS} + ${GR_FEC_INCLUDE_DIRS} + ${GR_BLOCKS_INCLUDE_DIRS} + ${GNURADIO_CORE_INCLUDE_DIRS} + ${GRUEL_INCLUDE_DIRS} + ${LOG4CPP_INCLUDE_DIRS} + ${Boost_INCLUDE_DIRS} +) + +link_directories(${Boost_LIBRARY_DIRS}) +link_directories(${LOG4CPP_LIBRARY_DIRS}) + +######################################################################## +# Generate viterbi mux source +# http://www.vtk.org/Wiki/CMake_Cross_Compiling#Using_executables_in_the_build_created_during_the_build +######################################################################## +if(NOT CMAKE_CROSSCOMPILING) + add_executable(atsci_viterbi_gen atsci_viterbi_gen.cc) + export(TARGETS atsci_viterbi_gen APPEND FILE ${EXPORT_FILE}) +endif() + + +set(atsci_viterbi_mux_cc ${CMAKE_CURRENT_BINARY_DIR}/atsci_viterbi_mux.cc) + +add_custom_command( + OUTPUT ${atsci_viterbi_mux_cc} + DEPENDS atsci_viterbi_gen + COMMAND atsci_viterbi_gen -o ${atsci_viterbi_mux_cc} +) + +######################################################################## +# Setup library +######################################################################## +list(APPEND gr_atsc_sources + ${atsci_viterbi_mux_cc} + atsc_derandomizer.cc + atsc_randomizer.cc + atsc_rs_decoder.cc + atsc_rs_encoder.cc + atsc_interleaver.cc + atsc_deinterleaver.cc + atsc_trellis_encoder.cc + atsc_viterbi_decoder.cc + atsc_ds_to_softds.cc + atsc_field_sync_mux.cc + atsc_field_sync_demux.cc + atsc_equalizer.cc + atsc_fs_checker.cc + atsc_bit_timing_loop.cc + atsc_fpll.cc + atsc_depad.cc + atsc_pad.cc + atsci_basic_trellis_encoder.cc + atsci_data_interleaver.cc + atsci_equalizer.cc + atsci_equalizer_lms.cc + atsci_equalizer_lms2.cc + atsci_equalizer_nop.cc + atsci_fake_single_viterbi.cc + atsci_fs_checker.cc + atsci_fs_checker_naive.cc + atsci_fs_correlator.cc + atsci_fs_correlator_naive.cc + atsci_single_viterbi.cc + atsci_sssr.cc + atsci_pnXXX.cc + atsci_randomizer.cc + atsci_reed_solomon.cc + atsci_sliding_correlator.cc + atsci_trellis_encoder.cc + atsci_viterbi_decoder.cc + create_atsci_equalizer.cc + create_atsci_fs_checker.cc + create_atsci_fs_correlator.cc + plinfo.cc +) + +#Add Windows DLL resource file under MSVC +IF(MSVC) + include(${CMAKE_SOURCE_DIR}/cmake/Modules/GrVersion.cmake) + + configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-atsc.rc.in + ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-atsc.rc + @ONLY) + + list(APPEND gr_atsc_sources + ${CMAKE_CURRENT_BINARY_DIR}/gnuradio-atsc.rc + ) +ENDIF(MSVC) + +list(APPEND atsc_libs + gnuradio-filter + gnuradio-analog + gnuradio-core + gnuradio-fec + gnuradio-blocks + ${Boost_LIBRARIES} + ${LOG4CPP_LIBRARIES} +) + +add_library(gnuradio-atsc SHARED ${gr_atsc_sources}) +target_link_libraries(gnuradio-atsc ${atsc_libs}) +GR_LIBRARY_FOO(gnuradio-atsc RUNTIME_COMPONENT "atsc_runtime" DEVEL_COMPONENT "atsc_devel") + +######################################################################## +# Build and register unit test +######################################################################## +if(ENABLE_TESTING) + +include_directories(${CPPUNIT_INCLUDE_DIRS}) +link_directories(${CPPUNIT_LIBRARY_DIRS}) + +list(APPEND test_atsci_sources + qa_atsci_basic_trellis_encoder.cc + qa_atsci_data_interleaver.cc + qa_atsci_equalizer_nop.cc + qa_atsci_fake_single_viterbi.cc + qa_atsci_fs_correlator.cc + qa_atsci_single_viterbi.cc + qa_atsci_randomizer.cc + qa_atsci_reed_solomon.cc + qa_atsci_sliding_correlator.cc + qa_atsci_trellis_encoder.cc + qa_atsci_viterbi_decoder.cc + qa_convolutional_interleaver.cc + qa_atsci.cc + qa_interleaver_fifo.cc +) + +include(GrTest) +list(APPEND GR_TEST_TARGET_DEPS gnuradio-atsc gnuradio-fec gnuradio-filter gnuradio-analog gnuradio-fft) +add_executable(test_atsci ${test_atsci_sources} test_atsci.cc) +target_link_libraries(test_atsci gnuradio-atsc gnuradio-core ${CPPUNIT_LIBRARIES}) +GR_ADD_TEST(atsci-test test_atsci) + +endif(ENABLE_TESTING) |