forked from mossmann/gnuradio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFindUHD.cmake
85 lines (65 loc) · 2.14 KB
/
FindUHD.cmake
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
########################################################################
# Find the library for the USRP Hardware Driver
########################################################################
# make this file non-reentrant
if(__INCLUDED_FIND_UHD_CMAKE)
return()
endif()
set(__INCLUDED_FIND_UHD_CMAKE TRUE)
# First check to see if UHD installed its own CMake files
# save the current MODULE path
set(SAVED_CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH})
# clear the current MODULE path; uses system paths only
unset(CMAKE_MODULE_PATH)
# try to find UHD via the provided parameters,
# handle REQUIRED internally later
unset(UHD_FOUND)
# was the version specified?
unset(LOCAL_UHD_FIND_VERSION)
if(UHD_FIND_VERSION)
set(LOCAL_UHD_FIND_VERSION ${UHD_FIND_VERSION})
endif(UHD_FIND_VERSION)
# was EXACT specified?
unset(LOCAL_UHD_FIND_VERSION_EXACT)
if(UHD_FIND_VERSION_EXACT)
set(LOCAL_UHD_FIND_VERSION_EXACT "EXACT")
endif(UHD_FIND_VERSION_EXACT)
# try to find UHDConfig using the desired parameters;
# UHDConfigVersion will catch a pass-through version bug ...
find_package(
UHD ${LOCAL_UHD_FIND_VERSION}
${LOCAL_UHD_FIND_VERSION_EXACT} QUIET
)
# restore CMAKE_MODULE_PATH
set(CMAKE_MODULE_PATH ${SAVED_CMAKE_MODULE_PATH})
# check if UHD was found above
if(NOT UHD_FOUND)
# Not found; try the "old" method (not as robust)
include(FindPkgConfig)
pkg_check_modules(PC_UHD uhd)
find_path(
UHD_INCLUDE_DIRS
NAMES uhd/config.hpp
HINTS $ENV{UHD_DIR}/include
${PC_UHD_INCLUDEDIR}
PATHS /usr/local/include
/usr/include
)
find_library(
UHD_LIBRARIES
NAMES uhd
HINTS $ENV{UHD_DIR}/lib
${PC_UHD_LIBDIR}
PATHS /usr/local/lib
/usr/lib
)
endif(NOT UHD_FOUND)
if(UHD_LIBRARIES AND UHD_INCLUDE_DIRS)
# if UHDConfig set UHD_FOUND==TRUE, then these have already been
# done, but done quietly. It does not hurt to redo them here.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(UHD DEFAULT_MSG UHD_LIBRARIES UHD_INCLUDE_DIRS)
mark_as_advanced(UHD_LIBRARIES UHD_INCLUDE_DIRS)
elseif(UHD_FIND_REQUIRED)
message(FATAL_ERROR "UHD is required, but was not found.")
endif()