CMake updates

This commit is contained in:
Charles J. Cliffe 2014-12-07 21:06:05 -05:00
parent 58bb7bd86f
commit 5fc9a064b5

View File

@ -2,15 +2,15 @@ cmake_minimum_required (VERSION 2.8)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
macro(configure_files srcDir destDir) macro(configure_files srcDir destDir globStr)
message(STATUS "Configuring directory ${destDir}") message(STATUS "Copying ${srcDir}/${globStr} to directory ${destDir}")
make_directory(${destDir}) make_directory(${destDir})
file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/*) file(GLOB templateFiles RELATIVE ${srcDir} ${srcDir}/${globStr})
foreach(templateFile ${templateFiles}) foreach(templateFile ${templateFiles})
set(srcTemplatePath ${srcDir}/${templateFile}) set(srcTemplatePath ${srcDir}/${templateFile})
message(STATUS "Configuring file ${templateFile}")
if(NOT IS_DIRECTORY ${srcTemplatePath}) if(NOT IS_DIRECTORY ${srcTemplatePath})
# message(STATUS "Configuring file ${templateFile}")
configure_file( configure_file(
${srcTemplatePath} ${srcTemplatePath}
${destDir}/${templateFile} ${destDir}/${templateFile}
@ -27,8 +27,8 @@ macro(configure_files_recurse srcDir destDir)
file(GLOB_RECURSE templateFiles RELATIVE ${srcDir} ${srcDir}/*) file(GLOB_RECURSE templateFiles RELATIVE ${srcDir} ${srcDir}/*)
foreach(templateFile ${templateFiles}) foreach(templateFile ${templateFiles})
set(srcTemplatePath ${srcDir}/${templateFile}) set(srcTemplatePath ${srcDir}/${templateFile})
message(STATUS "Configuring file ${templateFile}")
if(NOT IS_DIRECTORY ${srcTemplatePath}) if(NOT IS_DIRECTORY ${srcTemplatePath})
# message(STATUS "Configuring file ${templateFile}")
configure_file( configure_file(
${srcTemplatePath} ${srcTemplatePath}
${destDir}/${templateFile} ${destDir}/${templateFile}
@ -57,7 +57,7 @@ include(${wxWidgets_USE_FILE})
# include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include ) # include_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/include )
# link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib ${OPENGL_INCLUDE_DIR}) # link_directories ( ${PROJECT_SOURCE_DIR}/../CubicVR-2/build/lib ${OPENGL_INCLUDE_DIR})
IF (DEFINED WIN32) IF (WIN32)
set(wxWidgets_USE_STATIC ON) set(wxWidgets_USE_STATIC ON)
include_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release ) 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 ) link_directories ( ${PROJECT_SOURCE_DIR}/external/fftw-3.3.4-dll64 ${PROJECT_SOURCE_DIR}/external/rtl-sdr-release/x64 )
@ -69,15 +69,23 @@ IF (DEFINED WIN32)
ADD_DEFINITIONS( ADD_DEFINITIONS(
# To use wasapi # To use wasapi
-D__WINDOWS_WASAPI__ -D__WINDOWS_WASAPI__
# To use directsound # To use directsound
#-D__WINDOWS_DS__ #-D__WINDOWS_DS__
) )
# To use wasapi # To use wasapi
SET(OTHER_LIBRARIES -luuid -lksuser ) SET(OTHER_LIBRARIES -luuid -lksuser )
# To use DirectSound (which uses WASAPI anyways?) # To use DirectSound (which uses WASAPI anyways?)
# SET(OTHER_LIBRARIES -ldsound) # SET(OTHER_LIBRARIES -ldsound)
ENDIF (DEFINED WIN32)
# 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)
IF (UNIX) IF (UNIX)
set(RTLSDR_INCLUDE "/opt/local/include" CACHE FILEPATH "RTL-SDR Include Path") set(RTLSDR_INCLUDE "/opt/local/include" CACHE FILEPATH "RTL-SDR Include Path")
@ -124,6 +132,7 @@ SET (cubicsdr_sources
src/util/Gradient.cpp src/util/Gradient.cpp
src/util/Timer.cpp src/util/Timer.cpp
src/util/MouseTracker.cpp src/util/MouseTracker.cpp
src/util/GLFont.cpp
src/visual/PrimaryGLContext.cpp src/visual/PrimaryGLContext.cpp
src/visual/ScopeCanvas.cpp src/visual/ScopeCanvas.cpp
src/visual/ScopeContext.cpp src/visual/ScopeContext.cpp
@ -132,6 +141,7 @@ SET (cubicsdr_sources
src/visual/WaterfallCanvas.cpp src/visual/WaterfallCanvas.cpp
src/visual/WaterfallContext.cpp src/visual/WaterfallContext.cpp
external/rtaudio/RtAudio.cpp external/rtaudio/RtAudio.cpp
external/lodepng/lodepng.cpp
) )
SET (cubicsdr_headers SET (cubicsdr_headers
@ -148,6 +158,7 @@ SET (cubicsdr_headers
src/util/Timer.h src/util/Timer.h
src/util/ThreadQueue.h src/util/ThreadQueue.h
src/util/MouseTracker.h src/util/MouseTracker.h
src/util/GLFont.h
src/visual/PrimaryGLContext.h src/visual/PrimaryGLContext.h
src/visual/ScopeCanvas.h src/visual/ScopeCanvas.h
src/visual/ScopeContext.h src/visual/ScopeContext.h
@ -156,25 +167,30 @@ SET (cubicsdr_headers
src/visual/WaterfallCanvas.h src/visual/WaterfallCanvas.h
src/visual/WaterfallContext.h src/visual/WaterfallContext.h
external/rtaudio/RtAudio.h external/rtaudio/RtAudio.h
external/lodepng/lodepng.h
) )
include_directories ( ${PROJECT_SOURCE_DIR}/src/sdr include_directories (
${PROJECT_SOURCE_DIR}/src/demod ${PROJECT_SOURCE_DIR}/src/sdr
${PROJECT_SOURCE_DIR}/src/audio ${PROJECT_SOURCE_DIR}/src/demod
${PROJECT_SOURCE_DIR}/src/util ${PROJECT_SOURCE_DIR}/src/audio
${PROJECT_SOURCE_DIR}/src/visual ${PROJECT_SOURCE_DIR}/src/util
${PROJECT_SOURCE_DIR}/src ${PROJECT_SOURCE_DIR}/src/visual
${PROJECT_SOURCE_DIR}/external/rtaudio ) ${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/external/rtaudio
${PROJECT_SOURCE_DIR}/external/lodepng
)
ADD_DEFINITIONS( ADD_DEFINITIONS(
-std=c++0x # or -std=c++11 -std=c++0x # or -std=c++11
-pthread -pthread
) )
#configure_files(${PROJECT_SOURCE_DIR}/shaders ${PROJECT_BINARY_DIR}/shaders COPYONLY) configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.fnt")
#configure_files(${PROJECT_SOURCE_DIR}/png ${PROJECT_BINARY_DIR}/png COPYONLY) configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR} "*.png")
add_executable(CubicSDR ${cubicsdr_sources} ${cubicsdr_headers}) add_executable(CubicSDR ${cubicsdr_sources} ${cubicsdr_headers})
target_link_libraries(CubicSDR rtlsdr liquid ${FFTW_LIB} ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} ${OTHER_LIBRARIES}) target_link_libraries(CubicSDR rtlsdr liquid ${FFTW_LIB} ${wxWidgets_LIBRARIES} ${OPENGL_LIBRARIES} ${OTHER_LIBRARIES})
# cubicvr2 glfw ${GLFW_LIBRARIES}