CubicSDR/CMakeLists.txt

256 lines
7.8 KiB
CMake
Raw Normal View History

cmake_minimum_required (VERSION 2.8)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
2014-12-07 21:06:05 -05:00
macro(configure_files srcDir destDir globStr)
message(STATUS "Copying ${srcDir}/${globStr} to directory ${destDir}")
make_directory(${destDir})
2014-12-07 21:06:05 -05:00
file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/${globStr})
foreach(templateFile ${templateFiles})
set(srcTemplatePath ${srcDir}/${templateFile})
2014-12-07 21:06:05 -05:00
message(STATUS "Configuring file ${templateFile}")
if(NOT IS_DIRECTORY ${srcTemplatePath})
configure_file(
${srcTemplatePath}
${destDir}/${templateFile}
COPYONLY)
endif(NOT IS_DIRECTORY ${srcTemplatePath})
endforeach(templateFile)
endmacro(configure_files)
macro(configure_files_recurse srcDir destDir)
message(STATUS "Configuring directory ${destDir}")
make_directory(${destDir})
file(GLOB_RECURSE templateFiles RELATIVE ${srcDir} ${srcDir}/*)
foreach(templateFile ${templateFiles})
set(srcTemplatePath ${srcDir}/${templateFile})
2014-12-07 21:06:05 -05:00
message(STATUS "Configuring file ${templateFile}")
if(NOT IS_DIRECTORY ${srcTemplatePath})
configure_file(
${srcTemplatePath}
${destDir}/${templateFile}
COPYONLY)
endif(NOT IS_DIRECTORY ${srcTemplatePath})
endforeach(templateFile)
endmacro(configure_files_recurse)
project (CubicSDR)
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_BINARY_DIR})
SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_BINARY_DIR})
#add_subdirectory(${PROJECT_SOURCE_DIR}/glfw-3.0.3 ${PROJECT_BINARY_DIR}/glfw/)
#include_directories(${PROJECT_SOURCE_DIR}/glfw-3.0.3/include)
#include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include )
#link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib )
find_package(OpenGL REQUIRED)
find_package(wxWidgets REQUIRED gl core base)
set(wxWidgets_CONFIGURATION mswu)
include(${wxWidgets_USE_FILE})
# include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include )
# link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib ${OPENGL_INCLUDE_DIR})
2014-12-07 21:06:05 -05:00
IF (WIN32)
set(wxWidgets_USE_STATIC ON)
2014-11-20 20:10:28 -05:00
include_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release )
link_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x64 )
2015-01-06 19:15:27 -05:00
set(FFTW_LIB fftw3f-3)
2014-11-06 21:30:47 -05:00
2014-11-20 20:10:28 -05:00
link_directories ( ${PROJECT_SOURCE_DIR}/external/liquid-dsp/lib/64 )
2014-11-06 21:30:47 -05:00
include_directories ( ${PROJECT_SOURCE_DIR}/external/liquid-dsp/include )
ADD_DEFINITIONS(
# To use wasapi
-D__WINDOWS_WASAPI__
2014-12-07 21:06:05 -05:00
# To use directsound
#-D__WINDOWS_DS__
)
# To use wasapi
SET(OTHER_LIBRARIES -luuid -lksuser )
2014-12-07 21:06:05 -05:00
# To use DirectSound (which uses WASAPI anyways?)
# SET(OTHER_LIBRARIES -ldsound)
2014-12-07 21:06:05 -05:00
# Copy DLL files to build dir
configure_files(${PROJECT_SOURCE_DIR}/external/liquid-dsp-lib/64 ${CMAKE_BINARY_DIR} "*.dll")
configure_files(${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x64 ${CMAKE_BINARY_DIR} "*.dll")
configure_files(${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${CMAKE_BINARY_DIR} "*.dll")
ENDIF (WIN32)
2015-01-19 19:24:15 -05:00
IF (UNIX AND NOT APPLE)
2015-01-18 01:36:28 -05:00
set(RTLSDR_INCLUDE "/usr/local/include" CACHE FILEPATH "RTL-SDR Include Path")
set(RTLSDR_LIB "/usr/local/lib" CACHE FILEPATH "RTL-SDR Lib Path")
set(USE_AUDIO_PULSE ON CACHE BOOL "Use Pulse Audio")
set(USE_AUDIO_JACK OFF CACHE BOOL "Use Jack Audio")
set(USE_AUDIO_ALSA OFF CACHE BOOL "Use ALSA Audio")
set(USE_AUDIO_OSS OFF CACHE BOOL "Use OSS Audio")
include_directories(${RTLSDR_INCLUDE})
link_directories(${RTLSDR_LIB})
2015-01-06 20:00:23 -05:00
set(FFTW_LIB fftw3f)
2015-01-18 01:36:28 -05:00
IF(USE_AUDIO_PULSE)
SET (OTHER_LIBRARIES ${OTHER_LIBRARIES} pulse-simple pulse)
ADD_DEFINITIONS(
-D__LINUX_PULSE__
)
ENDIF(USE_AUDIO_PULSE)
IF(USE_AUDIO_JACK)
SET (OTHER_LIBRARIES ${OTHER_LIBRARIES} jack)
ADD_DEFINITIONS(
-D__UNIX_JACK__
)
ENDIF(USE_AUDIO_JACK)
IF(USE_AUDIO_ALSA)
SET (OTHER_LIBRARIES ${OTHER_LIBRARIES} asound)
set(ALSA_INCLUDE_DIR "/usr/include" CACHE FILEPATH "ALSA include path")
include_directories(${ALSA_INCLUDE_DIR})
set(ALSA_LIB_DIR "/usr/lib" CACHE FILEPATH "ALSA lib path")
link_directories(${ALSA_LIB_DIR})
ADD_DEFINITIONS(
-D__LINUX_ALSA__
)
ENDIF(USE_AUDIO_ALSA)
IF(USE_AUDIO_OSS)
SET (OTHER_LIBRARIES ${OTHER_LIBRARIES} oss)
ADD_DEFINITIONS(
-D__LINUX_OSS__
)
ENDIF(USE_AUDIO_OSS)
2015-01-19 19:24:15 -05:00
ENDIF(UNIX AND NOT APPLE)
IF (APPLE)
set(RTLSDR_INCLUDE "/opt/local/include" CACHE FILEPATH "RTL-SDR Include Path")
set(RTLSDR_LIB "/opt/local/lib" CACHE FILEPATH "RTL-SDR Lib Path")
include_directories(${RTLSDR_INCLUDE})
link_directories(${RTLSDR_LIB})
2014-11-06 21:30:47 -05:00
2015-01-06 20:00:23 -05:00
set(FFTW_LIB fftw3f)
ADD_DEFINITIONS(
-D__MACOSX_CORE__
)
2014-10-27 23:52:25 -04:00
FIND_LIBRARY(COREAUDIO_LIBRARY CoreAudio)
SET (OTHER_LIBRARIES ${COREAUDIO_LIBRARY})
ENDIF (APPLE)
2014-10-27 23:52:25 -04:00
SET (cubicsdr_sources
src/CubicSDR.cpp
src/AppFrame.cpp
2014-11-17 21:29:27 -05:00
src/sdr/SDRThread.cpp
src/sdr/SDRPostThread.cpp
src/demod/DemodulatorPreThread.cpp
2014-11-17 21:29:27 -05:00
src/demod/DemodulatorThread.cpp
2014-11-30 23:33:55 -05:00
src/demod/DemodulatorWorkerThread.cpp
src/demod/DemodulatorInstance.cpp
src/demod/DemodulatorMgr.cpp
2014-11-17 21:29:27 -05:00
src/audio/AudioThread.cpp
src/util/Gradient.cpp
src/util/Timer.cpp
src/util/MouseTracker.cpp
2014-12-07 21:06:05 -05:00
src/util/GLFont.cpp
src/util/DataTree.cpp
src/visual/ColorTheme.cpp
2014-11-17 21:29:27 -05:00
src/visual/PrimaryGLContext.cpp
src/visual/InteractiveCanvas.cpp
2014-12-31 19:45:01 -05:00
src/visual/MeterCanvas.cpp
src/visual/MeterContext.cpp
src/visual/TuningCanvas.cpp
src/visual/TuningContext.cpp
2015-01-04 19:50:05 -05:00
src/visual/ModeSelectorCanvas.cpp
src/visual/ModeSelectorContext.cpp
src/visual/ScopeCanvas.cpp
src/visual/ScopeContext.cpp
src/visual/SpectrumCanvas.cpp
src/visual/SpectrumContext.cpp
src/visual/WaterfallCanvas.cpp
src/visual/WaterfallContext.cpp
external/rtaudio/RtAudio.cpp
2014-12-07 21:06:05 -05:00
external/lodepng/lodepng.cpp
external/tinyxml/tinyxml.cpp
external/tinyxml/tinystr.cpp
external/tinyxml/tinyxmlparser.cpp
external/tinyxml/tinyxmlerror.cpp
)
SET (cubicsdr_headers
2014-11-17 21:29:27 -05:00
src/CubicSDRDefs.h
src/CubicSDR.h
src/AppFrame.h
2014-11-17 21:29:27 -05:00
src/sdr/SDRThread.h
src/sdr/SDRPostThread.h
src/demod/DemodulatorPreThread.h
2014-11-17 21:29:27 -05:00
src/demod/DemodulatorThread.h
2014-11-30 23:33:55 -05:00
src/demod/DemodulatorWorkerThread.h
src/demod/DemodulatorInstance.h
src/demod/DemodulatorMgr.h
2014-12-11 19:07:21 -05:00
src/demod/DemodDefs.h
2014-11-17 21:29:27 -05:00
src/audio/AudioThread.h
src/util/Gradient.h
src/util/Timer.h
2014-11-20 20:10:28 -05:00
src/util/ThreadQueue.h
src/util/MouseTracker.h
2014-12-07 21:06:05 -05:00
src/util/GLFont.h
src/util/DataTree.h
src/visual/ColorTheme.h
2014-11-17 21:29:27 -05:00
src/visual/PrimaryGLContext.h
src/visual/InteractiveCanvas.h
2014-12-31 19:45:01 -05:00
src/visual/MeterCanvas.h
src/visual/MeterContext.h
src/visual/TuningCanvas.h
src/visual/TuningContext.h
2015-01-04 19:50:05 -05:00
src/visual/ModeSelectorCanvas.h
src/visual/ModeSelectorContext.h
src/visual/ScopeCanvas.h
src/visual/ScopeContext.h
src/visual/SpectrumCanvas.h
src/visual/SpectrumContext.h
src/visual/WaterfallCanvas.h
src/visual/WaterfallContext.h
external/rtaudio/RtAudio.h
2014-12-07 21:06:05 -05:00
external/lodepng/lodepng.h
external/tinyxml/tinyxml.h
external/tinyxml/tinystr.h
)
2014-12-07 21:06:05 -05:00
include_directories (
${PROJECT_SOURCE_DIR}/src/sdr
${PROJECT_SOURCE_DIR}/src/demod
${PROJECT_SOURCE_DIR}/src/audio
${PROJECT_SOURCE_DIR}/src/util
${PROJECT_SOURCE_DIR}/src/visual
${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/external/rtaudio
${PROJECT_SOURCE_DIR}/external/lodepng
${PROJECT_SOURCE_DIR}/external/tinyxml
2014-12-07 21:06:05 -05:00
)
2014-11-19 00:34:41 -05:00
ADD_DEFINITIONS(
2014-11-20 20:10:28 -05:00
-std=c++0x # or -std=c++11
2014-11-21 21:50:14 -05:00
-pthread
2014-11-19 00:34:41 -05:00
)
2014-12-07 21:06:05 -05:00
configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.fnt")
configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.png")
add_executable(CubicSDR ${cubicsdr_sources} ${cubicsdr_headers})
target_link_libraries(CubicSDR rtlsdr liquid ${FFTW_LIB} ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} ${OTHER_LIBRARIES})
2014-12-07 21:06:05 -05:00