Skip to content

Commit a3a2cda

Browse files
dg0ytsourcefrog
andauthored
[rtlsdr] Update to 2.0.2, cleanup (#43042)
Co-authored-by: Martin Pool <mbp@sourcefrog.net>
1 parent 06058fe commit a3a2cda

15 files changed

+309
-151
lines changed

ports/rtlsdr/Compile-with-msvc.patch

Lines changed: 0 additions & 88 deletions
This file was deleted.

ports/rtlsdr/Findlibusb.cmake

Lines changed: 0 additions & 17 deletions
This file was deleted.

ports/rtlsdr/dependencies.diff

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 1ff6c9a..95c335c 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -73,6 +73,7 @@ if(PKG_CONFIG_FOUND)
6+
pkg_check_modules(LIBUSB libusb-1.0 IMPORTED_TARGET)
7+
if(LIBUSB_LINK_LIBRARIES)
8+
set(LIBUSB_LIBRARIES "${LIBUSB_LINK_LIBRARIES}")
9+
+ set(LIBUSB_LIBRARY_DIRS "")
10+
endif()
11+
else()
12+
set(LIBUSB_LIBRARIES "" CACHE STRING "manual libusb path")
13+
@@ -80,7 +81,8 @@ else()
14+
endif()
15+
16+
if(MSVC)
17+
- set(THREADS_PTHREADS_LIBRARY "" CACHE STRING "manual pthread-win32 path")
18+
+ find_package(PThreads4W REQUIRED)
19+
+ set(THREADS_PTHREADS_LIBRARY "PThreads4W::PThreads4W" CACHE INTERNAL "")
20+
set(THREADS_PTHREADS_INCLUDE_DIR "" CACHE STRING "manual pthread-win32 includepath")
21+
else()
22+
set(THREADS_PTHREADS_LIBRARY "" CACHE INTERNAL "manual pthread-win32 path")
23+
diff --git a/cmake/rtlsdrConfig.cmake b/cmake/rtlsdrConfig.cmake
24+
index eeff2f3..23702ca 100644
25+
--- a/cmake/rtlsdrConfig.cmake
26+
+++ b/cmake/rtlsdrConfig.cmake
27+
@@ -1,5 +1,7 @@
28+
-include(FindPkgConfig)
29+
-pkg_check_modules(LIBUSB libusb-1.0 IMPORTED_TARGET)
30+
+if(MSVC)
31+
+ include(CMakeFindDependencyMacro)
32+
+ find_dependency(PThreads4W)
33+
+endif()
34+
35+
get_filename_component(RTLSDR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
36+
37+
diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in
38+
index e46519a..92bbddf 100644
39+
--- a/librtlsdr.pc.in
40+
+++ b/librtlsdr.pc.in
41+
@@ -8,4 +8,5 @@ Description: C Utility Library
42+
Version: @VERSION@
43+
Cflags: -I${includedir}/
44+
Libs: -L${libdir} -lrtlsdr
45+
-Libs.private: -lusb-1.0 @RTLSDR_PC_LIBS@
46+
+Libs.private: @RTLSDR_PC_LIBS@
47+
+Requires.private: libusb-1.0
48+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
49+
index a2bcb3d..ecc3c90 100644
50+
--- a/src/CMakeLists.txt
51+
+++ b/src/CMakeLists.txt
52+
@@ -38,7 +38,7 @@ generate_export_header(rtlsdr)
53+
########################################################################
54+
add_library(rtlsdr_static STATIC librtlsdr.c
55+
tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c)
56+
-target_link_libraries(rtlsdr ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY})
57+
+target_link_libraries(rtlsdr_static ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY})
58+
target_include_directories(rtlsdr_static PUBLIC
59+
$<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
60+
$<INSTALL_INTERFACE:include> # <prefix>/include

ports/rtlsdr/fix-version.patch

Lines changed: 0 additions & 15 deletions
This file was deleted.

ports/rtlsdr/library-linkage.diff

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in
2+
index 92bbddf..20a2735 100644
3+
--- a/librtlsdr.pc.in
4+
+++ b/librtlsdr.pc.in
5+
@@ -7,6 +7,7 @@ Name: RTL-SDR Library
6+
Description: C Utility Library
7+
Version: @VERSION@
8+
Cflags: -I${includedir}/
9+
+Cflags.private: -Drtlsdr_STATIC
10+
Libs: -L${libdir} -lrtlsdr
11+
Libs.private: @RTLSDR_PC_LIBS@
12+
Requires.private: libusb-1.0
13+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
14+
index 3c02e6c..e6585ee 100644
15+
--- a/src/CMakeLists.txt
16+
+++ b/src/CMakeLists.txt
17+
@@ -45,12 +45,11 @@ target_include_directories(rtlsdr_static PUBLIC
18+
${LIBUSB_INCLUDE_DIRS}
19+
${THREADS_PTHREADS_INCLUDE_DIR}
20+
)
21+
-set_property(TARGET rtlsdr_static APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
22+
+target_compile_definitions(rtlsdr_static PUBLIC "rtlsdr_STATIC")
23+
if(NOT WIN32)
24+
# Force same library filename for static and shared variants of the library
25+
set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr)
26+
endif()
27+
-generate_export_header(rtlsdr_static)
28+
29+
########################################################################
30+
# Set up Windows DLL resource files
31+
@@ -66,6 +65,14 @@ IF(MSVC)
32+
target_sources(rtlsdr_static PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/rtlsdr.rc)
33+
ENDIF(MSVC)
34+
35+
+if(BUILD_SHARED_LIBS)
36+
+ set(rtlsdr_target rtlsdr)
37+
+ set_target_properties(rtlsdr_static PROPERTIES EXCLUDE_FROM_ALL 1)
38+
+else()
39+
+ set(rtlsdr_target rtlsdr_static)
40+
+ set_target_properties(rtlsdr PROPERTIES EXCLUDE_FROM_ALL 1)
41+
+endif()
42+
+
43+
########################################################################
44+
# Setup libraries used in executables
45+
########################################################################
46+
@@ -79,7 +86,7 @@ add_library(libgetopt_static STATIC
47+
getopt/getopt.c
48+
)
49+
target_link_libraries(convenience_static
50+
- rtlsdr
51+
+ ${rtlsdr_target}
52+
)
53+
endif()
54+
55+
@@ -96,6 +103,10 @@ add_executable(rtl_power rtl_power.c)
56+
add_executable(rtl_biast rtl_biast.c)
57+
set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
58+
59+
+foreach(executable IN ITEMS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
60+
+ target_link_libraries(${executable} convenience_static ${rtlsdr_target} ${THREADS_PTHREADS_LIBRARY})
61+
+endforeach()
62+
+if(0)
63+
target_link_libraries(rtl_sdr rtlsdr convenience_static
64+
${LIBUSB_LIBRARIES}
65+
${CMAKE_THREAD_LIBS_INIT}
66+
@@ -128,6 +139,7 @@ target_link_libraries(rtl_biast rtlsdr convenience_static
67+
${LIBUSB_LIBRARIES}
68+
${CMAKE_THREAD_LIBS_INIT}
69+
)
70+
+endif(0)
71+
if(UNIX)
72+
target_link_libraries(rtl_fm m)
73+
target_link_libraries(rtl_adsb m)
74+
@@ -148,6 +160,7 @@ target_link_libraries(rtl_eeprom libgetopt_static)
75+
target_link_libraries(rtl_adsb libgetopt_static)
76+
target_link_libraries(rtl_power libgetopt_static)
77+
target_link_libraries(rtl_biast libgetopt_static)
78+
+if(0)
79+
set_property(TARGET rtl_sdr APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
80+
set_property(TARGET rtl_tcp APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
81+
set_property(TARGET rtl_test APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
82+
@@ -156,16 +169,12 @@ set_property(TARGET rtl_eeprom APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATI
83+
set_property(TARGET rtl_adsb APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
84+
set_property(TARGET rtl_power APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
85+
set_property(TARGET rtl_biast APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
86+
+endif(0)
87+
endif()
88+
########################################################################
89+
# Install built library files & utilities
90+
########################################################################
91+
-install(TARGETS rtlsdr EXPORT RTLSDR-export
92+
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file
93+
- )
94+
-install(TARGETS rtlsdr_static EXPORT RTLSDR-export
95+
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file
96+
- )
97+
+install(TARGETS ${rtlsdr_target} EXPORT RTLSDR-export)
98+
install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast
99+
DESTINATION ${CMAKE_INSTALL_BINDIR}
100+
)

ports/rtlsdr/portfile.cmake

Lines changed: 30 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,50 @@
11
vcpkg_from_github(
22
OUT_SOURCE_PATH SOURCE_PATH
33
REPO osmocom/rtl-sdr
4-
REF d794155ba65796a76cd0a436f9709f4601509320
5-
SHA512 21fe10f1dbecca651650f03d1008560930fac439d220c33b4a23acce98d78d8476ff200765eed8cfa6cddde761d45f7ba36c8b5bc3662aa85819172830ea4938
4+
REF v${VERSION}
5+
SHA512 20a1630df7d4da5d263c5ffd4d83a7c2a6fc674e3838bf02b2b59c1da8d946dafc48790d410ab2fcbc0362c2ac70e5cdcae9391c5f04803bf2cdddafd6f58483
66
HEAD_REF master
77
PATCHES
8-
Compile-with-msvc.patch
9-
fix-version.patch
8+
dependencies.diff
9+
library-linkage.diff
10+
tools.diff
1011
)
1112

12-
file(
13-
COPY "${CMAKE_CURRENT_LIST_DIR}/Findlibusb.cmake"
14-
DESTINATION "${SOURCE_PATH}/cmake/Modules"
13+
vcpkg_check_features(OUT_FEATURE_OPTIONS options
14+
FEATURES
15+
tools BUILD_TOOLS
1516
)
1617

18+
vcpkg_find_acquire_program(PKGCONFIG)
19+
1720
vcpkg_cmake_configure(
1821
SOURCE_PATH "${SOURCE_PATH}"
22+
OPTIONS
23+
${options}
24+
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
25+
"-DCMAKE_REQUIRE_FIND_PACKAGE_PkgConfig=1"
26+
"-DCMAKE_DISABLE_FIND_PACKAGE_Git=1"
27+
OPTIONS_DEBUG
28+
-DBUILD_TOOLS=OFF
1929
)
2030

2131
vcpkg_cmake_install()
2232
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/rtlsdr)
2333
vcpkg_copy_pdbs()
34+
vcpkg_fixup_pkgconfig()
2435

25-
file(
26-
INSTALL "${SOURCE_PATH}/COPYING"
27-
DESTINATION "${CURRENT_PACKAGES_DIR}/share/rtlsdr"
28-
RENAME copyright
29-
)
36+
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
37+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/librtlsdr.pc" " -lrtlsdr" " -lrtlsdr_static")
38+
if(NOT VCPKG_BUILD_TYPE)
39+
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/librtlsdr.pc" " -lrtlsdr" " -lrtlsdr_static")
40+
endif()
41+
endif()
42+
43+
if("tools" IN_LIST FEATURES)
44+
vcpkg_copy_tools(TOOL_NAMES rtl_adsb rtl_biast rtl_eeprom rtl_fm rtl_power rtl_sdr rtl_tcp rtl_test AUTO_CLEAN)
45+
endif()
3046

3147
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
3248

33-
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
34-
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
35-
else()
36-
file(GLOB DEBUG_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe")
37-
file(GLOB RELEASE_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe")
38-
file(
39-
INSTALL ${RELEASE_TOOLS}
40-
DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}"
41-
)
42-
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}")
43-
file(REMOVE ${DEBUG_TOOLS} ${RELEASE_TOOLS})
44-
endif()
49+
file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
50+
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")

ports/rtlsdr/tools.diff

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
2+
index 18c3821..52f4991 100644
3+
--- a/src/CMakeLists.txt
4+
+++ b/src/CMakeLists.txt
5+
@@ -103,8 +103,12 @@ add_executable(rtl_power rtl_power.c)
6+
add_executable(rtl_biast rtl_biast.c)
7+
set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
8+
9+
+option(BUILD_TOOLS "Build tools" ON)
10+
foreach(executable IN ITEMS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
11+
target_link_libraries(${executable} convenience_static ${rtlsdr_target} ${THREADS_PTHREADS_LIBRARY})
12+
+ if(NOT BUILD_TOOLS)
13+
+ set_target_properties(${executable} PROPERTIES EXCLUDE_FROM_ALL 1)
14+
+ endif()
15+
endforeach()
16+
if(0)
17+
target_link_libraries(rtl_sdr rtlsdr convenience_static
18+
@@ -175,6 +179,8 @@ endif()
19+
# Install built library files & utilities
20+
########################################################################
21+
install(TARGETS ${rtlsdr_target} EXPORT RTLSDR-export)
22+
+if(BUILD_TOOLS)
23+
install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast
24+
DESTINATION ${CMAKE_INSTALL_BINDIR}
25+
)
26+
+endif()

ports/rtlsdr/usage

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
rtlsdr provides CMake targets:
2+
3+
find_package(rtlsdr CONFIG REQUIRED)
4+
target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:rtlsdr::rtlsdr>,rtlsdr::rtlsdr,rtlsdr::rtlsdr_static>)
5+
6+
rtlsdr provides pkg-config modules:
7+
8+
# C Utility Library
9+
librtlsdr

0 commit comments

Comments
 (0)