aboutsummaryrefslogtreecommitdiffstats
path: root/host/utils/CMakeLists.txt
blob: 58eb842e1fe859ab546134d9ec61ae0eaeee128b (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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
#
# Copyright 2010-2015 Ettus Research LLC
# Copyright 2018 Ettus Research, a National Instruments Company
#
# SPDX-License-Identifier: GPL-3.0-or-later
#

########################################################################
# Utilities that get installed into the runtime path
########################################################################
set(util_runtime_sources
    uhd_config_info.cpp
    uhd_find_devices.cpp
    uhd_usrp_probe.cpp
    uhd_image_loader.cpp
    uhd_cal_rx_iq_balance.cpp
    uhd_cal_tx_dc_offset.cpp
    uhd_cal_tx_iq_balance.cpp
)

#for each source: build an executable and install
foreach(util_source ${util_runtime_sources})
    get_filename_component(util_name ${util_source} NAME_WE)
    add_executable(${util_name} ${util_source})
    target_link_libraries(${util_name} uhd ${Boost_LIBRARIES})
    UHD_INSTALL(TARGETS ${util_name} RUNTIME DESTINATION ${RUNTIME_DIR} COMPONENT utilities)
endforeach(util_source)

########################################################################
# Utilities that get installed into the share path
########################################################################
set(util_share_sources
    converter_benchmark.cpp
    query_gpsdo_sensors.cpp
    usrp_burn_db_eeprom.cpp
    usrp_burn_mb_eeprom.cpp
)
set(util_share_sources_py
    converter_benchmark.py
)
if(ENABLE_USB)
    list(APPEND util_share_sources
        fx2_init_eeprom.cpp
    )
    include_directories(${LIBUSB_INCLUDE_DIRS})
    if(ENABLE_B200)
        list(APPEND util_share_sources
            b2xx_fx3_utils.cpp
        )
        # Additional include directories for b2xx_fx3_utils
        include_directories(
            ${CMAKE_CURRENT_SOURCE_DIR}/../lib/include
            ${CMAKE_CURRENT_SOURCE_DIR}/../lib/usrp/b200
            ${CMAKE_CURRENT_SOURCE_DIR}/../lib/usrp/common
            ${CMAKE_CURRENT_SOURCE_DIR}/../lib/usrp/common/ad9361_driver
        )
    endif(ENABLE_B200)
endif(ENABLE_USB)
if(ENABLE_OCTOCLOCK)
    list(APPEND util_share_sources
        octoclock_burn_eeprom.cpp
    )
endif(ENABLE_OCTOCLOCK)

if(LINUX AND ENABLE_USB)
    UHD_INSTALL(FILES
        uhd-usrp.rules
        DESTINATION ${PKG_LIB_DIR}/utils
        COMPONENT utilities
    )
endif(LINUX AND ENABLE_USB)

#for each source: build an executable and install
foreach(util_source ${util_share_sources})
    get_filename_component(util_name ${util_source} NAME_WE)
    add_executable(${util_name} ${util_source})
    target_link_libraries(${util_name} uhd ${Boost_LIBRARIES})
    UHD_INSTALL(TARGETS ${util_name} RUNTIME DESTINATION ${PKG_LIB_DIR}/utils COMPONENT utilities)
endforeach(util_source)
foreach(util_source ${util_share_sources_py})
    UHD_INSTALL(PROGRAMS
        ${CMAKE_CURRENT_SOURCE_DIR}/${util_source}
        DESTINATION ${PKG_LIB_DIR}/utils
        COMPONENT utilities
    )
endforeach(util_source)

#UHD images downloader configuration
file(READ ${CMAKE_CURRENT_SOURCE_DIR}/../../images/manifest.txt CMAKE_MANIFEST_CONTENTS)
configure_file(
    ${CMAKE_CURRENT_SOURCE_DIR}/uhd_images_downloader.py.in
    ${CMAKE_CURRENT_BINARY_DIR}/uhd_images_downloader.py
@ONLY)
# TODO: FIXME when know how.
# This is a hack to force cmake regenerate uhd_images_downloader.py
# whenever manifest.txt file changed.
configure_file(
    ${CMAKE_CURRENT_SOURCE_DIR}/../../images/manifest.txt
    ${CMAKE_CURRENT_SOURCE_DIR}/../../images/manifest.txt
COPYONLY)

UHD_INSTALL(PROGRAMS
    ${CMAKE_CURRENT_BINARY_DIR}/uhd_images_downloader.py
    DESTINATION ${PKG_LIB_DIR}/utils
    COMPONENT utilities
)
if(LINUX)
    UHD_INSTALL(PROGRAMS
        ${CMAKE_CURRENT_BINARY_DIR}/uhd_images_downloader.py
        RENAME uhd_images_downloader
        DESTINATION ${RUNTIME_DIR}
        COMPONENT utilities
    )
endif(LINUX)
if(NOT HAVE_PYTHON_MODULE_REQUESTS)
    message(WARNING "Python module `requests' not found -- uhd_images_downloader.py will not work without it.")
    message(WARNING "You may be able to install this by running 'pip install requests'")
endif(NOT HAVE_PYTHON_MODULE_REQUESTS)

if(ENABLE_USRP2)
    set(burners
        usrp2_card_burner.py
    )

    if(WIN32 AND UHD_RELEASE_MODE) #include dd.exe
        file(DOWNLOAD
            "http://files.ettus.com/dd.exe"
            ${CMAKE_CURRENT_BINARY_DIR}/dd.exe
        )
        UHD_INSTALL(FILES
            ${CMAKE_CURRENT_BINARY_DIR}/dd.exe
            DESTINATION ${PKG_LIB_DIR}/utils
            COMPONENT utilities
        )
    endif(WIN32 AND UHD_RELEASE_MODE)
    if(LINUX)
        UHD_INSTALL(PROGRAMS
            usrp2_recovery.py
            DESTINATION ${PKG_LIB_DIR}/utils
            COMPONENT utilities
        )
        UHD_INSTALL(PROGRAMS
            usrp2_card_burner.py
            RENAME usrp2_card_burner
            DESTINATION ${RUNTIME_DIR}
            COMPONENT utilities
        )
    endif(LINUX)
    foreach(burner ${burners})
        UHD_INSTALL(PROGRAMS
            ${burner}
            DESTINATION ${PKG_LIB_DIR}/utils
            COMPONENT utilities
        )
    endforeach(burner ${burners})

endif(ENABLE_USRP2)

########################################################################
# Other files that are not utilities or executables
########################################################################
if(WIN32)
    set(windows_extra_files
        FastSendDatagramThreshold.reg
    )
    UHD_INSTALL(
        FILES ${windows_extra_files}
        DESTINATION ${PKG_DATA_DIR}
        COMPONENT utilities
    )
endif(WIN32)

add_subdirectory(latency)