1From 9a1c2587d4ef18e2026811deabd024eb7577d9ce Mon Sep 17 00:00:00 2001 2From: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> 3Date: Fri, 15 May 2020 16:14:48 +0200 4Subject: [PATCH] disable shared library target in build 5 6Disable shared library target if BUILD_SHARED_LIBS if OFF. 7 8Patch retrieved from 9https://git.buildroot.net/buildroot/tree/package/librtlsdr/0001-disable_shared_library_target_in_build.patch?h=2020.02.x 10 11Patch has been updated to work with master and to be able to keep current 12behavior of building shared and static version of library if 13BUILD_SHARED_LIBS and BUILD_STATIC_LIBS are both set. 14Moreover, if BUILD_STATIC_LIBS is OFF, only shared version of library 15will be install. 16 17[Upstream status: http://lists.osmocom.org/pipermail/osmocom-sdr/2020-May/002075.html] 18 19Signed-off-by: Yuvaraj Patil <yuvaraj.patil@wipro.com> 20Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 21Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com> 22Signed-off-by: Titouan Christophe <titouan.christophe@railnova.eu> 23--- 24 src/CMakeLists.txt | 30 +++++++++++++++++++++--------- 25 1 file changed, 21 insertions(+), 9 deletions(-) 26 27diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt 28index de93044..13b7b1a 100644 29--- a/src/CMakeLists.txt 30+++ b/src/CMakeLists.txt 31@@ -18,6 +18,8 @@ 32 ######################################################################## 33 # Setup shared library variant 34 ######################################################################## 35+option(BUILD_SHARED_LIBS "Build shared library" ON) 36+if(BUILD_SHARED_LIBS) 37 add_library(rtlsdr SHARED librtlsdr.c 38 tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c) 39 target_link_libraries(rtlsdr PkgConfig::LIBUSB) 40@@ -30,10 +32,14 @@ set_target_properties(rtlsdr PROPERTIES OUTPUT_NAME rtlsdr) 41 set_target_properties(rtlsdr PROPERTIES SOVERSION ${MAJOR_VERSION}) 42 set_target_properties(rtlsdr PROPERTIES VERSION ${LIBVER}) 43 generate_export_header(rtlsdr) 44+list(APPEND rtlsdr_lib rtlsdr) 45+endif() 46 47 ######################################################################## 48 # Setup static library variant 49 ######################################################################## 50+option(BUILD_STATIC_LIBS "Build static library" ON) 51+if(BUILD_STATIC_LIBS) 52 add_library(rtlsdr_static STATIC librtlsdr.c 53 tuner_e4k.c tuner_fc0012.c tuner_fc0013.c tuner_fc2580.c tuner_r82xx.c) 54 target_link_libraries(rtlsdr_static PkgConfig::LIBUSB) 55@@ -47,6 +53,8 @@ if(NOT WIN32) 56 set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr) 57 endif() 58 generate_export_header(rtlsdr_static) 59+list(APPEND rtlsdr_lib rtlsdr_static) 60+endif() 61 62 ######################################################################## 63 # Set up Windows DLL resource files 64@@ -90,37 +98,37 @@ add_executable(rtl_eeprom rtl_eeprom.c) 65 add_executable(rtl_adsb rtl_adsb.c) 66 add_executable(rtl_power rtl_power.c) 67 add_executable(rtl_biast rtl_biast.c) 68-set(INSTALL_TARGETS rtlsdr rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) 69+set(INSTALL_TARGETS ${rtlsdr_lib} rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast) 70 71-target_link_libraries(rtl_sdr rtlsdr convenience_static 72+target_link_libraries(rtl_sdr ${rtlsdr_lib} convenience_static 73 ${LIBUSB_LIBRARIES} 74 ${CMAKE_THREAD_LIBS_INIT} 75 ) 76-target_link_libraries(rtl_tcp rtlsdr convenience_static 77+target_link_libraries(rtl_tcp ${rtlsdr_lib} convenience_static 78 ${LIBUSB_LIBRARIES} 79 ${CMAKE_THREAD_LIBS_INIT} 80 ) 81-target_link_libraries(rtl_test rtlsdr convenience_static 82+target_link_libraries(rtl_test ${rtlsdr_lib} convenience_static 83 ${LIBUSB_LIBRARIES} 84 ${CMAKE_THREAD_LIBS_INIT} 85 ) 86-target_link_libraries(rtl_fm rtlsdr convenience_static 87+target_link_libraries(rtl_fm ${rtlsdr_lib} convenience_static 88 ${LIBUSB_LIBRARIES} 89 ${CMAKE_THREAD_LIBS_INIT} 90 ) 91-target_link_libraries(rtl_eeprom rtlsdr convenience_static 92+target_link_libraries(rtl_eeprom ${rtlsdr_lib} convenience_static 93 ${LIBUSB_LIBRARIES} 94 ${CMAKE_THREAD_LIBS_INIT} 95 ) 96-target_link_libraries(rtl_adsb rtlsdr convenience_static 97+target_link_libraries(rtl_adsb ${rtlsdr_lib} convenience_static 98 ${LIBUSB_LIBRARIES} 99 ${CMAKE_THREAD_LIBS_INIT} 100 ) 101-target_link_libraries(rtl_power rtlsdr convenience_static 102+target_link_libraries(rtl_power ${rtlsdr_lib} convenience_static 103 ${LIBUSB_LIBRARIES} 104 ${CMAKE_THREAD_LIBS_INIT} 105 ) 106-target_link_libraries(rtl_biast rtlsdr convenience_static 107+target_link_libraries(rtl_biast ${rtlsdr_lib} convenience_static 108 ${LIBUSB_LIBRARIES} 109 ${CMAKE_THREAD_LIBS_INIT} 110 ) 111@@ -156,12 +164,16 @@ endif() 112 ######################################################################## 113 # Install built library files & utilities 114 ######################################################################## 115+if(BUILD_SHARED_LIBS) 116 install(TARGETS rtlsdr EXPORT RTLSDR-export 117 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file 118 ) 119+endif() 120+if(BUILD_STATIC_LIBS) 121 install(TARGETS rtlsdr_static EXPORT RTLSDR-export 122 ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} # .so/.dylib file 123 ) 124+endif() 125 install(TARGETS rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb rtl_power rtl_biast 126 DESTINATION ${CMAKE_INSTALL_BINDIR} 127 ) 128-- 1292.25.3 130 131