From 9ff035839eef68eb16e90ae70c3e70dc7f57cae5 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Sun, 3 Jun 2018 16:17:51 +0200 Subject: [PATCH] librtlsdr: fix static build When bumping to version 0.5.4, first patch was wrongly removed. Put back an enhanced version of this patch (sent upstream) Fixes: - http://autobuild.buildroot.net/results/bea78bf580be6fe109b827b72af9587c5324daad Signed-off-by: Fabrice Fontaine Signed-off-by: Thomas Petazzoni --- ...sable_shared_library_target_in_build.patch | 105 ++++++++++++++++++ package/librtlsdr/librtlsdr.mk | 9 ++ 2 files changed, 114 insertions(+) create mode 100644 package/librtlsdr/0001-disable_shared_library_target_in_build.patch diff --git a/package/librtlsdr/0001-disable_shared_library_target_in_build.patch b/package/librtlsdr/0001-disable_shared_library_target_in_build.patch new file mode 100644 index 0000000000..b9f53d2393 --- /dev/null +++ b/package/librtlsdr/0001-disable_shared_library_target_in_build.patch @@ -0,0 +1,105 @@ +From d47e3aed12414be59bf77177c93853ec4b24d705 Mon Sep 17 00:00:00 2001 +From: Fabrice Fontaine +Date: Sat, 2 Jun 2018 16:53:36 +0200 +Subject: [PATCH] disable shared library target in build + +Disable shared library target if BUILD_SHARED_LIBS if OFF. + +Patch retrieved from +https://git.buildroot.net/buildroot/tree/package/librtlsdr/0001-disable_shared_library_target_in_build.patch?h=2018.05 + +Patch has been updated to work with 0.5.4 and to be able to keep current +behavior of building shared and static version of library if +BUILD_SHARED_LIBS and BUILD_STATIC_LIBS are both set. +Moreover, if BUILD_STATIC_LIBS is OFF, only shared version of library +will be install. + +[Upstream status: https://github.com/steve-m/librtlsdr/pull/46] + +Signed-off-by: Yuvaraj Patil +Signed-off-by: Fabrice Fontaine +--- + src/CMakeLists.txt | 24 ++++++++++++++++-------- + 1 file changed, 16 insertions(+), 8 deletions(-) + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 07d64ab..2b7cbae 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -47,16 +47,22 @@ ENDIF(MSVC) + ######################################################################## + # Setup shared library variant + ######################################################################## ++option(BUILD_SHARED_LIBS "Build shared library" ON) ++if(BUILD_SHARED_LIBS) + add_library(rtlsdr_shared SHARED ${rtlsdr_srcs}) + target_link_libraries(rtlsdr_shared ${LIBUSB_LIBRARIES}) + set_target_properties(rtlsdr_shared PROPERTIES DEFINE_SYMBOL "rtlsdr_EXPORTS") + set_target_properties(rtlsdr_shared PROPERTIES OUTPUT_NAME rtlsdr) + set_target_properties(rtlsdr_shared PROPERTIES SOVERSION ${MAJOR_VERSION}) + set_target_properties(rtlsdr_shared PROPERTIES VERSION ${LIBVER}) ++list(APPEND rtlsdr_lib rtlsdr_shared) ++endif() + + ######################################################################## + # Setup static library variant + ######################################################################## ++option(BUILD_STATIC_LIBS "Build static library" ON) ++if(BUILD_STATIC_LIBS) + add_library(rtlsdr_static STATIC ${rtlsdr_srcs}) + target_link_libraries(rtlsdr_static ${LIBUSB_LIBRARIES}) + set_property(TARGET rtlsdr_static APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" ) +@@ -64,6 +70,8 @@ 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() ++list(APPEND rtlsdr_lib rtlsdr_static) ++endif() + + ######################################################################## + # Setup libraries used in executables +@@ -91,33 +99,33 @@ add_executable(rtl_fm rtl_fm.c) + add_executable(rtl_eeprom rtl_eeprom.c) + add_executable(rtl_adsb rtl_adsb.c) + add_executable(rtl_power rtl_power.c) +-set(INSTALL_TARGETS rtlsdr_shared rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power) ++set(INSTALL_TARGETS ${rtlsdr_lib} rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power) + +-target_link_libraries(rtl_sdr rtlsdr_shared convenience_static ++target_link_libraries(rtl_sdr ${rtlsdr_lib} convenience_static + ${LIBUSB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) +-target_link_libraries(rtl_tcp rtlsdr_shared convenience_static ++target_link_libraries(rtl_tcp ${rtlsdr_lib} convenience_static + ${LIBUSB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) +-target_link_libraries(rtl_test rtlsdr_shared convenience_static ++target_link_libraries(rtl_test ${rtlsdr_lib} convenience_static + ${LIBUSB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) +-target_link_libraries(rtl_fm rtlsdr_shared convenience_static ++target_link_libraries(rtl_fm ${rtlsdr_lib} convenience_static + ${LIBUSB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) +-target_link_libraries(rtl_eeprom rtlsdr_shared convenience_static ++target_link_libraries(rtl_eeprom ${rtlsdr_lib} convenience_static + ${LIBUSB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) +-target_link_libraries(rtl_adsb rtlsdr_shared convenience_static ++target_link_libraries(rtl_adsb ${rtlsdr_lib} convenience_static + ${LIBUSB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) +-target_link_libraries(rtl_power rtlsdr_shared convenience_static ++target_link_libraries(rtl_power ${rtlsdr_lib} convenience_static + ${LIBUSB_LIBRARIES} + ${CMAKE_THREAD_LIBS_INIT} + ) +-- +2.14.1 + diff --git a/package/librtlsdr/librtlsdr.mk b/package/librtlsdr/librtlsdr.mk index 02b3d31fd9..ba8a1af104 100644 --- a/package/librtlsdr/librtlsdr.mk +++ b/package/librtlsdr/librtlsdr.mk @@ -11,6 +11,15 @@ LIBRTLSDR_LICENSE_FILES = COPYING LIBRTLSDR_INSTALL_STAGING = YES LIBRTLSDR_DEPENDENCIES = libusb +# BUILD_SHARED_LIBS is handled in pkg-cmake.mk as it is a generic cmake variable +ifeq ($(BR2_STATIC_LIBS),y) +LIBRTLSDR_CONF_OPTS += -DBUILD_STATIC_LIBS=ON +else ifeq ($(BR2_SHARED_STATIC_LIBS),y) +LIBRTLSDRCONF_OPTS += -DBUILD_STATIC_LIBS=ON +else ifeq ($(BR2_SHARED_LIBS),y) +LIBRTLSDR_CONF_OPTS += -DBUILD_STATIC_LIBS=OFF +endif + ifeq ($(BR2_PACKAGE_HAS_UDEV),y) LIBRTLSDR_CONF_OPTS += -DINSTALL_UDEV_RULES=ON endif -- 2.30.2