Add support for VS2019 and Ninja

- Specify byproducts in external projects
- Use external Boost
- Remove hacky Qt detection
- Fix CRT mismatch in external projects (fixes SoapySDR on Windows)
- Minor fixes
pull/683/head
Kacper Michajłow 2020-11-01 13:03:13 +01:00
rodzic 2a86bc566a
commit 70434765d7
28 zmienionych plików z 201 dodań i 244 usunięć

Wyświetl plik

@ -9,36 +9,41 @@ matrix:
fast_finish: false
environment:
# my_variable:
# secure: kyU5TaXRoily6q/QLRLqal2xCFGWEdnb8AJIu7FknsUQyj1wjRGmqC2My+Wfszod
matrix:
- TARGET: vs2017gui
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
# RelWithDebInfo
- TARGET: vs2019gui
APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019'
configuration: Release
# CMAKE_CUSTOM_OPTIONS: "-DENABLE_EXTERNAL_LIBRARIES=OFF"
CMAKE_CUSTOM_OPTIONS: "-DFORCE_SSE41=ON -DQT_MISSING=OFF -DDEBUG_OUTPUT=ON -DENABLE_MIRISDR=OFF -DBUILD_SERVER=OFF"
CMAKE_GENERATOR: "Visual Studio 15 2017 Win64"
CMAKE_CUSTOM_OPTIONS: "-DCMAKE_BUILD_TYPE=Release \
-DFORCE_SSE41=ON \
-DDEBUG_OUTPUT=ON \
-DENABLE_MIRISDR=OFF \
-DBUILD_SERVER=OFF \
-DCMAKE_PREFIX_PATH=C:\\Qt\\5.15.1\\msvc2019_64;C:\\Libraries\\boost_1_73_0"
CMAKE_GENERATOR: Ninja
- TARGET: ubuntu2004prod
APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004
CMAKE_CUSTOM_OPTIONS: "-DFORCE_SSE41=ON -DDEBUG_OUTPUT=ON -DENABLE_EXTERNAL_LIBRARIES=ON"
CC: "gcc-9"
CXX: "g++-9"
CMAKE_CUSTOM_OPTIONS: "-DCMAKE_BUILD_TYPE=Release \
-DFORCE_SSE41=ON \
-DDEBUG_OUTPUT=ON \
-DENABLE_EXTERNAL_LIBRARIES=ON"
# image:
# - &linux Ubuntu1804
# - matrix: { only: [ image: *linux ] }
for:
- matrix:
only:
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'
- APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019'
cache:
- C:\ProgramData\chocolatey\bin
- C:\ProgramData\chocolatey\lib
#- C:\Tools\vcpkg\installed
build_script:
- call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
# Install GNU patch as applying patches with git fails in BladeRF tree
- choco install patch
- git submodule update --init --recursive
- mkdir build && cd build
- cmake ..\ -G "%CMAKE_GENERATOR%" %CMAKE_CUSTOM_OPTIONS%
- cmake --build . --config Release --target PACKAGE
- cmake .. -G "%CMAKE_GENERATOR%" %CMAKE_CUSTOM_OPTIONS%
- cmake --build . --config Release --target package
artifacts: # push installer executable
path: build\*.exe
name: installer
@ -76,7 +81,7 @@ for:
libopus-dev libcodec2-dev libairspy-dev libhackrf-dev \
libbladerf-dev libsoapysdr-dev libiio-dev libuhd-dev \
python3-mako python3-cheetah python3-numpy \
autoconf automake libtool
autoconf automake libtool ninja-build
- sh: if [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_cm256cc.sh; fi
- sh: if [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_mbelib.sh; fi
- sh: if [[ ! "${CMAKE_CUSTOM_OPTIONS}" =~ "ENABLE_EXTERNAL_LIBRARIES=ON" ]]; then bash cmake/ci/build_serialdv.sh; fi
@ -90,7 +95,7 @@ for:
- sh: bash -c export
- sh: bash -c pwd
build_script:
- sh: bash cmake/ci/build_sdrangel.sh
- sh: ./cmake/ci/build_sdrangel.sh
test_script:
# debian build path
- sh: ./obj-x86_64-linux-gnu/sdrangelbench

Wyświetl plik

@ -1,10 +1,6 @@
cmake_minimum_required(VERSION 3.1.0)
cmake_minimum_required(VERSION 3.16.0)
# force 64bit on windows because we have only that library
# TODO discuss because, at this days, a dsp software should be 64bit
# if(WIN32 AND NOT CMAKE_GENERATOR_PLATFORM AND NOT CMAKE_C_COMPILER AND NOT CMAKE_CXX_COMPILER)
# set(CMAKE_GENERATOR_PLATFORM "x64" CACHE INTERNAL "")
# endif()
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
project(sdrangel)
@ -192,39 +188,35 @@ elseif(APPLE)
"${CMAKE_BINARY_DIR}/Info.plist" @ONLY)
elseif (WIN32)
# check compiler version
if(MSVC_VERSION GREATER 1910 AND MSVC_VERSION LESS 1919)
if(MSVC_VERSION GREATER 1920 AND MSVC_VERSION LESS 1929)
set(VS2019 ON)
elseif(MSVC_VERSION GREATER 1910 AND MSVC_VERSION LESS 1919)
set(VS2017 ON)
elseif(MSVC_VERSION GREATER 1899 AND MSVC_VERSION LESS 1910)
set(VS2015 ON)
endif()
if(NOT VS2015 AND NOT VS2017)
message(FATAL_ERROR "You must use Microsoft Visual Studio 2015 or 2017 as compiler")
if(NOT VS2015 AND NOT VS2017 AND NOT VS2019)
message(FATAL_ERROR "You must use Microsoft Visual Studio 2015, 2017 or 2019 as compiler")
endif()
# used on code but not defined on VS2017
add_definitions(-D__WINDOWS__)
# compile with full multicore
set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} /MP /w")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP /w")
# find Qt folder
if(DEFINED QT_PATH)
set (QT_MISSING False)
if(MSVC)
add_compile_definitions(/MP)
endif()
include(QtLocator)
# in alternative we can use ExternalProject
set(EXTERNAL_LIBRARY_FOLDER "${CMAKE_SOURCE_DIR}/external/windows")
set(BOOST_ROOT "${EXTERNAL_LIBRARY_FOLDER}/boost" CACHE INTERNAL "")
set(BOOST_LIBRARYDIR "${EXTERNAL_LIBRARY_FOLDER}/boost/lib64-msvc-14.1" CACHE INTERNAL "")
set(FFTW3F_FOUND ON CACHE INTERNAL "")
set(FFTW3F_INCLUDE_DIRS "${EXTERNAL_LIBRARY_FOLDER}/fftw-3/include" CACHE INTERNAL "")
set(FFTW3F_LIBRARIES "${EXTERNAL_LIBRARY_FOLDER}/fftw-3/libfftw3f-3.lib" CACHE INTERNAL "")
set(LIBUSB_INCLUDE_DIR "${EXTERNAL_LIBRARY_FOLDER}/libusb/include" CACHE INTERNAL "")
set(LIBUSB_LIBRARIES "${EXTERNAL_LIBRARY_FOLDER}/libusb/MS64/dll/libusb-1.0.lib" CACHE INTERNAL "")
set(OpenCV_DIR "${EXTERNAL_LIBRARY_FOLDER}/opencv" CACHE INTERNAL "")
if(VS2019)
set(OpenCV_DIR "${EXTERNAL_LIBRARY_FOLDER}/opencv4" CACHE INTERNAL "")
else()
set(OpenCV_DIR "${EXTERNAL_LIBRARY_FOLDER}/opencv" CACHE INTERNAL "")
endif()
set(PKG_CONFIG_EXECUTABLE "${EXTERNAL_LIBRARY_FOLDER}/pkg-config-lite/bin/pkg-config.exe" CACHE INTERNAL "")
set(SOAPYSUPPORT_DIR "${EXTERNAL_LIBRARY_FOLDER}/soapysdr-support" CACHE INTERNAL "")
@ -260,7 +252,6 @@ elseif (WIN32)
# used on fixup_bundle phase
set(WINDOWS_FIXUP_BUNDLE_LIB_DIRS
"${Qt5_DIR}../../../bin"
"${EXTERNAL_LIBRARY_FOLDER}/fftw-3"
"${EXTERNAL_LIBRARY_FOLDER}/libusb/MS64/dll"
"${EXTERNAL_LIBRARY_FOLDER}/ffmpeg/bin"
@ -371,11 +362,7 @@ if(WIN32)
set(OpenCV_ARCH "86")
endif()
if(VS2015)
set(OpenCV_LIBS_BIN_DIR "${OpenCV_DIR}/x${OpenCV_ARCH}/vc14/bin" CACHE INTERNAL "")
elseif(VS2017)
set(OpenCV_LIBS_BIN_DIR "${OpenCV_DIR}/x${OpenCV_ARCH}/vc15/bin" CACHE INTERNAL "")
endif()
set(OpenCV_LIBS_BIN_DIR "${OpenCV_DIR}/x${OpenCV_ARCH}/${OpenCV_RUNTIME}/bin" CACHE INTERNAL "")
set(WINDOWS_FIXUP_BUNDLE_LIB_DIRS
"${WINDOWS_FIXUP_BUNDLE_LIB_DIRS}"

Wyświetl plik

@ -25,6 +25,8 @@ function(windeployqt target bindir qmldir)
--dir "${bindir}"
--qmldir "${qmldir}"
--multimedia
--websockets
--opengl
\"$<TARGET_FILE:${target}>\"
COMMENT "Deploying Qt..."
)
@ -38,6 +40,8 @@ function(windeployqt target bindir qmldir)
--dir "${bindir}/winqt"
--qmldir "${qmldir}"
--multimedia
--websockets
--opengl
\"$<TARGET_FILE:${target}>\"
COMMENT "Deploying Qt..."
)

Wyświetl plik

@ -1,48 +0,0 @@
SET(QT_MISSING True)
# msvc only; mingw will need different logic
IF(MSVC)
# look for user-registry pointing to qtcreator
GET_FILENAME_COMPONENT(QT_BIN [HKEY_CURRENT_USER\\Software\\Classes\\Applications\\QtProject.QtCreator.pro\\shell\\Open\\Command] PATH)
# get root path so we can search for 5.10, 5.11, 5.12, etc
STRING(REPLACE "/Tools" ";" QT_BIN "${QT_BIN}")
LIST(GET QT_BIN 0 QT_BIN)
FILE(GLOB QT_VERSIONS "${QT_BIN}/5.1*")
LIST(SORT QT_VERSIONS)
# assume the latest version will be last alphabetically
LIST(REVERSE QT_VERSIONS)
LIST(GET QT_VERSIONS 0 QT_VERSION)
# fix any double slashes which seem to be common
STRING(REPLACE "//" "/" QT_VERSION "${QT_VERSION}")
# do some math trickery to guess folder
# - qt uses (e.g.) "msvc2012"
# - cmake uses (e.g.) "1800"
# - see also https://cmake.org/cmake/help/v3.0/variable/MSVC_VERSION.html
# checkcompiler version
if(MSVC_VERSION GREATER 1910 AND MSVC_VERSION LESS 1919)
set(QT_MSVC 2017)
elseif(MSVC_VERSION GREATER 1899 AND MSVC_VERSION LESS 1910)
set(QT_MSVC 2015)
else()
MATH(EXPR QT_MSVC "2000 + (${MSVC_VERSION} - 600) / 100")
endif()
# check for 64-bit os
# may need to be removed for older compilers as it wasn't always offered
IF(CMAKE_SYSTEM_PROCESSOR MATCHES 64)
SET(QT_MSVC "${QT_MSVC}_64")
ENDIF()
SET(QT_PATH "${QT_VERSION}/msvc${QT_MSVC}")
SET(QT_MISSING False)
ENDIF()
# use Qt_DIR approach so you can find Qt after cmake has been invoked
IF(NOT QT_MISSING)
MESSAGE("-- Qt found: ${QT_PATH}")
SET(Qt5_DIR "${QT_PATH}/lib/cmake/Qt5/")
SET(Qt5Test_DIR "${QT_PATH}/lib/cmake/Qt5Test")
ENDIF()

21
cmake/ci/build_sdrangel.sh 100644 → 100755
Wyświetl plik

@ -1,26 +1,17 @@
#!/bin/sh
if [ "${TRAVIS_OS_NAME}" == "osx" ]; then
JOBS=$(sysctl -n hw.ncpu)
elif [ "${TRAVIS_OS_NAME}" == "linux" ] || [ ${CI_LINUX} = true ]; then
JOBS=$(nproc --all)
else
JOBS=1
fi
#!/bin/sh -e
if [ "${TRAVIS_OS_NAME}" == "linux" ] || [ ${CI_LINUX} = true ]; then
debuild -i -us -uc -b
else
mkdir build && cd build
cmake .. "${CMAKE_CUSTOM_OPTIONS}"
mkdir -p build; cd build
cmake .. -GNinja ${CMAKE_CUSTOM_OPTIONS}
case "${CMAKE_CUSTOM_OPTIONS}" in
*BUNDLE=ON*)
make -j${JOBS} package
cmake --build . --target package
;;
*)
make -j${JOBS}
cmake --build .
;;
esac
esac
fi

5
debian/rules vendored
Wyświetl plik

@ -1,11 +1,14 @@
#!/usr/bin/make -f
%:
dh $@ --parallel
dh $@ --parallel --buildsystem=cmake+ninja
# FORCE_SSE41 will be not accepted upstream
override_dh_auto_configure:
dh_auto_configure -- -DFORCE_SSE41=ON -DENABLE_EXTERNAL_LIBRARIES=ON -DDEBUG_OUTPUT=ON
override_dh_auto_test:
echo "Skipping test step"
# permit the packaging with /usr/local/lib libraries (from `make install`)
# you can also use `export DEB_DH_SHLIBDEPS_ARGS_ALL=--dpkg-shlibdeps-params=--ignore-missing-info`
# not a good idea!

Wyświetl plik

@ -19,7 +19,6 @@ set(plutosdrdevice_HEADERS
include_directories(
${LIBIIO_INCLUDE_DIR}
${ICONV_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
)
add_library(plutosdrdevice SHARED

Wyświetl plik

@ -1,8 +1,3 @@
if(WIN32)
# ${Boost_LIBRARY_DIRS} is empty on windows
link_directories(${BOOST_LIBRARYDIR})
endif()
project(usrpdevice)
@ -20,7 +15,6 @@ set(usrpdevice_HEADERS
include_directories(
${UHD_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
)
add_library(usrpdevice SHARED
@ -30,10 +24,9 @@ add_library(usrpdevice SHARED
set_target_properties(usrpdevice
PROPERTIES DEFINE_SYMBOL "devices_EXPORTS")
link_directories(${Boost_LIBRARY_DIRS})
target_link_libraries(usrpdevice
${UHD_LIBRARIES}
Boost::disable_autolinking
sdrbase
)

Wyświetl plik

@ -37,7 +37,7 @@ include(ExternalProject)
# default build destination in windows to avoid Release/Debug folder
if (WIN32)
# the build will be output on the same folder of sdrangel
set(DEFAULT_OUTPUT_DIRECTORIES
set(COMMON_CMAKE_ARGS
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${SDRANGEL_BINARY_BIN_DIR}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=${SDRANGEL_BINARY_BIN_DIR}
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=${SDRANGEL_BINARY_BIN_DIR}
@ -52,7 +52,7 @@ if (WIN32)
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO=${SDRANGEL_BINARY_LIB_DIR}
)
elseif (LINUX)
set(DEFAULT_OUTPUT_DIRECTORIES
set(COMMON_CMAKE_ARGS
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${EXTERNAL_BUILD_LIBRARIES}/bin
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=${EXTERNAL_BUILD_LIBRARIES}/bin
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=${EXTERNAL_BUILD_LIBRARIES}/bin
@ -68,6 +68,19 @@ elseif (LINUX)
)
endif ()
if(CMAKE_MSVC_RUNTIME_LIBRARY)
list(APPEND COMMON_CMAKE_ARGS -DCMAKE_POLICY_DEFAULT_CMP0091:STRING=NEW)
list(APPEND COMMON_CMAKE_ARGS -DCMAKE_MSVC_RUNTIME_LIBRARY=${CMAKE_MSVC_RUNTIME_LIBRARY})
endif()
if(CMAKE_BUILD_TYPE)
list(APPEND COMMON_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
endif()
list(APPEND COMMON_CMAKE_ARGS -DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD})
list(APPEND COMMON_CMAKE_ARGS -DCMAKE_CXX_STANDARD_REQUIRED=${CMAKE_CXX_STANDARD_REQUIRED})
list(APPEND COMMON_CMAKE_ARGS -DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS})
if (LINUX)
# macro that create symbolic links
macro(makeLink src dest target)
@ -159,11 +172,17 @@ endif (AUTO_EXTERNAL_LIBRARIES)
if (NOT WIN32 AND (NOT CODEC2_FOUND OR CODEC2_EXTERNAL))
# needs speexdsp
if (WIN32)
set(CODEC2_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/codec2.lib" CACHE INTERNAL "")
elseif (LINUX)
set(CODEC2_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libcodec2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
endif ()
ExternalProject_Add(codec2
GIT_REPOSITORY https://github.com/drowe67/codec2.git
GIT_TAG ${CODEC2_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/codec2"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
BUILD_BYPRODUCTS "${CODEC2_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -186,16 +205,22 @@ endif (NOT WIN32 AND (NOT CODEC2_FOUND OR CODEC2_EXTERNAL))
if (NOT APPLE AND (NOT CM256CC_FOUND OR CM256CC_EXTERNAL))
# needs boost
if (WIN32)
set(CM256CC_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/cm256cc.lib" CACHE INTERNAL "")
elseif (LINUX)
set(CM256CC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libcm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
endif ()
string(REPLACE ";" "|" CMAKE_PREFIX_PATH_SEP "${CMAKE_PREFIX_PATH}")
ExternalProject_Add(cm256cc
GIT_REPOSITORY https://github.com/f4exb/cm256cc.git
GIT_TAG ${CM256CC_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/cm256cc"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
LIST_SEPARATOR |
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DBUILD_TOOLS=OFF
-DBOOST_ROOT="${BOOST_ROOT}"
-DBoost_INCLUDE_DIR=${Boost_INCLUDE_DIRS}
-DBoost_INCLUDE_DIRS=${Boost_INCLUDE_DIRS}
-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_SEP}
-DENABLE_DISTRIBUTION=ON
BUILD_BYPRODUCTS "${CM256CC_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -205,10 +230,7 @@ if (NOT APPLE AND (NOT CM256CC_FOUND OR CM256CC_EXTERNAL))
# we need cm256cc/library.h
set(CM256CC_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/cm256cc/src" CACHE INTERNAL "")
if (WIN32)
set(CM256CC_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/cm256cc.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/cm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (LINUX)
set(CM256CC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libcm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
elseif (APPLE) # kept in case of relaxation of APPLE exclusion
set(CM256CC_LIBRARIES "${binary_dir}/libcm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}"
@ -228,7 +250,7 @@ if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND (NOT LIBMBE_FOUND OR LIBMBE_EX
GIT_REPOSITORY https://github.com/kasper93/mbelib.git
GIT_TAG ${MBELIB_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/mbelib"
CMAKE_ARGS -DDISABLE_TEST=ON ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS -DDISABLE_TEST=ON ${COMMON_CMAKE_ARGS}
BUILD_BYPRODUCTS "${LIBMBE_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
@ -251,12 +273,17 @@ endif ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND (NOT LIBMBE_FOUND OR LIBMBE
if (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL)
# Works on MacOS with a dummy serialDV
if (WIN32)
set(LIBSERIALDV_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/serialdv.lib" CACHE INTERNAL "")
elseif (LINUX)
set(LIBSERIALDV_LIBRARY "${EXTERNAL_BUILD_LIBRARIES}/lib/libserialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
endif ()
ExternalProject_Add(serialdv
GIT_REPOSITORY https://github.com/f4exb/serialDV.git
GIT_TAG ${SERIALDV_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/serialdv"
CMAKE_ARGS -DBUILD_TOOL=OFF ${DEFAULT_OUTPUT_DIRECTORIES}
INSTALL_COMMAND ""
CMAKE_ARGS -DBUILD_TOOL=OFF ${COMMON_CMAKE_ARGS}
BUILD_BYPRODUCTS "${LIBSERIALDV_LIBRARY}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -266,11 +293,9 @@ if (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL)
set(LIBSERIALDV_EXTERNAL ON CACHE INTERNAL "")
set(LIBSERIALDV_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "")
if (WIN32)
set(LIBSERIALDV_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/serialdv.lib" CACHE INTERNAL "")
makeCopyDir("${source_dir}" "${source_dir}/dsp" serialdv)
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/serialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (LINUX)
set(LIBSERIALDV_LIBRARY "${EXTERNAL_BUILD_LIBRARIES}/lib/libserialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
# because sdrbase/dsp/dvserialworker.h use dsp/dvcontroller.h
# so we need a link
makeLink("${source_dir}" "${source_dir}/dsp" serialdv)
@ -286,17 +311,23 @@ if (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL)
endif (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL)
if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND LIBMBE_FOUND)
if (WIN32)
set(LIBDSDCC_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/dsdcc.lib" CACHE INTERNAL "")
elseif (LINUX)
set(LIBDSDCC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
endif ()
ExternalProject_Add(dsdcc
GIT_REPOSITORY https://github.com/f4exb/dsdcc.git
GIT_TAG ${DSDCC_TAG}
DEPENDS ${DSDCC_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/dsdcc"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DBUILD_TOOL=OFF -DUSE_MBELIB=${USE_MBELIB}
-DLIBMBE_INCLUDE_DIR=${LIBMBE_INCLUDE_DIR}
-DLIBMBE_LIBRARY=${LIBMBE_LIBRARIES}
-DLIBSERIALDV_INCLUDE_DIR=${LIBSERIALDV_INCLUDE_DIR}
-DLIBSERIALDV_LIBRARY=${LIBSERIALDV_LIBRARY}
BUILD_BYPRODUCTS "${LIBDSDCC_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -305,10 +336,7 @@ if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND LIBMBE_FOUND)
set(LIBDSDCC_EXTERNAL ON CACHE INTERNAL "")
set(LIBDSDCC_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/dsdcc/src" CACHE INTERNAL "")
if (WIN32)
set(LIBDSDCC_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/dsdcc.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/dsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (LINUX)
set(LIBDSDCC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
elseif (APPLE)
set(LIBDSDCC_LIBRARIES "${binary_dir}/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}"
@ -347,134 +375,142 @@ if (LINUX)
# apt install liblimesuite-dev (only on ubuntu 18.04). Can be picky on version though so let's build it.
# needs pkgconfig and libusb
if (NOT LIMESUITE_FOUND OR LIMESUITE_EXTERNAL)
ExternalProject_Add(limesuite
GIT_REPOSITORY https://github.com/myriadrf/LimeSuite.git
GIT_TAG ${LIMESUITE_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/limesuite"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES} -DLIME_SUITE_EXTVER=release -DENABLE_GUI=OFF -DENABLE_NOVENARF7=OFF -DENABLE_SOAPY_LMS7=OFF -DENABLE_OCTAVE=OFF -DENABLE_SIMD_FLAGS=SSE3
INSTALL_COMMAND ""
TEST_COMMAND ""
)
ExternalProject_Get_Property(limesuite source_dir)
set(LIMESUITE_FOUND ON CACHE INTERNAL "")
set(LIMESUITE_EXTERNAL ON CACHE INTERNAL "")
set(LIMESUITE_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/limesuite/src/limesuite/src" CACHE INTERNAL "")
set(LIMESUITE_LIBRARY "${EXTERNAL_BUILD_LIBRARIES}/lib/libLimeSuite.so" CACHE INTERNAL "")
ExternalProject_Add(limesuite
GIT_REPOSITORY https://github.com/myriadrf/LimeSuite.git
GIT_TAG ${LIMESUITE_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/limesuite"
CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DLIME_SUITE_EXTVER=release -DENABLE_GUI=OFF -DENABLE_NOVENARF7=OFF -DENABLE_SOAPY_LMS7=OFF -DENABLE_OCTAVE=OFF -DENABLE_SIMD_FLAGS=SSE3
BUILD_BYPRODUCTS "${LIMESUITE_LIBRARY}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
ExternalProject_Get_Property(limesuite source_dir)
makeCopyFile("${source_dir}/src/limeRFE/limeRFE.h" "${source_dir}/src/lime/limeRFE.h" limesuite)
endif (NOT LIMESUITE_FOUND OR LIMESUITE_EXTERNAL)
# apt install libbladerf-dev
# needs pkgconfig and libusb
if (NOT LIBBLADERF_FOUND OR LIBBLADERF_EXTERNAL)
set(LIBBLADERF_FOUND ON CACHE INTERNAL "")
set(LIBBLADERF_EXTERNAL ON CACHE INTERNAL "")
set(LIBBLADERF_INCLUDE_DIRS "${EXTERNAL_BUILD_LIBRARIES}/bladerf/src/bladerf/host/libraries/libbladeRF/include" CACHE INTERNAL "")
set(LIBBLADERF_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/bladerf/src/bladerf-build/output/libbladeRF.so.2" CACHE INTERNAL "")
ExternalProject_Add(bladerf
GIT_REPOSITORY https://github.com/Nuand/bladeRF.git
GIT_TAG ${BLADERF_TAG}
GIT_SUBMODULES
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/bladerf"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
SOURCE_SUBDIR host/
BUILD_BYPRODUCTS "${LIBBLADERF_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
set(LIBBLADERF_FOUND ON CACHE INTERNAL "")
set(LIBBLADERF_EXTERNAL ON CACHE INTERNAL "")
set(LIBBLADERF_INCLUDE_DIRS "${EXTERNAL_BUILD_LIBRARIES}/bladerf/src/bladerf/host/libraries/libbladeRF/include" CACHE INTERNAL "")
set(LIBBLADERF_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libbladeRF.so" CACHE INTERNAL "")
install(FILES "${LIBBLADERF_LIBRARIES}" DESTINATION "${INSTALL_LIB_DIR}")
endif (NOT LIBBLADERF_FOUND OR LIBBLADERF_EXTERNAL)
# apt install libiio-dev
# needs pkgconfig, libusb, libxml2, lzma, xz, libiconv
if (NOT LIBIIO_FOUND OR LIBIIO_EXTERNAL)
ExternalProject_Add(libiio
GIT_REPOSITORY https://github.com/analogdevicesinc/libiio.git
GIT_TAG ${LIBIIO_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/libiio"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES} -DOSX_PACKAGE=OFF -DWITH_DOC=OFF
INSTALL_COMMAND ""
TEST_COMMAND ""
)
set(LIBIIO_FOUND ON CACHE INTERNAL "")
set(LIBIIO_EXTERNAL ON CACHE INTERNAL "")
set(LIBIIO_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/libiio/src/libiio" CACHE INTERNAL "")
set(LIBIIO_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libiio.so" CACHE INTERNAL "")
ExternalProject_Add(libiio
GIT_REPOSITORY https://github.com/analogdevicesinc/libiio.git
GIT_TAG ${LIBIIO_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/libiio"
CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DOSX_PACKAGE=OFF -DWITH_DOC=OFF
BUILD_BYPRODUCTS "${LIBIIO_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
endif (NOT LIBIIO_FOUND OR LIBIIO_EXTERNAL)
# apt install libairspyhf-dev (only on ubuntu 18.04)
# needs libusb and pkgconfig
if (NOT LIBAIRSPYHF_FOUND OR LIBAIRSPYHF_EXTERNAL)
set(LIBAIRSPYHF_FOUND ON CACHE INTERNAL "")
set(LIBAIRSPYHF_EXTERNAL ON CACHE INTERNAL "")
set(LIBAIRSPYHF_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libairspyhf.so" CACHE INTERNAL "")
ExternalProject_Add(airspyhf
GIT_REPOSITORY https://github.com/airspy/airspyhf.git
GIT_TAG ${AIRSPYHF_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/airspyhf"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
BUILD_BYPRODUCTS "${LIBAIRSPYHF_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
ExternalProject_Get_Property(airspyhf source_dir)
set(LIBAIRSPYHF_FOUND ON CACHE INTERNAL "")
set(LIBAIRSPYHF_EXTERNAL ON CACHE INTERNAL "")
set(LIBAIRSPYHF_INCLUDE_DIR "${source_dir}/.." CACHE INTERNAL "")
set(LIBAIRSPYHF_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libairspyhf.so" CACHE INTERNAL "")
makeLink("${source_dir}/libairspyhf/src" "${source_dir}/../libairspyhf" airspyhf)
endif (NOT LIBAIRSPYHF_FOUND OR LIBAIRSPYHF_EXTERNAL)
# needs pkgconfig, libusb, autoconf, automake and libtool
if (NOT LIBPERSEUS_FOUND OR LIBPERSEUS_EXTERNAL)
ExternalProject_Add(perseus
GIT_REPOSITORY https://github.com/f4exb/libperseus-sdr.git
GIT_TAG ${PERSEUS_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/perseus"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
INSTALL_COMMAND ""
TEST_COMMAND ""
)
set(LIBPERSEUS_FOUND ON CACHE INTERNAL "")
set(LIBPERSEUS_EXTERNAL ON CACHE INTERNAL "")
set(LIBPERSEUS_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/perseus/src/perseus" CACHE INTERNAL "")
set(LIBPERSEUS_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libperseus-sdr.so" CACHE INTERNAL "")
ExternalProject_Add(perseus
GIT_REPOSITORY https://github.com/f4exb/libperseus-sdr.git
GIT_TAG ${PERSEUS_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/perseus"
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
BUILD_BYPRODUCTS "${LIBPERSEUS_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
endif (NOT LIBPERSEUS_FOUND OR LIBPERSEUS_EXTERNAL)
# apt install librtlsdr-dev
# needs pkgconfig and libusb
if (NOT LIBRTLSDR_FOUND OR LIBRTLSDR_EXTERNAL)
ExternalProject_Add(rtlsdr
GIT_REPOSITORY https://github.com/osmocom/rtl-sdr.git
GIT_TAG ${RTLSDR_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/rtlsdr"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES} -DDETACH_KERNEL_DRIVER=ON -DINSTALL_UDEV_RULES=${RTLSDR_UDEV}
INSTALL_COMMAND ""
TEST_COMMAND ""
)
set(LIBRTLSDR_FOUND ON CACHE INTERNAL "")
set(LIBRTLSDR_EXTERNAL ON CACHE INTERNAL "")
set(LIBRTLSDR_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/rtlsdr/src/rtlsdr/include" CACHE INTERNAL "")
set(LIBRTLSDR_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/librtlsdr.so" CACHE INTERNAL "")
ExternalProject_Add(rtlsdr
GIT_REPOSITORY https://github.com/osmocom/rtl-sdr.git
GIT_TAG ${RTLSDR_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/rtlsdr"
CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DDETACH_KERNEL_DRIVER=ON -DINSTALL_UDEV_RULES=${RTLSDR_UDEV}
BUILD_BYPRODUCTS "${LIBRTLSDR_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
endif (NOT LIBRTLSDR_FOUND OR LIBRTLSDR_EXTERNAL)
# needs pkgconfig and libusb
if (NOT LIBMIRISDR_FOUND OR LIBMIRISDR_EXTERNAL)
ExternalProject_Add(libmirisdr
GIT_REPOSITORY https://github.com/f4exb/libmirisdr-4.git
GIT_TAG ${MIRISDR_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/libmirisdr"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
INSTALL_COMMAND ""
TEST_COMMAND ""
)
set(LIBMIRISDR_FOUND ON CACHE INTERNAL "")
set(LIBMIRISDR_EXTERNAL ON CACHE INTERNAL "")
set(LIBMIRISDR_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/libmirisdr/src/libmirisdr/include" CACHE INTERNAL "")
set(LIBMIRISDR_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libmirisdr.so" CACHE INTERNAL "")
ExternalProject_Add(libmirisdr
GIT_REPOSITORY https://github.com/f4exb/libmirisdr-4.git
GIT_TAG ${MIRISDR_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/libmirisdr"
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
BUILD_BYPRODUCTS "${LIBMIRISDR_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
endif (NOT LIBMIRISDR_FOUND OR LIBMIRISDR_EXTERNAL)
endif (LINUX)
if (WIN32 OR APPLE)
if (ENABLE_RTLSDR)
set(RTLSDR_LIBUSB_INCLUDE "${LIBUSB_INCLUDE_DIR}")
if (WIN32)
set(LIBRTLSDR_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/rtlsdr.lib" CACHE INTERNAL "")
set(RTLSDR_LIBUSB_INCLUDE "${LIBUSB_INCLUDE_DIR}/libusb-1.0")
else ()
set(RTLSDR_LIBUSB_INCLUDE "${LIBUSB_INCLUDE_DIR}")
endif ()
# needs pkgconfig and libusb
ExternalProject_Add(rtlsdr
@ -482,12 +518,13 @@ if (WIN32 OR APPLE)
GIT_TAG ${RTLSDR_TAG}
DEPENDS ${PTHREADS4W_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/rtlsdr"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DINSTALL_UDEV_RULES=${RTLSDR_UDEV}
-DLIBUSB_LIBRARIES=${LIBUSB_LIBRARIES}
-DLIBUSB_INCLUDE_DIR=${RTLSDR_LIBUSB_INCLUDE}
-DTHREADS_PTHREADS_INCLUDE_DIR=${PTHREADS4W_INCLUDE_DIR}
-DTHREADS_PTHREADS_WIN32_LIBRARY=${PTHREADS4W_LIBRARIES}
BUILD_BYPRODUCTS "${LIBRTLSDR_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -496,7 +533,6 @@ if (WIN32 OR APPLE)
set(LIBRTLSDR_EXTERNAL ON CACHE INTERNAL "")
set(LIBRTLSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "")
if (WIN32)
set(LIBRTLSDR_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/rtlsdr.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/rtlsdr${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (APPLE)
set(LIBRTLSDR_LIBRARIES "${binary_dir}/src/librtlsdr${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
@ -508,11 +544,14 @@ if (WIN32 OR APPLE)
if (ENABLE_LIMESUITE)
# needs pkgconfig, libusb
if (WIN32)
set(LIMESUITE_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/LimeSuite.lib" CACHE INTERNAL "")
endif ()
ExternalProject_Add(limesuite
GIT_REPOSITORY https://github.com/myriadrf/LimeSuite.git
GIT_TAG ${LIMESUITE_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/limesuite"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DLIME_SUITE_EXTVER=release
-DENABLE_GUI=OFF
-DENABLE_NOVENARF7=OFF
@ -522,6 +561,7 @@ if (WIN32 OR APPLE)
-DENABLE_EXAMPLES=OFF
-DENABLE_SIMD_FLAGS=SSE3
-DFX3_SDK_PATH=${FX3SDK_DIR}
BUILD_BYPRODUCTS "${LIMESUITE_LIBRARY}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -530,7 +570,6 @@ if (WIN32 OR APPLE)
set(LIMESUITE_EXTERNAL ON CACHE INTERNAL "")
set(LIMESUITE_INCLUDE_DIR "${source_dir}/src" CACHE INTERNAL "")
if (WIN32)
set(LIMESUITE_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/LimeSuite.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/LimeSuite${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
makeCopy("${source_dir}/src/limeRFE/limeRFE.h" "${source_dir}/src/lime/limeRFE.h" limesuite)
elseif (APPLE)
@ -542,14 +581,18 @@ if (WIN32 OR APPLE)
endif (ENABLE_LIMESUITE)
if (ENABLE_SOAPYSDR)
if (WIN32)
set(SOAPYSDR_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR.lib" CACHE INTERNAL "")
endif ()
ExternalProject_Add(soapysdr
GIT_REPOSITORY https://github.com/pothosware/SoapySDR.git
GIT_TAG ${SOAPYSDR_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/soapysdr"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DENABLE_PYTHON=OFF
-DENABLE_PYTHON3=OFF
-DENABLE_TESTS=OFF
BUILD_BYPRODUCTS "${SOAPYSDR_LIBRARY}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -558,7 +601,6 @@ if (WIN32 OR APPLE)
set(SOAPYSDR_EXTERNAL ON CACHE INTERNAL "")
set(SOAPYSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "")
if (WIN32)
set(SOAPYSDR_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/SoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (APPLE)
set(SOAPYSDR_LIBRARY "${binary_dir}/lib/libSoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
@ -569,10 +611,10 @@ if (WIN32 OR APPLE)
endif (ENABLE_SOAPYSDR)
if (ENABLE_AIRSPY)
set(AIRSPY_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
if (WIN32)
set(LIBAIRSPY_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspy.lib" CACHE INTERNAL "")
set(AIRSPY_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0)
else ()
set(AIRSPY_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
endif ()
# needs libusb, pthreads
ExternalProject_Add(airspy
@ -580,11 +622,13 @@ if (WIN32 OR APPLE)
GIT_TAG ${AIRSPY_TAG}
DEPENDS ${PTHREADS4W_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/airspy"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
SOURCE_SUBDIR "libairspy"
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DLIBUSB_LIBRARIES=${LIBUSB_LIBRARIES}
-DLIBUSB_INCLUDE_DIR=${AIRSPY_LIBUSB_INCLUDE_DIR}
-DTHREADS_PTHREADS_INCLUDE_DIR=${PTHREADS4W_INCLUDE_DIR}
-DTHREADS_PTHREADS_WIN32_LIBRARY=${PTHREADS4W_LIBRARIES}
BUILD_BYPRODUCTS "${LIBAIRSPY_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -594,9 +638,8 @@ if (WIN32 OR APPLE)
set(LIBAIRSPY_EXTERNAL ON CACHE INTERNAL "")
set(LIBAIRSPY_INCLUDE_DIR "${source_dir}/libairspy/src" CACHE INTERNAL "")
if (WIN32)
set(LIBAIRSPY_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspy.lib" CACHE INTERNAL "")
makeCopyDir("${source_dir}/libairspy/src" "${source_dir}/libairspy/src/libairspy" airspy)
makeCopy("${binary_dir}/airspy-tools/src/airspy${CMAKE_SHARED_LIBRARY_SUFFIX}" "${SDRANGEL_BINARY_BIN_DIR}/airspy${CMAKE_SHARED_LIBRARY_SUFFIX}" airspy)
makeCopy("${binary_dir}/../airspy-tools/src/airspy${CMAKE_SHARED_LIBRARY_SUFFIX}" "${SDRANGEL_BINARY_BIN_DIR}/airspy${CMAKE_SHARED_LIBRARY_SUFFIX}" airspy)
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/airspy${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (APPLE)
set(LIBAIRSPY_LIBRARIES "${binary_dir}/libairspy/src/libairspy${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
@ -608,10 +651,10 @@ if (WIN32 OR APPLE)
endif (ENABLE_AIRSPY)
if (ENABLE_AIRSPYHF)
set(AIRSPYHF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
if (WIN32)
set(LIBAIRSPYHF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspyhf.lib" CACHE INTERNAL "")
set(AIRSPYHF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0)
else ()
set(AIRSPYHF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
endif ()
# needs pkgconfig, libusb, pthreads
ExternalProject_Add(airspyhf
@ -619,11 +662,12 @@ if (WIN32 OR APPLE)
GIT_TAG ${AIRSPYHF_TAG}
DEPENDS ${PTHREADS4W_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/airspyhf"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DLIBUSB_LIBRARIES=${LIBUSB_LIBRARIES}
-DLIBUSB_INCLUDE_DIR=${AIRSPYHF_LIBUSB_INCLUDE_DIR}
-DTHREADS_PTHREADS_INCLUDE_DIR=${PTHREADS4W_INCLUDE_DIR}
-DTHREADS_PTHREADS_WIN32_LIBRARY=${PTHREADS4W_LIBRARIES}
BUILD_BYPRODUCTS "${LIBAIRSPYHF_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -633,7 +677,6 @@ if (WIN32 OR APPLE)
set(LIBAIRSPYHF_EXTERNAL ON CACHE INTERNAL "")
set(LIBAIRSPYHF_INCLUDE_DIR "${source_dir}/libairspyhf/src" CACHE INTERNAL "")
if (WIN32)
set(LIBAIRSPYHF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspyhf.lib" CACHE INTERNAL "")
makeCopyDir("${source_dir}/libairspyhf/src" "${source_dir}/libairspyhf/src/libairspyhf" airspyhf)
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/airspyhf${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (APPLE)
@ -652,6 +695,7 @@ if (WIN32 OR APPLE)
# needs pkgconfig, libusb, fftw, pthreads
if (WIN32)
set(HACKRF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0)
set(LIBHACKRF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/hackrf.lib" CACHE INTERNAL "")
else ()
set(HACKRF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
endif ()
@ -662,13 +706,14 @@ if (WIN32 OR APPLE)
DEPENDS ${PTHREADS4W_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/hackrf"
SOURCE_SUBDIR "host/libhackrf"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DLIBUSB_LIBRARIES=${LIBUSB_LIBRARIES}
-DLIBUSB_INCLUDE_DIR=${HACKRF_LIBUSB_INCLUDE_DIR}
-DTHREADS_PTHREADS_INCLUDE_DIR=${PTHREADS4W_INCLUDE_DIR}
-DTHREADS_PTHREADS_WIN32_LIBRARY=${PTHREADS4W_LIBRARIES}
-DFFTW_INCLUDES=${FFTW3F_INCLUDE_DIRS}
-DFFTW_LIBRARIES=${FFTW3F_LIBRARIES}
BUILD_BYPRODUCTS "${LIBHACKRF_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -678,7 +723,6 @@ if (WIN32 OR APPLE)
set(LIBHACKRF_EXTERNAL ON CACHE INTERNAL "")
set(LIBHACKRF_INCLUDE_DIR "${source_dir}/host/libhackrf" CACHE INTERNAL "")
if (WIN32)
set(LIBHACKRF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/hackrf.lib" CACHE INTERNAL "")
# include "libhackrf/hackrf.h"
makeCopyDir("${source_dir}/host/libhackrf/src" "${source_dir}/host/libhackrf/libhackrf" hackrf)
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/hackrf${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
@ -725,6 +769,7 @@ if (WIN32 OR APPLE)
set(LIBXML2_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "")
if (WIN32)
set(LIBXML2_LIBRARIES "${source_dir}/win32/bin.msvc/libxml2.lib" CACHE INTERNAL "")
set(LIBIIO_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/libiio.lib" CACHE INTERNAL "")
makeCopy("${source_dir}/win32/bin.msvc/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" "${SDRANGEL_BINARY_BIN_DIR}/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" libxml2)
install(FILES "${source_dir}/win32/bin.msvc/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (APPLE)
@ -739,7 +784,7 @@ if (WIN32 OR APPLE)
GIT_TAG ${LIBIIO_TAG}
DEPENDS ${PTHREADS4W_DEPENDS} ${LIBXML2_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/libiio"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DLIBUSB_LIBRARIES=${LIBUSB_LIBRARIES}
-DLIBUSB_INCLUDE_DIR=${LIBUSB_INCLUDE_DIR}
-DTHREADS_PTHREADS_INCLUDE_DIR=${PTHREADS4W_INCLUDE_DIR}
@ -750,6 +795,7 @@ if (WIN32 OR APPLE)
-DPYTHON_BINDINGS=OFF
-DWITH_MATLAB_BINDINGS_API=OFF
-DOSX_PACKAGE=OFF
BUILD_BYPRODUCTS "${LIBIIO_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -759,7 +805,6 @@ if (WIN32 OR APPLE)
set(LIBIIO_EXTERNAL ON CACHE INTERNAL "")
set(LIBIIO_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "")
if (WIN32)
set(LIBIIO_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/libiio.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (APPLE)
set(LIBIIO_LIBRARIES "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
@ -774,12 +819,16 @@ if (WIN32 OR APPLE)
if (ENABLE_BLADERF)
# needs pkgconfig, libusb, pthreads
if (WIN32)
set(LIBBLADERF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/bladeRF.lib" CACHE INTERNAL "")
endif ()
ExternalProject_Add(bladerf
GIT_REPOSITORY https://github.com/Nuand/bladeRF.git
GIT_TAG ${BLADERF_TAG}
DEPENDS ${PTHREADS4W_DEPENDS}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/bladerf"
CMAKE_ARGS ${DEFAULT_OUTPUT_DIRECTORIES}
SOURCE_SUBDIR "host"
CMAKE_ARGS ${COMMON_CMAKE_ARGS}
-DPKG_CONFIG_EXECUTABLE=${PKG_CONFIG_EXECUTABLE}
-DENABLE_BACKEND_USB=ON
-DENABLE_BACKEND_LIBUSB=ON
@ -793,6 +842,7 @@ if (WIN32 OR APPLE)
-DENABLE_HOST_BUILD=ON
-DENABLE_BACKEND_CYAPI=OFF
-DTREAT_WARNINGS_AS_ERRORS=OFF
BUILD_BYPRODUCTS "${LIBBLADERF_LIBRARIES}"
INSTALL_COMMAND ""
TEST_COMMAND ""
)
@ -802,7 +852,6 @@ if (WIN32 OR APPLE)
set(LIBBLADERF_EXTERNAL ON CACHE INTERNAL "")
set(LIBBLADERF_INCLUDE_DIRS "${source_dir}/host/libraries/libbladeRF/include" CACHE INTERNAL "")
if (WIN32)
set(LIBBLADERF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/bladeRF.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/bladeRF${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif (APPLE)
set(LIBBLADERF_LIBRARIES "${binary_dir}/host/output/libbladeRF${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")

Wyświetl plik

@ -25,10 +25,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
)
include_directories(
${Boost_INCLUDE_DIRS}
)
add_library(chanalyzer SHARED
${chanalyzer_SOURCES}
)

Wyświetl plik

@ -22,7 +22,6 @@ set(atv_HEADERS
)
include_directories(
${Boost_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
)

Wyświetl plik

@ -30,7 +30,6 @@ set(bfm_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIRS}
)
if(NOT SERVER_MODE)

Wyświetl plik

@ -22,7 +22,6 @@ set(filesink_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIR}
)
if(NOT SERVER_MODE)

Wyświetl plik

@ -22,7 +22,6 @@ set(localsink_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIR}
)
if(NOT SERVER_MODE)

Wyświetl plik

@ -33,7 +33,6 @@ set(remotesink_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIRS}
${CM256CC_INCLUDE_DIR}
${CUSTOM_WINDOWS_INCLUDE}
)

Wyświetl plik

@ -22,7 +22,6 @@ set(localsource_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIRS}
)
if(NOT SERVER_MODE)

Wyświetl plik

@ -20,7 +20,6 @@ set(mod_ieee_802_15_4_HEADERS
)
include_directories(
${Boost_INCLUDE_DIRS}
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
)

Wyświetl plik

@ -31,7 +31,6 @@ set(remotesource_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIRS}
${CM256CC_INCLUDE_DIR}
${CUSTOM_WINDOWS_INCLUDE}
)

Wyświetl plik

@ -34,7 +34,6 @@ set(remoteoutput_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${CMAKE_SOURCE_DIR}/devices
${Boost_INCLUDE_DIRS}
${CM256CC_INCLUDE_DIR}
)

Wyświetl plik

@ -1,7 +1,3 @@
if(WIN32)
link_directories(${BOOST_LIBRARYDIR})
endif()
project(usrpoutput)
set(usrpoutput_SOURCES
@ -24,7 +20,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${CMAKE_SOURCE_DIR}/devices
${UHD_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
)
if(NOT SERVER_MODE)

Wyświetl plik

@ -18,7 +18,6 @@ set(kiwisdr_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIRS}
)
if(NOT SERVER_MODE)

Wyświetl plik

@ -29,7 +29,6 @@ set(remoteinput_HEADERS
include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIRS}
${CM256CC_INCLUDE_DIR}
)

Wyświetl plik

@ -1,7 +1,3 @@
if(WIN32)
link_directories(${BOOST_LIBRARYDIR})
endif()
project(usrpinput)
set(usrpinput_SOURCES
@ -24,7 +20,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${CMAKE_SOURCE_DIR}/devices
${UHD_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
)
if(NOT SERVER_MODE)

Wyświetl plik

@ -360,7 +360,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/logging
${CMAKE_SOURCE_DIR}/qrtplib
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${Boost_INCLUDE_DIRS}
${OPUS_INCLUDE_DIRS}
)
@ -381,6 +380,7 @@ target_link_libraries(sdrbase
${sdrbase_FFTW3F_LIB}
${sdrbase_SERIALDV_LIB}
${sdrbase_LIMERFE_LIB}
Boost::headers
Qt5::Core
Qt5::Multimedia
Qt5::WebSockets

Wyświetl plik

@ -27,7 +27,7 @@
#include <libgen.h>
#endif
#if !defined(__WINDOWS__) && !defined(__APPLE__)
#if !defined(_WIN32) && !defined(__APPLE__)
#include <termios.h>
#include <sys/ioctl.h>
#include <linux/serial.h>
@ -51,7 +51,7 @@ AMBEEngine::~AMBEEngine()
qDebug("AMBEEngine::~AMBEEngine: %lu controllers", m_controllers.size());
}
#if defined(__WINDOWS__)
#if defined(_WIN32)
void AMBEEngine::getComList()
{
m_comList.clear();
@ -119,7 +119,7 @@ void AMBEEngine::getComList()
}
#endif // not Windows nor Apple
#if !defined(__WINDOWS__) && !defined(__APPLE__)
#if !defined(_WIN32) && !defined(__APPLE__)
void AMBEEngine::register_comport(
std::vector<std::string>& comList,
std::vector<std::string>& comList8250,

Wyświetl plik

@ -73,7 +73,7 @@ private:
std::string device;
};
#ifndef __WINDOWS__
#ifndef _WIN32
static std::string get_driver(const std::string& tty);
static void register_comport(std::vector<std::string>& comList, std::vector<std::string>& comList8250, const std::string& dir);
static void probe_serial8250_comports(std::vector<std::string>& comList, std::vector<std::string> comList8250);

Wyświetl plik

@ -18,7 +18,7 @@
#include <string.h>
#include <regex>
#if defined(__WINDOWS__)
#if defined(_WIN32)
#include <Windows.h>
#include <winbase.h>
#include <tchar.h>
@ -31,7 +31,7 @@
#include "serialutil.h"
#if defined(__WINDOWS__)
#if defined(_WIN32)
void SerialUtil::getComPorts(std::vector<std::string>& comPorts, const std::string& regexStr)
{
(void) regexStr;

Wyświetl plik

@ -231,7 +231,6 @@ include_directories(
${CMAKE_SOURCE_DIR}/httpserver
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
${OPENGL_INCLUDE_DIR}
${Boost_INCLUDE_DIRS}
)
add_library(sdrgui SHARED