# CMake definitions for SoftFM cmake_minimum_required(VERSION 2.4) project(SoftFM) find_package(Threads) find_package(PkgConfig) find_package(ALSA REQUIRED) # Find RTL-SDR library (for linking). pkg_check_modules(PKG_RTLSDR librtlsdr) find_path(RTLSDR_INCLUDE_DIR rtl-sdr.h HINT ${PKG_RTLSDR_INCLUDE_DIRS}) find_library(RTLSDR_LIBRARY librtlsdr.a HINT ${PKG_RTLSDR_LIBRARY_DIRS}) # Find libusb pkg_check_modules(PKG_LIBUSB libusb-1.0) find_path(LIBUSB_INCLUDE_DIR libusb.h HINT ${PKG_LIBUSB_INCLUDE_DIRS} PATH_SUFFIXES libusb-1.0) find_library(LIBUSB_LIBRARY usb-1.0 HINT ${PKG_LIBUSB_LIBRARY_DIRS}) if(RTLSDR_INCLUDE_DIR AND RTLSDR_LIBRARY) message(STATUS "Found librtlsdr: ${RTLSDR_INCLUDE_DIR}, ${RTLSDR_LIBRARY}") else() message(WARNING "Can not find Osmocom RTL-SDR library") message("Try again with environment variable PKG_CONFIG_PATH") message("or with -DRTLSDR_INCLUDE_DIR=/path/rtlsdr/include") message(" -DRTLSDR_LIBRARY=/path/rtlsdr/lib/librtlsdr.a") endif() set(RTLSDR_INCLUDE_DIRS ${RTLSDR_INCLUDE_DIR} ${LIBUSB_INCLUDE_DIR}) set(RTLSDR_LIBRARIES ${RTLSDR_LIBRARY} ${LIBUSB_LIBRARY}) # Compiler flags. set(CMAKE_CXX_FLAGS "-Wall -std=c++11 -O2 -ffast-math -ftree-vectorize ${EXTRA_FLAGS}") add_executable(softfm main.cc RtlSdrSource.cc Filter.cc FmDecode.cc AudioOutput.cc ) include_directories( ${RTLSDR_INCLUDE_DIRS} ${ALSA_INCLUDE_DIRS} ${EXTRA_INCLUDES} ) target_link_libraries(softfm ${CMAKE_THREAD_LIBS_INIT} ${RTLSDR_LIBRARIES} ${ALSA_LIBRARIES} ${EXTRA_LIBS} ) install(TARGETS softfm DESTINATION bin)