aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/rtlsdr
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/rtlsdr')
-rw-r--r--vcpkg/ports/rtlsdr/dependencies.diff60
-rw-r--r--vcpkg/ports/rtlsdr/library-linkage.diff100
-rw-r--r--vcpkg/ports/rtlsdr/portfile.cmake50
-rw-r--r--vcpkg/ports/rtlsdr/tools.diff26
-rw-r--r--vcpkg/ports/rtlsdr/usage9
-rw-r--r--vcpkg/ports/rtlsdr/vcpkg.json30
6 files changed, 275 insertions, 0 deletions
diff --git a/vcpkg/ports/rtlsdr/dependencies.diff b/vcpkg/ports/rtlsdr/dependencies.diff
new file mode 100644
index 0000000..5680930
--- /dev/null
+++ b/vcpkg/ports/rtlsdr/dependencies.diff
@@ -0,0 +1,60 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1ff6c9a..95c335c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -73,6 +73,7 @@ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(LIBUSB libusb-1.0 IMPORTED_TARGET)
+ if(LIBUSB_LINK_LIBRARIES)
+ set(LIBUSB_LIBRARIES "${LIBUSB_LINK_LIBRARIES}")
++ set(LIBUSB_LIBRARY_DIRS "")
+ endif()
+ else()
+ set(LIBUSB_LIBRARIES "" CACHE STRING "manual libusb path")
+@@ -80,7 +81,8 @@ else()
+ endif()
+
+ if(MSVC)
+- set(THREADS_PTHREADS_LIBRARY "" CACHE STRING "manual pthread-win32 path")
++ find_package(PThreads4W REQUIRED)
++ set(THREADS_PTHREADS_LIBRARY "PThreads4W::PThreads4W" CACHE INTERNAL "")
+ set(THREADS_PTHREADS_INCLUDE_DIR "" CACHE STRING "manual pthread-win32 includepath")
+ else()
+ set(THREADS_PTHREADS_LIBRARY "" CACHE INTERNAL "manual pthread-win32 path")
+diff --git a/cmake/rtlsdrConfig.cmake b/cmake/rtlsdrConfig.cmake
+index eeff2f3..23702ca 100644
+--- a/cmake/rtlsdrConfig.cmake
++++ b/cmake/rtlsdrConfig.cmake
+@@ -1,5 +1,7 @@
+-include(FindPkgConfig)
+-pkg_check_modules(LIBUSB libusb-1.0 IMPORTED_TARGET)
++if(MSVC)
++ include(CMakeFindDependencyMacro)
++ find_dependency(PThreads4W)
++endif()
+
+ get_filename_component(RTLSDR_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+
+diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in
+index e46519a..92bbddf 100644
+--- a/librtlsdr.pc.in
++++ b/librtlsdr.pc.in
+@@ -8,4 +8,5 @@ Description: C Utility Library
+ Version: @VERSION@
+ Cflags: -I${includedir}/
+ Libs: -L${libdir} -lrtlsdr
+-Libs.private: -lusb-1.0 @RTLSDR_PC_LIBS@
++Libs.private: @RTLSDR_PC_LIBS@
++Requires.private: libusb-1.0
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index a2bcb3d..ecc3c90 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -38,7 +38,7 @@ generate_export_header(rtlsdr)
+ ########################################################################
+ add_library(rtlsdr_static STATIC librtlsdr.c
+ tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c)
+-target_link_libraries(rtlsdr ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY})
++target_link_libraries(rtlsdr_static ${LIBUSB_LIBRARIES} ${THREADS_PTHREADS_LIBRARY})
+ target_include_directories(rtlsdr_static PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_SOURCE_DIR}/include>
+ $<INSTALL_INTERFACE:include> # <prefix>/include
diff --git a/vcpkg/ports/rtlsdr/library-linkage.diff b/vcpkg/ports/rtlsdr/library-linkage.diff
new file mode 100644
index 0000000..79fd14d
--- /dev/null
+++ b/vcpkg/ports/rtlsdr/library-linkage.diff
@@ -0,0 +1,100 @@
+diff --git a/librtlsdr.pc.in b/librtlsdr.pc.in
+index 92bbddf..20a2735 100644
+--- a/librtlsdr.pc.in
++++ b/librtlsdr.pc.in
+@@ -7,6 +7,7 @@ Name: RTL-SDR Library
+ Description: C Utility Library
+ Version: @VERSION@
+ Cflags: -I${includedir}/
++Cflags.private: -Drtlsdr_STATIC
+ Libs: -L${libdir} -lrtlsdr
+ Libs.private: @RTLSDR_PC_LIBS@
+ Requires.private: libusb-1.0
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 3c02e6c..e6585ee 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -45,12 +45,11 @@ target_include_directories(rtlsdr_static PUBLIC
+ ${LIBUSB_INCLUDE_DIRS}
+ ${THREADS_PTHREADS_INCLUDE_DIR}
+ )
+-set_property(TARGET rtlsdr_static APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
++target_compile_definitions(rtlsdr_static PUBLIC "rtlsdr_STATIC")
+ if(NOT WIN32)
+ # Force same library filename for static and shared variants of the library
+ set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr)
+ endif()
+-generate_export_header(rtlsdr_static)
+
+ ########################################################################
+ # Set up Windows DLL resource files
+@@ -66,6 +65,14 @@ IF(MSVC)
+ target_sources(rtlsdr_static PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/rtlsdr.rc)
+ ENDIF(MSVC)
+
++if(BUILD_SHARED_LIBS)
++ set(rtlsdr_target rtlsdr)
++ set_target_properties(rtlsdr_static PROPERTIES EXCLUDE_FROM_ALL 1)
++else()
++ set(rtlsdr_target rtlsdr_static)
++ set_target_properties(rtlsdr PROPERTIES EXCLUDE_FROM_ALL 1)
++endif()
++
+ ########################################################################
+ # Setup libraries used in executables
+ ########################################################################
+@@ -79,7 +86,7 @@ add_library(libgetopt_static STATIC
+ getopt/getopt.c
+ )
+ target_link_libraries(convenience_static
+- rtlsdr
++ ${rtlsdr_target}
+ )
+ endif()
+
+@@ -96,6 +103,10 @@ add_executable(rtl_power rtl_power.c)
+ add_executable(rtl_biast rtl_biast.c)
+ set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
+
++foreach(executable IN ITEMS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
++ target_link_libraries(${executable} convenience_static ${rtlsdr_target} ${THREADS_PTHREADS_LIBRARY})
++endforeach()
++if(0)
+ target_link_libraries(rtl_sdr rtlsdr convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+@@ -128,6 +139,7 @@ target_link_libraries(rtl_biast rtlsdr convenience_static
+ ${LIBUSB_LIBRARIES}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
++endif(0)
+ if(UNIX)
+ target_link_libraries(rtl_fm m)
+ target_link_libraries(rtl_adsb m)
+@@ -148,6 +160,7 @@ target_link_libraries(rtl_eeprom libgetopt_static)
+ target_link_libraries(rtl_adsb libgetopt_static)
+ target_link_libraries(rtl_power libgetopt_static)
+ target_link_libraries(rtl_biast libgetopt_static)
++if(0)
+ set_property(TARGET rtl_sdr APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
+ set_property(TARGET rtl_tcp APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
+ set_property(TARGET rtl_test APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
+@@ -156,16 +169,12 @@ set_property(TARGET rtl_eeprom APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATI
+ set_property(TARGET rtl_adsb APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
+ set_property(TARGET rtl_power APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
+ set_property(TARGET rtl_biast APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
++endif(0)
+ endif()
+ ########################################################################
+ # Install built library files & utilities
+ ########################################################################
+-install(TARGETS rtlsdr EXPORT RTLSDR-export
+- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file
+- )
+-install(TARGETS rtlsdr_static EXPORT RTLSDR-export
+- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file
+- )
++install(TARGETS ${rtlsdr_target} EXPORT RTLSDR-export)
+ install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
+ )
diff --git a/vcpkg/ports/rtlsdr/portfile.cmake b/vcpkg/ports/rtlsdr/portfile.cmake
new file mode 100644
index 0000000..7113c46
--- /dev/null
+++ b/vcpkg/ports/rtlsdr/portfile.cmake
@@ -0,0 +1,50 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO osmocom/rtl-sdr
+ REF v${VERSION}
+ SHA512 20a1630df7d4da5d263c5ffd4d83a7c2a6fc674e3838bf02b2b59c1da8d946dafc48790d410ab2fcbc0362c2ac70e5cdcae9391c5f04803bf2cdddafd6f58483
+ HEAD_REF master
+ PATCHES
+ dependencies.diff
+ library-linkage.diff
+ tools.diff
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS options
+ FEATURES
+ tools BUILD_TOOLS
+)
+
+vcpkg_find_acquire_program(PKGCONFIG)
+
+vcpkg_cmake_configure(
+ SOURCE_PATH "${SOURCE_PATH}"
+ OPTIONS
+ ${options}
+ "-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
+ "-DCMAKE_REQUIRE_FIND_PACKAGE_PkgConfig=1"
+ "-DCMAKE_DISABLE_FIND_PACKAGE_Git=1"
+ OPTIONS_DEBUG
+ -DBUILD_TOOLS=OFF
+)
+
+vcpkg_cmake_install()
+vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/rtlsdr)
+vcpkg_copy_pdbs()
+vcpkg_fixup_pkgconfig()
+
+if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/lib/pkgconfig/librtlsdr.pc" " -lrtlsdr" " -lrtlsdr_static")
+ if(NOT VCPKG_BUILD_TYPE)
+ vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/librtlsdr.pc" " -lrtlsdr" " -lrtlsdr_static")
+ endif()
+endif()
+
+if("tools" IN_LIST FEATURES)
+ vcpkg_copy_tools(TOOL_NAMES rtl_adsb rtl_biast rtl_eeprom rtl_fm rtl_power rtl_sdr rtl_tcp rtl_test AUTO_CLEAN)
+endif()
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+
+file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")
diff --git a/vcpkg/ports/rtlsdr/tools.diff b/vcpkg/ports/rtlsdr/tools.diff
new file mode 100644
index 0000000..e433a36
--- /dev/null
+++ b/vcpkg/ports/rtlsdr/tools.diff
@@ -0,0 +1,26 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 18c3821..52f4991 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -103,8 +103,12 @@ add_executable(rtl_power rtl_power.c)
+ add_executable(rtl_biast rtl_biast.c)
+ set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
+
++option(BUILD_TOOLS "Build tools" ON)
+ foreach(executable IN ITEMS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast)
+ target_link_libraries(${executable} convenience_static ${rtlsdr_target} ${THREADS_PTHREADS_LIBRARY})
++ if(NOT BUILD_TOOLS)
++ set_target_properties(${executable} PROPERTIES EXCLUDE_FROM_ALL 1)
++ endif()
+ endforeach()
+ if(0)
+ target_link_libraries(rtl_sdr rtlsdr convenience_static
+@@ -175,6 +179,8 @@ endif()
+ # Install built library files & utilities
+ ########################################################################
+ install(TARGETS ${rtlsdr_target} EXPORT RTLSDR-export)
++if(BUILD_TOOLS)
+ install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
+ )
++endif()
diff --git a/vcpkg/ports/rtlsdr/usage b/vcpkg/ports/rtlsdr/usage
new file mode 100644
index 0000000..a860885
--- /dev/null
+++ b/vcpkg/ports/rtlsdr/usage
@@ -0,0 +1,9 @@
+rtlsdr provides CMake targets:
+
+ find_package(rtlsdr CONFIG REQUIRED)
+ target_link_libraries(main PRIVATE $<IF:$<TARGET_EXISTS:rtlsdr::rtlsdr>,rtlsdr::rtlsdr,rtlsdr::rtlsdr_static>)
+
+rtlsdr provides pkg-config modules:
+
+ # C Utility Library
+ librtlsdr
diff --git a/vcpkg/ports/rtlsdr/vcpkg.json b/vcpkg/ports/rtlsdr/vcpkg.json
new file mode 100644
index 0000000..f217c15
--- /dev/null
+++ b/vcpkg/ports/rtlsdr/vcpkg.json
@@ -0,0 +1,30 @@
+{
+ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json",
+ "name": "rtlsdr",
+ "version": "2.0.2",
+ "description": "rtl-sdr is a library that turns your Realtek RTL2832 based DVB dongle into a SDR receiver",
+ "homepage": "https://osmocom.org/projects/rtl-sdr",
+ "license": "GPL-2.0-or-later",
+ "supports": "!uwp",
+ "dependencies": [
+ "libusb",
+ {
+ "name": "pthreads",
+ "platform": "windows & !mingw"
+ },
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ },
+ {
+ "name": "vcpkg-cmake-config",
+ "host": true
+ }
+ ],
+ "features": {
+ "tools": {
+ "description": "Build tools",
+ "supports": "!android"
+ }
+ }
+}