CMakeLists.txt 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. # Copyright 2012 OSMOCOM Project
  2. #
  3. # This file is part of rtl-sdr
  4. #
  5. # GNU Radio is free software; you can redistribute it and/or modify
  6. # it under the terms of the GNU General Public License as published by
  7. # the Free Software Foundation; either version 3, or (at your option)
  8. # any later version.
  9. #
  10. # GNU Radio is distributed in the hope that it will be useful,
  11. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. # GNU General Public License for more details.
  14. #
  15. # You should have received a copy of the GNU General Public License
  16. # along with GNU Radio; see the file COPYING. If not, write to
  17. # the Free Software Foundation, Inc., 51 Franklin Street,
  18. # Boston, MA 02110-1301, USA.
  19. ########################################################################
  20. # Setup library
  21. ########################################################################
  22. add_library(rtlsdr_shared SHARED
  23. librtlsdr.c
  24. tuner_e4k.c
  25. tuner_fc0012.c
  26. tuner_fc0013.c
  27. tuner_fc2580.c
  28. tuner_r820t.c
  29. )
  30. target_link_libraries(rtlsdr_shared
  31. ${LIBUSB_LIBRARIES}
  32. )
  33. set_target_properties(rtlsdr_shared PROPERTIES DEFINE_SYMBOL "rtlsdr_EXPORTS")
  34. set_target_properties(rtlsdr_shared PROPERTIES OUTPUT_NAME rtlsdr)
  35. set_target_properties(rtlsdr_shared PROPERTIES SOVERSION ${MAJOR_VERSION})
  36. set_target_properties(rtlsdr_shared PROPERTIES VERSION ${LIBVER})
  37. add_library(rtlsdr_static STATIC
  38. librtlsdr.c
  39. tuner_e4k.c
  40. tuner_fc0012.c
  41. tuner_fc0013.c
  42. tuner_fc2580.c
  43. tuner_r820t.c
  44. )
  45. if(WIN32)
  46. add_library(libgetopt_static STATIC
  47. getopt/getopt.c
  48. )
  49. endif()
  50. target_link_libraries(rtlsdr_static
  51. ${LIBUSB_LIBRARIES}
  52. )
  53. set_property(TARGET rtlsdr_static APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  54. if(NOT WIN32)
  55. # Force same library filename for static and shared variants of the library
  56. set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr)
  57. endif()
  58. ########################################################################
  59. # Build utility
  60. ########################################################################
  61. add_executable(rtl_sdr rtl_sdr.c)
  62. add_executable(rtl_tcp rtl_tcp.c)
  63. add_executable(rtl_test rtl_test.c)
  64. add_executable(rtl_fm rtl_fm.c)
  65. add_executable(rtl_eeprom rtl_eeprom.c)
  66. add_executable(rtl_adsb rtl_adsb.c)
  67. set(INSTALL_TARGETS rtlsdr_shared rtlsdr_static rtl_sdr rtl_tcp rtl_test rtl_fm rtl_eeprom rtl_adsb)
  68. target_link_libraries(rtl_sdr rtlsdr_shared
  69. ${LIBUSB_LIBRARIES}
  70. ${CMAKE_THREAD_LIBS_INIT}
  71. )
  72. target_link_libraries(rtl_tcp rtlsdr_shared
  73. ${LIBUSB_LIBRARIES}
  74. ${CMAKE_THREAD_LIBS_INIT}
  75. )
  76. target_link_libraries(rtl_test rtlsdr_shared
  77. ${LIBUSB_LIBRARIES}
  78. ${CMAKE_THREAD_LIBS_INIT}
  79. )
  80. target_link_libraries(rtl_fm rtlsdr_shared
  81. ${LIBUSB_LIBRARIES}
  82. ${CMAKE_THREAD_LIBS_INIT}
  83. )
  84. target_link_libraries(rtl_eeprom rtlsdr_shared
  85. ${LIBUSB_LIBRARIES}
  86. ${CMAKE_THREAD_LIBS_INIT}
  87. )
  88. target_link_libraries(rtl_adsb rtlsdr_shared
  89. ${LIBUSB_LIBRARIES}
  90. ${CMAKE_THREAD_LIBS_INIT}
  91. )
  92. if(UNIX)
  93. target_link_libraries(rtl_fm m)
  94. target_link_libraries(rtl_adsb m)
  95. if(APPLE)
  96. target_link_libraries(rtl_test m)
  97. else()
  98. target_link_libraries(rtl_test m rt)
  99. endif()
  100. endif()
  101. if(WIN32)
  102. target_link_libraries(rtl_sdr libgetopt_static)
  103. target_link_libraries(rtl_tcp libgetopt_static)
  104. target_link_libraries(rtl_test libgetopt_static)
  105. target_link_libraries(rtl_fm libgetopt_static)
  106. target_link_libraries(rtl_eeprom libgetopt_static)
  107. target_link_libraries(rtl_adsb libgetopt_static)
  108. set_property(TARGET rtl_sdr APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  109. set_property(TARGET rtl_tcp APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  110. set_property(TARGET rtl_test APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  111. set_property(TARGET rtl_fm APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  112. set_property(TARGET rtl_eeprom APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  113. set_property(TARGET rtl_adsb APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  114. endif()
  115. ########################################################################
  116. # Install built library files & utilities
  117. ########################################################################
  118. install(TARGETS ${INSTALL_TARGETS}
  119. LIBRARY DESTINATION ${LIB_INSTALL_DIR} # .so/.dylib file
  120. ARCHIVE DESTINATION ${LIB_INSTALL_DIR} # .lib file
  121. RUNTIME DESTINATION bin # .dll file
  122. )