mirror of
https://github.com/AlexandreRouma/SDRPlusPlus.git
synced 2025-05-17 11:05:33 +02:00
79 lines
2.4 KiB
CMake
79 lines
2.4 KiB
CMake
cmake_minimum_required(VERSION 3.13)
|
|
project(SDDC VERSION 1.0.1)
|
|
|
|
include(CTest)
|
|
|
|
### build options
|
|
# default build type: Release
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
set(CMAKE_BUILD_TYPE "Release")
|
|
endif(NOT CMAKE_BUILD_TYPE)
|
|
message(STATUS "Build type: " ${CMAKE_BUILD_TYPE} " - Version: " ${VERSION} " / " ${LIBVER})
|
|
|
|
# allow disabling optimizations - for debug reasons
|
|
option(USE_SIMD_OPTIMIZATIONS "enable SIMD optimizations" ON)
|
|
|
|
# allow enabling address sanitizer - for debug reasons
|
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
option(USE_DEBUG_ASAN "use GCC's address sanitizer?" OFF)
|
|
endif()
|
|
|
|
if (USE_DEBUG_ASAN)
|
|
set(ASANLIB "asan")
|
|
else()
|
|
set(ASANLIB "")
|
|
endif()
|
|
|
|
if (MSVC)
|
|
set(CMAKE_CXX_FLAGS "-O2 /std:c++17 /EHsc /W3")
|
|
|
|
get_filename_component(SDKPATH ${CMAKE_LINKER} DIRECTORY)
|
|
find_program(LIBEXE lib HINTS ${SDKPATH} REQUIRED)
|
|
|
|
# External Project FFTW on Windows
|
|
if(${CMAKE_EXE_LINKER_FLAGS} MATCHES "X86")
|
|
SET(FFTW_URL "ftp://ftp.fftw.org/pub/fftw/fftw-3.3.5-dll32.zip")
|
|
SET(ARCH x86)
|
|
SET(HASH 29882a43033c9393479a4df52a2e9120589c06a2b724155b1a682747fa3e57d4)
|
|
else()
|
|
SET(FFTW_URL "ftp://ftp.fftw.org/pub/fftw/fftw-3.3.5-dll64.zip")
|
|
SET(ARCH x64)
|
|
SET(HASH cfd88dc0e8d7001115ea79e069a2c695d52c8947f5b4f3b7ac54a192756f439f)
|
|
endif()
|
|
|
|
include(ExternalProject)
|
|
ExternalProject_Add(
|
|
LIBFFTW
|
|
URL ${FFTW_URL}
|
|
URL_HASH SHA256=${HASH}
|
|
BUILD_IN_SOURCE TRUE
|
|
CONFIGURE_COMMAND ""
|
|
BUILD_COMMAND ${LIBEXE} /def:./libfftw3f-3.def /MACHINE:${ARCH} /OUT:./fftw3f-3.lib
|
|
INSTALL_COMMAND ""
|
|
)
|
|
ExternalProject_Get_Property(LIBFFTW SOURCE_DIR)
|
|
SET(LIBFFTW_INCLUDE_DIRS ${SOURCE_DIR})
|
|
SET(LIBFFTW_LIBRARY_DIRS ${SOURCE_DIR})
|
|
SET(LIBFFTW_LIBRARIES fftw3f-3)
|
|
|
|
add_subdirectory(ExtIO_sddc)
|
|
else()
|
|
|
|
if (USE_DEBUG_ASAN)
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fsanitize=address")
|
|
set(CMAKE_CXX_FLAGS "-O0 -std=c++17 -Wall -Werror")
|
|
else()
|
|
set(CMAKE_CXX_FLAGS "-O3 -std=c++17 -Wall -Werror")
|
|
endif(USE_DEBUG_ASAN)
|
|
#add_compile_options(-Wall -Wextra -pedantic)
|
|
include(FindPkgConfig)
|
|
pkg_check_modules(LIBUSB REQUIRED libusb-1.0)
|
|
pkg_check_modules(LIBFFTW REQUIRED fftw3f)
|
|
endif (MSVC)
|
|
|
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
|
|
|
|
add_subdirectory(Core)
|
|
add_subdirectory(libsddc)
|
|
add_subdirectory(unittest)
|