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