Skip to content

Commit e495946

Browse files
committed
libbladeRF: added cmake find_package() support
Fixes #418
1 parent 0c611be commit e495946

File tree

3 files changed

+87
-0
lines changed

3 files changed

+87
-0
lines changed

host/libraries/libbladeRF/CMakeLists.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ project(libbladeRF C)
99
set(VERSION_INFO_MAJOR 2)
1010
set(VERSION_INFO_MINOR 5)
1111
set(VERSION_INFO_PATCH 0)
12+
set(LIBBLADERF_VERSION
13+
${VERSION_INFO_MAJOR}.${VERSION_INFO_MINOR}.${VERSION_INFO_PATCH})
14+
1215

1316
if(NOT DEFINED VERSION_INFO_EXTRA)
1417
set(VERSION_INFO_EXTRA "git")
@@ -522,6 +525,26 @@ install(TARGETS libbladerf_shared
522525
RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR} # .dll
523526
)
524527

528+
# ###############################################################################
529+
# CMake Config Files
530+
# ###############################################################################
531+
configure_file(
532+
${PROJECT_SOURCE_DIR}/cmake/libbladeRFConfigVersion.cmake.in
533+
${PROJECT_BINARY_DIR}/bladeRFConfigVersion.cmake @ONLY)
534+
535+
configure_file(
536+
${PROJECT_SOURCE_DIR}/cmake/libbladeRFConfig.cmake.in
537+
${PROJECT_BINARY_DIR}/bladeRFConfig.cmake @ONLY)
538+
539+
set(cmake_files
540+
${PROJECT_BINARY_DIR}/bladeRFConfig.cmake
541+
${PROJECT_BINARY_DIR}/bladeRFConfigVersion.cmake)
542+
543+
if(UNIX)
544+
install(FILES ${cmake_files} DESTINATION share/cmake/bladeRF)
545+
elseif(WIN32)
546+
install(FILES ${cmake_files} DESTINATION cmake)
547+
endif()
525548

526549
################################################################################
527550
# Informational output
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
if(DEFINED INCLUDED_LIBBLADERF_CONFIG_CMAKE)
2+
return()
3+
endif()
4+
5+
set(INCLUDED_LIBBLADERF_CONFIG_CMAKE TRUE)
6+
7+
# #######################################################################
8+
# libbladeRFConfig - cmake project configuration
9+
#
10+
# The following will be set after find_package(libbladeRF CONFIG):
11+
# libbladeRF_LIBRARIES - development libraries
12+
# libbladeRF_INCLUDE_DIRS - development includes
13+
# #######################################################################
14+
15+
# #######################################################################
16+
# # installation root
17+
# #######################################################################
18+
if(UNIX)
19+
get_filename_component(LIBBLADERF_ROOT "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
20+
elseif(WIN32)
21+
get_filename_component(LIBBLADERF_ROOT "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
22+
endif()
23+
24+
# #######################################################################
25+
# # locate the library
26+
# #######################################################################
27+
find_library(
28+
LIBBLADERF_LIBRARY bladeRF
29+
PATHS ${LIBBLADERF_ROOT}/lib${LIB_SUFFIX}
30+
PATH_SUFFIXES ${CMAKE_LIBRARY_ARCHITECTURE}
31+
NO_DEFAULT_PATH
32+
)
33+
34+
if(NOT LIBBLADERF_LIBRARY)
35+
message(FATAL_ERROR "cannot find libbladeRF library in ${LIBBLADERF_ROOT}/lib${LIB_SUFFIX}")
36+
endif()
37+
38+
set(libbladeRF_LIBRARIES ${LIBBLADERF_LIBRARY})
39+
40+
# #######################################################################
41+
# # locate the includes
42+
# #######################################################################
43+
find_path(
44+
LIBBLADERF_INCLUDE_DIR libbladeRF.h
45+
PATHS ${LIBBLADERF_ROOT}/include
46+
NO_DEFAULT_PATH
47+
)
48+
49+
if(NOT LIBBLADERF_INCLUDE_DIR)
50+
message(FATAL_ERROR "cannot find libbladeRF includes in ${LIBBLADERF_ROOT}/include/libbladeRF")
51+
endif()
52+
53+
set(libbladeRF_INCLUDE_DIRS ${LIBBLADERF_INCLUDE_DIR})
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
set(PACKAGE_VERSION "@LIBBLADERF_VERSION@")
2+
3+
# Check whether the requested PACKAGE_FIND_VERSION is compatible
4+
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
5+
set(PACKAGE_VERSION_COMPATIBLE FALSE)
6+
else()
7+
set(PACKAGE_VERSION_COMPATIBLE TRUE)
8+
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
9+
set(PACKAGE_VERSION_EXACT TRUE)
10+
endif()
11+
endif()

0 commit comments

Comments
 (0)