You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
libsdr/CMakeLists.txt

85 lines
2.3 KiB
CMake

cmake_minimum_required(VERSION 2.8.8)
project(sdr)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
include(InstallHeadersWithDirectory)
find_package(Qt5Core)
find_package(Qt5Widgets)
find_package(FFTW)
find_package(FFTWSingle)
find_package(PortAudio)
find_package(RTLSDR)
ADD_DEFINITIONS(${Qt5Widgets_DEFINITIONS})
INCLUDE_DIRECTORIES(${Qt5Core_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Qt5Widgets_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/src)
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/src)
INCLUDE_DIRECTORIES(${PORTAUDIO_INCLUDE_DIRS})
# Set some variables for the configuration file
IF(Qt5Core_FOUND AND Qt5Widgets_FOUND)
set(SDR_WITH_QT5 ON)
ENDIF(Qt5Core_FOUND AND Qt5Widgets_FOUND)
IF(FFTW_FOUND)
set(SDR_WITH_FFTW ON)
ELSE(FFTW_FOUND)
set(FFTW_LIBRARIES)
set(FFTWSingle_LIBRARIES)
ENDIF(FFTW_FOUND)
IF(PORTAUDIO_FOUND)
set(SDR_WITH_PORTAUDIO ON)
ELSE(PORTAUDIO_FOUND)
set(PORTAUDIO_LIBRARIES)
ENDIF(PORTAUDIO_FOUND)
IF(RTLSDR_FOUND)
set(SDR_WITH_RTLSDR ON)
ELSE(TRLSDR_FOUND)
set(RTLSDR_LIBRARIES)
ENDIF(RTLSDR_FOUND)
set(LIBS ${FFTW_LIBRARIES} ${FFTWSingle_LIBRARIES} ${PORTAUDIO_LIBRARIES} ${RTLSDR_LIBRARIES} "pthread")
# Set compiler flags
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} -Wall")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O3 -ggdb")
LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/src)
LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/src/gui)
IF(CMAKE_BUILD_TYPE MATCHES DEBUG)
SET(SDR_DEBUG ON)
ENDIF(CMAKE_BUILD_TYPE MATCHES DEBUG)
# Create config.hh
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/config.hh.in
${CMAKE_CURRENT_BINARY_DIR}/src/config.hh)
# Add core library, and unit tests
add_subdirectory(src)
add_subdirectory(test)
add_subdirectory(examples)
# Source distribution packages:
set(CPACK_PACKAGE_VERSION_MAJOR "0")
set(CPACK_PACKAGE_VERSION_MINOR "1")
set(CPACK_PACKAGE_VERSION_PATCH "0")
set(CPACK_SOURCE_GENERATOR "TGZ")
set(CPACK_SOURCE_PACKAGE_FILE_NAME
"${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_SOURCE_IGNORE_FILES
"/build/;/doc/;/dist/;/.git/;.dat$;.wav$;~$;.qm$;${CPACK_SOURCE_IGNORE_FILES}")
include(CPack)