summaryrefslogtreecommitdiff
path: root/lib/CMakeLists.txt
blob: 0fe8c508d7800fe89d2316ec287ae157e2c414c9 (plain)
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
########################################################################
# This file included, use CMake directory variables
########################################################################

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${GRAS_SOURCE_DIR}/tests)

set(GRAS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/../)

########################################################################
# Setup NumaNuma
########################################################################
list(APPEND CMAKE_MODULE_PATH ${GRAS_SOURCE_DIR}/numanuma/cmake)
include_directories(${GRAS_SOURCE_DIR}/numanuma/include)
find_package(NumaNuma)
if(NOT NUMANUMA_FOUND)
    message(FATAL_ERROR "numanuma dependencies not met!")
endif()

########################################################################
# Append gnuradio-core library sources
########################################################################
list(APPEND gnuradio_core_sources
    ${CMAKE_CURRENT_SOURCE_DIR}/element.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/block.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/block_task.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/block_allocator.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/block_handlers.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/port_handlers.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/hier_block.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/top_block.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_block.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_sync_block.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_hier_block2.cpp
    ${CMAKE_CURRENT_SOURCE_DIR}/gr_top_block.cpp
)

#sources that are in tree that have not changed
set(runtime_srcs_dir ${CMAKE_SOURCE_DIR}/gnuradio-core/src/lib/runtime)
list(APPEND gnuradio_core_sources
    ${runtime_srcs_dir}/gr_sys_paths.cc
    ${runtime_srcs_dir}/gr_message.cc
    ${runtime_srcs_dir}/gr_msg_queue.cc
    ${runtime_srcs_dir}/gr_msg_handler.cc
)

########################################################################
# Append gnuradio-core test sources
########################################################################
list(APPEND test_gnuradio_core_sources
    ${GRAS_SOURCE_DIR}/tests/qa_gr_block.cc
    ${GRAS_SOURCE_DIR}/tests/qa_gr_hier_block2.cc
    ${GRAS_SOURCE_DIR}/tests/qa_gr_hier_block2_derived.cc
    #${GRAS_SOURCE_DIR}/tests/qa_gr_buffer.cc
    #${GRAS_SOURCE_DIR}/tests/qa_gr_flowgraph.cc
    ${GRAS_SOURCE_DIR}/tests/qa_gr_top_block.cc
    ${GRAS_SOURCE_DIR}/tests/qa_gr_io_signature.cc
    #${GRAS_SOURCE_DIR}/tests/qa_gr_vmcircbuf.cc
    ${GRAS_SOURCE_DIR}/tests/qa_block_tags.cc
    ${GRAS_SOURCE_DIR}/tests/qa_runtime.cc
    #${GRAS_SOURCE_DIR}/tests/qa_set_msg_handler.cc
)

########################################################################
# Find TSBE and add to libs
########################################################################
FIND_PATH(
    TSBE_INCLUDE_DIRS
    NAMES tsbe/config.hpp
    PATHS /usr/local/include
          /usr/include
)

FIND_LIBRARY(
    TSBE_LIBRARIES
    NAMES tsbe
    PATHS /usr/local/lib
          /usr/lib
          /usr/lib64
)

include_directories(${TSBE_INCLUDE_DIRS})
link_directories(${TSBE_LIBRARY_DIRS})

list(APPEND gnuradio_core_libs
    ${TSBE_LIBRARIES}
)

list(APPEND gnuradio_core_libs ${NUMANUMA_LIBRARIES})

########################################################################
# Install runtime headers
########################################################################
file(GLOB runtime_headers "${GRAS_SOURCE_DIR}/include/gnuradio/*")
install(FILES
    ${runtime_headers}
    DESTINATION ${GR_INCLUDE_DIR}/gnuradio
    COMPONENT "core_devel"
)

########################################################################
# Install swig headers
########################################################################
if(ENABLE_PYTHON)
file(GLOB runtime_swigs "${GRAS_SOURCE_DIR}/swig/*.i")
install(FILES
    ${runtime_swigs}
    DESTINATION ${GR_INCLUDE_DIR}/gnuradio/swig
    COMPONENT "core_swig"
)

#makes swig doc generator happy
execute_process(
    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/gnuradio-core/src/lib/runtime/
    COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_BINARY_DIR}/gnuradio-core/src/lib/runtime/nop.h
)

endif(ENABLE_PYTHON)