CMakeLists.txt 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. )
  29. target_link_libraries(rtlsdr_shared
  30. ${LIBUSB_LIBRARIES}
  31. )
  32. set_target_properties(rtlsdr_shared PROPERTIES DEFINE_SYMBOL "rtlsdr_EXPORTS")
  33. set_target_properties(rtlsdr_shared PROPERTIES OUTPUT_NAME rtlsdr)
  34. set_target_properties(rtlsdr_shared PROPERTIES SOVERSION 0 VERSION 0.0.0)
  35. add_library(rtlsdr_static STATIC
  36. librtlsdr.c
  37. tuner_e4k.c
  38. tuner_fc0012.c
  39. tuner_fc0013.c
  40. tuner_fc2580.c
  41. )
  42. target_link_libraries(rtlsdr_static
  43. ${LIBUSB_LIBRARIES}
  44. )
  45. set_property(TARGET rtlsdr_static APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  46. if(NOT WIN32)
  47. # Force same library filename for static and shared variants of the library
  48. set_target_properties(rtlsdr_static PROPERTIES OUTPUT_NAME rtlsdr)
  49. endif()
  50. ########################################################################
  51. # Build utility
  52. ########################################################################
  53. add_executable(rtl_sdr rtl_sdr.c)
  54. add_executable(rtl_tcp rtl_tcp.c)
  55. target_link_libraries(rtl_sdr rtlsdr_static
  56. ${LIBUSB_LIBRARIES}
  57. ${CMAKE_THREAD_LIBS_INIT}
  58. )
  59. target_link_libraries(rtl_tcp rtlsdr_static
  60. ${LIBUSB_LIBRARIES}
  61. ${CMAKE_THREAD_LIBS_INIT}
  62. )
  63. if(WIN32)
  64. set_property(TARGET rtl_sdr APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  65. set_property(TARGET rtl_tcp APPEND PROPERTY COMPILE_DEFINITIONS "rtlsdr_STATIC" )
  66. endif()
  67. ########################################################################
  68. # Install built library files & utilities
  69. ########################################################################
  70. install(TARGETS rtlsdr_shared rtlsdr_static rtl_sdr rtl_tcp
  71. LIBRARY DESTINATION lib${LIB_SUFFIX} # .so/.dylib file
  72. ARCHIVE DESTINATION lib${LIB_SUFFIX} # .lib file
  73. RUNTIME DESTINATION bin # .dll file
  74. )