summaryrefslogtreecommitdiff
path: root/cmake/Modules/GnuradioConfig.cmake.in
blob: 388cac4e9b77317400ebca66aa5ea415ab23a6a9 (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
# Copyright 2013, 2019 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.

include(CMakeFindDependencyMacro)

# Allows us to use all .cmake files in this directory
list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}")

find_dependency(LOG4CPP)
find_dependency(MPLIB)

set(BOOST_REQUIRED_COMPONENTS
    date_time
    program_options
    filesystem
    system
    regex
    thread
)

set(ENABLE_TESTING @ENABLE_TESTING@ CACHE BOOL "Enable testing support")

if(ENABLE_TESTING)
  list(APPEND BOOST_REQUIRED_COMPONENTS unit_test_framework)
endif(ENABLE_TESTING)

find_dependency(Boost "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@.@Boost_SUBMINOR_VERSION@" COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
find_dependency(Volk)
set(ENABLE_PYTHON @ENABLE_PYTHON@ CACHE BOOL "Enable Python & SWIG")
if(${ENABLE_PYTHON})
  set(PYTHON_EXECUTABLE @PYTHON_EXECUTABLE@)
  set(GR_PYTHON_DIR @GR_PYTHON_DIR@)
  include(GrPython)
endif()

include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-pmtConfig.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-runtimeConfig.cmake")
cmake_policy(SET CMP0012 NEW)
cmake_policy(SET CMP0057 NEW)

#Can't use Python if GNU Radio was built without support for it
if(${ENABLE_PYTHON})
  include("${CMAKE_CURRENT_LIST_DIR}/runtime_swigTargets.cmake")
endif()

# Propagate the enabledness of GRC:
# Since GRC doesn't contain proper CMake targets (yet?), we need to do this
# manually
set(ENABLE_GRC @ENABLE_GRC@ CACHE BOOL "Enable GRC features (export block YAML)")
if(@ENABLE_GRC@)
  set(GRC_BLOCKS_DIR        "@GRC_BLOCKS_DIR@")
endif()
# Same for a few "special" features.
set(GR_PERFORMANCE_COUNTERS @GR_PERFORMANCE_COUNTERS@)
set(GR_CTRLPORT             @GR_CTRLPORT@)
set(GR_RPCSERVER_ENABLED    @GR_RPCSERVER_ENABLED@)
set(ENABLE_CTRLPORT_THRIFT  @ENABLE_CTRLPORT_THRIFT@)
set(GR_RPCSERVER_THRIFT     @GR_RPCSERVER_THRIFT@)

# Propagate global options
set(GR_RUNTIME_DIR          "@GR_RUNTIME_DIR@")
set(GR_LIBRARY_DIR          "@GR_LIBRARY_DIR@")
set(GR_DATA_DIR             "@GR_DATA_DIR@")
set(GR_PKG_DATA_DIR         "@GR_PKG_DATA_DIR@")
set(GR_DOC_DIR              "@GR_DOC_DIR@")
set(GR_PKG_DOC_DIR          "@GR_PKG_DOC_DIR@")
set(GR_LIBEXEC_DIR          "@GR_LIBEXEC_DIR@")
set(GR_PKG_LIBEXEC_DIR      "@GR_PKG_LIBEXEC_DIR@")
set(GR_THEMES_DIR           "@GR_THEMES_DIR@")
set(GR_CONF_DIR             "@GR_CONF_DIR@")
set(SYSCONFDIR              "@SYSCONFDIR@")
set(GR_PREFSDIR             "@GR_PREFSDIR@")


# We check the requested components in the order given by the list below –
# ordering matters; we have module interdependencies.
set(GR_COMPONENTS
  blocks
  fec
  fft
  filter
  analog
  digital
  dtv
  audio
  channels
  qtgui
  trellis
  uhd
  video-sdl
  vocoder
  wavelet
  zeromq
  )

foreach(target ${GR_COMPONENTS})
  if (${target} IN_LIST Gnuradio_FIND_COMPONENTS)
    include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-${target}Config.cmake")
  endif()
endforeach(target)