diff options
author | Dimitri Stolnikov <horiz0n@gmx.net> | 2012-04-26 19:13:23 +0200 |
---|---|---|
committer | Dimitri Stolnikov <horiz0n@gmx.net> | 2012-04-26 19:13:23 +0200 |
commit | 514b806d0a6c64cc795414d05a452c24d6c85927 (patch) | |
tree | 2c800437d6570857cb9806cf69768d082a0db391 /lib/CMakeLists.txt | |
parent | afac8e8c42d65af1c57d67c97e882e0b5314f284 (diff) |
update build system to check for component dependencies
this will only enable components if the dependencies were met.
Diffstat (limited to 'lib/CMakeLists.txt')
-rw-r--r-- | lib/CMakeLists.txt | 99 |
1 files changed, 80 insertions, 19 deletions
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 40c0a58..f9efc41 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -20,38 +20,99 @@ ######################################################################## # Setup library ######################################################################## -include(GrPlatform) #define LIB_SUFFIX +INCLUDE(GrPlatform) #define LIB_SUFFIX +INCLUDE(GrMiscUtils) -add_library(gnuradio-osmosdr SHARED - osmosdr_ranges.cc - osmosdr_sink_c_impl.cc +######################################################################## +# Helpful Macros +######################################################################## +MACRO(GR_OSMOSDR_APPEND_SRCS) + LIST(APPEND gr_osmosdr_srcs ${ARGV}) +ENDMACRO(GR_OSMOSDR_APPEND_SRCS) + +MACRO(GR_OSMOSDR_APPEND_LIBS) + LIST(APPEND gr_osmosdr_libs ${ARGV}) +ENDMACRO(GR_OSMOSDR_APPEND_LIBS) + +GR_OSMOSDR_APPEND_SRCS( osmosdr_source_c_impl.cc - rtl_source_c.cc + osmosdr_sink_c_impl.cc + osmosdr_ranges.cc ) -target_link_libraries(gnuradio-osmosdr +GR_OSMOSDR_APPEND_LIBS( ${Boost_LIBRARIES} ${GRUEL_LIBRARIES} ${GNURADIO_CORE_LIBRARIES} -# ${GNURADIO_AUDIO_LIBRARIES} - ${LIBRTLSDR_LIBRARIES} ) -set_target_properties(gnuradio-osmosdr PROPERTIES DEFINE_SYMBOL "gnuradio_osmosdr_EXPORTS") +######################################################################## +# Setup OsmoSDR component +######################################################################## +include(GrComponent) +GR_REGISTER_COMPONENT("Sysmocom OsmoSDR" ENABLE_OSMOSDR) + +if(ENABLE_OSMOSDR) +GR_INCLUDE_SUBDIRECTORY(osmosdr) +endif(ENABLE_OSMOSDR) + +######################################################################## +# Setup FCD component +######################################################################## +include(GrComponent) +GR_REGISTER_COMPONENT("FunCube Dongle" ENABLE_FCD GNURADIO_FCD_FOUND) + +if(ENABLE_FCD) +GR_INCLUDE_SUBDIRECTORY(fcd) +endif(ENABLE_FCD) + +######################################################################## +# Setup RTL component +######################################################################## +include(GrComponent) +GR_REGISTER_COMPONENT("Osmocom RTLSDR" ENABLE_RTL LIBRTLSDR_FOUND) + +if(ENABLE_RTL) +GR_INCLUDE_SUBDIRECTORY(rtl) +endif(ENABLE_RTL) + +######################################################################## +# Setup UHD component +######################################################################## +include(GrComponent) +GR_REGISTER_COMPONENT("Ettus UHD" ENABLE_UHD GNURADIO_UHD_FOUND) + +if(ENABLE_UHD) +GR_INCLUDE_SUBDIRECTORY(uhd) +endif(ENABLE_UHD) + +######################################################################## +# Setup configuration file +######################################################################## +ADD_DEFINITIONS(-DHAVE_CONFIG_H=1) +include_directories(APPEND ${CMAKE_CURRENT_BINARY_DIR}) +CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in + ${CMAKE_CURRENT_BINARY_DIR}/config.h +@ONLY) + +######################################################################## +# Setup libgnuradio-osmosdr library +######################################################################## +ADD_LIBRARY(gnuradio-osmosdr SHARED ${gr_osmosdr_srcs}) +TARGET_LINK_LIBRARIES(gnuradio-osmosdr ${gr_osmosdr_libs}) +SET_TARGET_PROPERTIES(gnuradio-osmosdr PROPERTIES DEFINE_SYMBOL "gnuradio_osmosdr_EXPORTS") +SET_TARGET_PROPERTIES(gnuradio-osmosdr PROPERTIES SOVERSION "${MAJOR_VERSION}") +SET_TARGET_PROPERTIES(gnuradio-osmosdr PROPERTIES VERSION "${MAJOR_VERSION}.${MINOR_VERSION}") +IF(DEFINED GR_OSMOSDR_OUTPUT_NAME) + SET_TARGET_PROPERTIES(uhd PROPERTIES OUTPUT_NAME ${GR_OSMOSDR_OUTPUT_NAME}) +ENDIF(DEFINED GR_OSMOSDR_OUTPUT_NAME) ######################################################################## -# Install built library files +# Install libgnuradio-osmosdr library ######################################################################## -install(TARGETS gnuradio-osmosdr +INSTALL(TARGETS gnuradio-osmosdr LIBRARY DESTINATION lib${LIB_SUFFIX} # .so/.dylib file ARCHIVE DESTINATION lib${LIB_SUFFIX} # .lib file RUNTIME DESTINATION bin # .dll file ) - -######################################################################## -# Add subdirectories -######################################################################## -#add_subdirectory(fcd) -#add_subdirectory(osmosdr) -#add_subdirectory(rtl) -#add_subdirectory(uhd) |