Added more flexible build options

This commit is contained in:
Sergei I. Korolev 2020-04-30 15:19:19 +03:00
parent 634821296d
commit d9ea8d4abc
35 changed files with 908 additions and 819 deletions

View File

@ -108,6 +108,10 @@ if(NOT DEBUG_OUTPUT)
add_definitions("-DQT_NO_DEBUG_OUTPUT") add_definitions("-DQT_NO_DEBUG_OUTPUT")
endif() endif()
if(ENABLE_EXTERNAL_LIBRARIES STREQUAL "AUTO")
set(AUTO_EXTERNAL_LIBRARIES ON CACHE INTERNAL "")
endif(ENABLE_EXTERNAL_LIBRARIES)
# declare build structures # declare build structures
# !! change sdrbase/plugins/pluginmanager.cpp too !! # !! change sdrbase/plugins/pluginmanager.cpp too !!
set(SDRANGEL_BINARY_BIN_DIR "${CMAKE_BINARY_DIR}/bin") set(SDRANGEL_BINARY_BIN_DIR "${CMAKE_BINARY_DIR}/bin")

View File

@ -1,16 +1,17 @@
INCLUDE(FindPkgConfig) if (NOT CM256CC_FOUND)
PKG_CHECK_MODULES(PC_CM256cc "libcm256cc") INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PC_CM256cc "libcm256cc")
FIND_PATH(CM256CC_INCLUDE_DIR FIND_PATH(CM256CC_INCLUDE_DIR
NAMES cm256cc/cm256.h NAMES cm256cc/cm256.h
HINTS ${CM256CC_DIR}/include HINTS ${CM256CC_DIR}/include
${PC_CM256CC_INCLUDE_DIR} ${PC_CM256CC_INCLUDE_DIR}
${CMAKE_INSTALL_PREFIX}/include ${CMAKE_INSTALL_PREFIX}/include
PATHS /usr/local/include PATHS /usr/local/include
/usr/include /usr/include
) )
FIND_LIBRARY(CM256CC_LIBRARIES FIND_LIBRARY(CM256CC_LIBRARIES
NAMES cm256cc libcm256cc NAMES cm256cc libcm256cc
HINTS ${CM256CC_DIR}/lib HINTS ${CM256CC_DIR}/lib
${CM256CC_DIR}/lib64 ${CM256CC_DIR}/lib64
@ -21,16 +22,17 @@ FIND_LIBRARY(CM256CC_LIBRARIES
/usr/local/lib64 /usr/local/lib64
/usr/lib /usr/lib
/usr/lib64 /usr/lib64
) )
if(CM256CC_INCLUDE_DIR AND CM256CC_LIBRARIES) if(CM256CC_INCLUDE_DIR AND CM256CC_LIBRARIES)
set(CM256CC_FOUND TRUE CACHE INTERNAL "CM256CC found") set(CM256CC_FOUND TRUE CACHE INTERNAL "CM256CC found")
message(STATUS "Found CM256cc: ${CM256CC_INCLUDE_DIR}, ${CM256CC_LIBRARIES}") message(STATUS "Found CM256cc: ${CM256CC_INCLUDE_DIR}, ${CM256CC_LIBRARIES}")
else(CM256CC_INCLUDE_DIR AND CM256CC_LIBRARIES) else(CM256CC_INCLUDE_DIR AND CM256CC_LIBRARIES)
set(CM256CC_FOUND FALSE CACHE INTERNAL "CM256CC found") set(CM256CC_FOUND FALSE CACHE INTERNAL "CM256CC found")
message(STATUS "CM256cc not found") message(STATUS "CM256cc not found")
endif(CM256CC_INCLUDE_DIR AND CM256CC_LIBRARIES) endif(CM256CC_INCLUDE_DIR AND CM256CC_LIBRARIES)
INCLUDE(FindPackageHandleStandardArgs) INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CM256CC DEFAULT_MSG CM256CC_LIBRARIES CM256CC_INCLUDE_DIR) FIND_PACKAGE_HANDLE_STANDARD_ARGS(CM256CC DEFAULT_MSG CM256CC_LIBRARIES CM256CC_INCLUDE_DIR)
MARK_AS_ADVANCED(CM256CC_LIBRARIES CM256CC_INCLUDE_DIR) MARK_AS_ADVANCED(CM256CC_LIBRARIES CM256CC_INCLUDE_DIR)
endif (NOT CM256CC_FOUND)

View File

@ -1,16 +1,17 @@
INCLUDE(FindPkgConfig) if (NOT CODEC2_FOUND)
PKG_CHECK_MODULES(PC_CODEC2 "codec2") INCLUDE(FindPkgConfig)
PKG_CHECK_MODULES(PC_CODEC2 "codec2")
FIND_PATH(CODEC2_INCLUDE_DIR FIND_PATH(CODEC2_INCLUDE_DIR
NAMES codec2/codec2.h NAMES codec2/codec2.h
HINTS ${CODEC2_DIR}/include HINTS ${CODEC2_DIR}/include
${PC_CODEC2_INCLUDE_DIR} ${PC_CODEC2_INCLUDE_DIR}
${CMAKE_INSTALL_PREFIX}/include ${CMAKE_INSTALL_PREFIX}/include
PATHS /usr/local/include PATHS /usr/local/include
/usr/include /usr/include
) )
FIND_LIBRARY(CODEC2_LIBRARIES FIND_LIBRARY(CODEC2_LIBRARIES
NAMES codec2 libcodec2 NAMES codec2 libcodec2
HINTS ${CODEC2_DIR}/lib HINTS ${CODEC2_DIR}/lib
${CODEC2_DIR}/lib64 ${CODEC2_DIR}/lib64
@ -21,16 +22,17 @@ FIND_LIBRARY(CODEC2_LIBRARIES
/usr/local/lib64 /usr/local/lib64
/usr/lib /usr/lib
/usr/lib64 /usr/lib64
) )
if(CODEC2_INCLUDE_DIR AND CODEC2_LIBRARIES) if(CODEC2_INCLUDE_DIR AND CODEC2_LIBRARIES)
set(CODEC2_FOUND TRUE CACHE INTERNAL "CODEC2 found") set(CODEC2_FOUND TRUE CACHE INTERNAL "CODEC2 found")
message(STATUS "Found Codec2: ${CODEC2_INCLUDE_DIR}, ${CODEC2_LIBRARIES}") message(STATUS "Found Codec2: ${CODEC2_INCLUDE_DIR}, ${CODEC2_LIBRARIES}")
else() else()
set(CODEC2_FOUND FALSE CACHE INTERNAL "CODEC2 found") set(CODEC2_FOUND FALSE CACHE INTERNAL "CODEC2 found")
message(STATUS "Codec2 not found") message(STATUS "Codec2 not found")
endif() endif()
INCLUDE(FindPackageHandleStandardArgs) INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(CODEC2 DEFAULT_MSG CODEC2_LIBRARIES CODEC2_INCLUDE_DIR) FIND_PACKAGE_HANDLE_STANDARD_ARGS(CODEC2 DEFAULT_MSG CODEC2_LIBRARIES CODEC2_INCLUDE_DIR)
MARK_AS_ADVANCED(CODEC2_LIBRARIES CODEC2_INCLUDE_DIR) MARK_AS_ADVANCED(CODEC2_LIBRARIES CODEC2_INCLUDE_DIR)
endif (NOT CODEC2_FOUND)

View File

@ -1,33 +1,34 @@
# Find libmbe # Find libmbe
if (NOT LIBMBE_FOUND)
find_path(LIBMBE_INCLUDE_DIR find_path(LIBMBE_INCLUDE_DIR
NAMES mbelib.h NAMES mbelib.h
HINTS ${MBE_DIR}/include HINTS ${MBE_DIR}/include
PATHS /usr/include PATHS /usr/include
/usr/local/include /usr/local/include
) )
set(LIBMBE_NAMES ${LIBMBE_NAMES} mbe libmbe) set(LIBMBE_NAMES ${LIBMBE_NAMES} mbe libmbe)
find_library(LIBMBE_LIBRARY find_library(LIBMBE_LIBRARIES
NAMES ${LIBMBE_NAMES} NAMES ${LIBMBE_NAMES}
HINTS ${MBE_DIR}/lib HINTS ${MBE_DIR}/lib
PATHS /usr/include PATHS /usr/lib
/usr/local/include /usr/local/lib
) )
if (LIBMBE_INCLUDE_DIR AND LIBMBE_LIBRARY) if (LIBMBE_INCLUDE_DIR AND LIBMBE_LIBRARIES)
set(LIBMBE_FOUND TRUE) set(LIBMBE_FOUND TRUE CACHE INTERNAL "libmbe found")
endif (LIBMBE_INCLUDE_DIR AND LIBMBE_LIBRARY)
if (LIBMBE_FOUND)
if (NOT LibMbe_FIND_QUIETLY) if (NOT LibMbe_FIND_QUIETLY)
message (STATUS "Found LibMbe: ${LIBMBE_INCLUDE_DIR}, ${LIBMBE_LIBRARY}") message(STATUS "Found LibMbe: ${LIBMBE_INCLUDE_DIR}, ${LIBMBE_LIBRARY}")
endif (NOT LibMbe_FIND_QUIETLY) endif (NOT LibMbe_FIND_QUIETLY)
else (LIBMBE_FOUND) else (LIBMBE_INCLUDE_DIR AND LIBMBE_LIBRARIES)
if (LibMbe_FIND_REQUIRED) set(LIBMBE_FOUND FALSE CACHE INTERNAL "libmbe found")
message (FATAL_ERROR "Could not find mbe")
endif (LibMbe_FIND_REQUIRED)
endif (LIBMBE_FOUND)
mark_as_advanced(LIBMBE_INCLUDE_DIR LIBMBE_LIBRARY) if (LibMbe_FIND_REQUIRED)
message(FATAL_ERROR "Could not find LibMbe")
endif (LibMbe_FIND_REQUIRED)
endif (LIBMBE_INCLUDE_DIR AND LIBMBE_LIBRARIES)
mark_as_advanced(LIBMBE_INCLUDE_DIR LIBMBE_LIBRARIES)
endif (NOT LIBMBE_FOUND)

View File

@ -1,15 +1,15 @@
# Find Lime Suite # Find Lime Suite
if (NOT LIMESUITE_FOUND)
if (NOT LIMESUITE_INCLUDE_DIR) if (NOT LIMESUITE_INCLUDE_DIR)
find_path (LIMESUITE_INCLUDE_DIR find_path (LIMESUITE_INCLUDE_DIR
NAMES lime/LimeSuite.h NAMES lime/LimeSuite.h
HINTS ${LIMESUITE_DIR}/include HINTS ${LIMESUITE_DIR}/include
PATHS /usr/include PATHS /usr/include
/usr/local/include /usr/local/include
) )
endif() endif()
if (NOT LIMESUITE_LIBRARY) if (NOT LIMESUITE_LIBRARY)
find_library (LIMESUITE_LIBRARY find_library (LIMESUITE_LIBRARY
NAMES LimeSuite NAMES LimeSuite
HINTS ${LIMESUITE_DIR}/lib HINTS ${LIMESUITE_DIR}/lib
@ -20,16 +20,15 @@ if (NOT LIMESUITE_LIBRARY)
/usr/lib /usr/lib
/usr/lib64 /usr/lib64
) )
endif() endif()
if (LIMESUITE_INCLUDE_DIR AND LIMESUITE_LIBRARY) if (LIMESUITE_INCLUDE_DIR AND LIMESUITE_LIBRARY)
set(LIMESUITE_FOUND TRUE) set(LIMESUITE_FOUND TRUE CACHE INTERNAL "")
endif (LIMESUITE_INCLUDE_DIR AND LIMESUITE_LIBRARY)
if (LIMESUITE_FOUND)
message (STATUS "Found Lime Suite: ${LIMESUITE_INCLUDE_DIR}, ${LIMESUITE_LIBRARY}") message (STATUS "Found Lime Suite: ${LIMESUITE_INCLUDE_DIR}, ${LIMESUITE_LIBRARY}")
else (LIMESUITE_FOUND) else (LIMESUITE_INCLUDE_DIR AND LIMESUITE_LIBRARY)
set(LIMESUITE_FOUND FALSE CACHE INTERNAL "")
message (STATUS "Could not find Lime Suite") message (STATUS "Could not find Lime Suite")
endif (LIMESUITE_FOUND) endif (LIMESUITE_INCLUDE_DIR AND LIMESUITE_LIBRARY)
mark_as_advanced(LIMESUITE_INCLUDE_DIR LIMESUITE_LIBRARY) mark_as_advanced(LIMESUITE_INCLUDE_DIR LIMESUITE_LIBRARY)
endif (NOT LIMESUITE_FOUND)

View File

@ -1,33 +1,34 @@
# Find serialDV # Find serialDV
if (NOT LIBSERIALDV_FOUND)
find_path(LIBSERIALDV_INCLUDE_DIR find_path(LIBSERIALDV_INCLUDE_DIR
NAMES dvcontroller.h NAMES dvcontroller.h
HINTS ${SERIALDV_DIR}/include/serialdv HINTS ${SERIALDV_DIR}/include/serialdv
PATHS /usr/include/serialdv PATHS /usr/include/serialdv
/usr/local/include/serialdv /usr/local/include/serialdv
) )
set(LIBSERIAL_NAMES ${LIBSERIAL_NAMES} serialdv libserialdv) set(LIBSERIAL_NAMES ${LIBSERIAL_NAMES} serialdv libserialdv)
find_library(LIBSERIALDV_LIBRARY find_library(LIBSERIALDV_LIBRARY
NAMES serialdv NAMES serialdv
HINTS ${SERIALDV_DIR}/lib HINTS ${SERIALDV_DIR}/lib
PATHS /usr/lib PATHS /usr/lib
/usr/local/lib /usr/local/lib
) )
if (LIBSERIALDV_INCLUDE_DIR AND LIBSERIALDV_LIBRARY) if (LIBSERIALDV_INCLUDE_DIR AND LIBSERIALDV_LIBRARY)
set(LIBSERIALDV_FOUND TRUE) set(LIBSERIALDV_FOUND TRUE CACHE INTERNAL "")
endif (LIBSERIALDV_INCLUDE_DIR AND LIBSERIALDV_LIBRARY)
if (LIBSERIALDV_FOUND)
if (NOT SerialDV_FIND_QUIETLY) if (NOT SerialDV_FIND_QUIETLY)
message (STATUS "Found libserialdv: ${LIBSERIALDV_INCLUDE_DIR}, ${LIBSERIALDV_LIBRARY}") message (STATUS "Found libserialdv: ${LIBSERIALDV_INCLUDE_DIR}, ${LIBSERIALDV_LIBRARY}")
endif (NOT SerialDV_FIND_QUIETLY) endif (NOT SerialDV_FIND_QUIETLY)
else (LIBSERIALDV_FOUND) else (LIBSERIALDV_INCLUDE_DIR AND LIBSERIALDV_LIBRARY)
set(LIBSERIALDV_FOUND FALSE CACHE INTERNAL "")
if (SerialDV_FIND_REQUIRED) if (SerialDV_FIND_REQUIRED)
message (FATAL_ERROR "Could not find SerialDV") message (FATAL_ERROR "Could not find SerialDV")
endif (SerialDV_FIND_REQUIRED) endif (SerialDV_FIND_REQUIRED)
endif (LIBSERIALDV_FOUND) endif (LIBSERIALDV_INCLUDE_DIR AND LIBSERIALDV_LIBRARY)
mark_as_advanced(LIBSERIALDV_INCLUDE_DIR LIBSERIALDV_LIBRARY) mark_as_advanced(LIBSERIALDV_INCLUDE_DIR LIBSERIALDV_LIBRARY)
endif (NOT LIBSERIALDV_FOUND)

0
debian/rules vendored Normal file → Executable file
View File

View File

@ -21,7 +21,7 @@ add_library(bladerf1device SHARED
${bladerf1device_SOURCES} ${bladerf1device_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBBLADERF_EXTERNAL)
add_dependencies(bladerf1device bladerf) add_dependencies(bladerf1device bladerf)
endif() endif()

View File

@ -18,7 +18,7 @@ add_library(bladerf2device SHARED
${bladerf2device_SOURCES} ${bladerf2device_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBBLADERF_EXTERNAL)
add_dependencies(bladerf2device bladerf) add_dependencies(bladerf2device bladerf)
endif() endif()

View File

@ -29,7 +29,7 @@ target_link_libraries(hackrfdevice
sdrbase sdrbase
) )
if(ENABLE_EXTERNAL_LIBRARIES AND NOT LINUX) if(LIBHACKRF_EXTERNAL AND NOT LINUX)
add_dependencies(hackrfdevice hackrf) add_dependencies(hackrfdevice hackrf)
endif() endif()

View File

@ -28,7 +28,7 @@ target_link_libraries(limesdrdevice
sdrbase sdrbase
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIMESUITE_EXTERNAL)
add_dependencies(limesdrdevice limesuite) add_dependencies(limesdrdevice limesuite)
endif() endif()

View File

@ -19,7 +19,7 @@ add_library(perseusdevice SHARED
${perseusdevice_SOURCES} ${perseusdevice_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBPERSEUS_EXTERNAL)
add_dependencies(perseusdevice perseus) add_dependencies(perseusdevice perseus)
endif() endif()

View File

@ -35,7 +35,7 @@ target_link_libraries(plutosdrdevice
${ICONV_LIBRARY} ${ICONV_LIBRARY}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBIIO_EXTERNAL)
add_dependencies(plutosdrdevice libiio) add_dependencies(plutosdrdevice libiio)
endif() endif()

View File

@ -30,7 +30,7 @@ target_link_libraries(soapysdrdevice
sdrbase sdrbase
) )
if(ENABLE_EXTERNAL_LIBRARIES AND NOT LINUX) if(SOAPYSDR_EXTERNAL AND NOT LINUX)
add_dependencies(soapysdrdevice soapysdr) add_dependencies(soapysdrdevice soapysdr)
endif() endif()

View File

@ -18,6 +18,7 @@ set(BLADERF_TAG "2019.07")
set(LIBIIO_TAG 826563e41b5ce9890b75506f672017de8d76d52d) set(LIBIIO_TAG 826563e41b5ce9890b75506f672017de8d76d52d)
set(AIRSPYHF_TAG "1.1.5") set(AIRSPYHF_TAG "1.1.5")
set(PERSEUS_TAG afefa23e3140ac79d845acb68cf0beeb86d09028) set(PERSEUS_TAG afefa23e3140ac79d845acb68cf0beeb86d09028)
set(MIRISDR_TAG "v1.1.2")
set(PTHREADS4W_TAG "Version-2-11-0-release") set(PTHREADS4W_TAG "Version-2-11-0-release")
set(RTLSDR_TAG be1d1206bfb6e6c41f7d91b20b77e20f929fa6a7) set(RTLSDR_TAG be1d1206bfb6e6c41f7d91b20b77e20f929fa6a7)
@ -34,7 +35,7 @@ set(LIBXML2_TAG "v2.9.9")
include(ExternalProject) include(ExternalProject)
# default build destination in windows to avoid Release/Debug folder # default build destination in windows to avoid Release/Debug folder
if(WIN32) if (WIN32)
# the build will be output on the same folder of sdrangel # the build will be output on the same folder of sdrangel
set(DEFAULT_OUTPUT_DIRECTORIES set(DEFAULT_OUTPUT_DIRECTORIES
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${SDRANGEL_BINARY_BIN_DIR} -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${SDRANGEL_BINARY_BIN_DIR}
@ -47,8 +48,8 @@ if(WIN32)
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG=${SDRANGEL_BINARY_LIB_DIR} -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG=${SDRANGEL_BINARY_LIB_DIR}
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=${SDRANGEL_BINARY_LIB_DIR} -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=${SDRANGEL_BINARY_LIB_DIR}
) )
elseif(LINUX) elseif (LINUX)
set(DEFAULT_OUTPUT_DIRECTORIES set(DEFAULT_OUTPUT_DIRECTORIES
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${EXTERNAL_BUILD_LIBRARIES}/bin -DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${EXTERNAL_BUILD_LIBRARIES}/bin
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=${EXTERNAL_BUILD_LIBRARIES}/bin -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG=${EXTERNAL_BUILD_LIBRARIES}/bin
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=${EXTERNAL_BUILD_LIBRARIES}/bin -DCMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE=${EXTERNAL_BUILD_LIBRARIES}/bin
@ -58,83 +59,98 @@ set(DEFAULT_OUTPUT_DIRECTORIES
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${EXTERNAL_BUILD_LIBRARIES}/lib -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${EXTERNAL_BUILD_LIBRARIES}/lib
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG=${EXTERNAL_BUILD_LIBRARIES}/lib -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG=${EXTERNAL_BUILD_LIBRARIES}/lib
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=${EXTERNAL_BUILD_LIBRARIES}/lib) -DCMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE=${EXTERNAL_BUILD_LIBRARIES}/lib)
endif() endif ()
if(LINUX) if (LINUX)
# macro that create symbolic links # macro that create symbolic links
macro(makeLink src dest target) macro(makeLink src dest target)
if(NOT EXISTS ${dest}) if (NOT EXISTS ${dest})
add_custom_command(TARGET ${target} PRE_BUILD add_custom_command(TARGET ${target} PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink ${src} ${dest} DEPENDS ${dest} COMMENT "mklink ${src} -> ${dest}") COMMAND ${CMAKE_COMMAND} -E create_symlink ${src} ${dest} DEPENDS ${dest} COMMENT "mklink ${src} -> ${dest}")
endif() endif ()
endmacro() endmacro()
# macro that copy folder # macro that copy folder
macro(makeCopy src dest target) macro(makeCopy src dest target)
if(NOT EXISTS ${dest}) if (NOT EXISTS ${dest})
add_custom_command(TARGET ${target} PRE_BUILD add_custom_command(TARGET ${target} PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}") COMMAND ${CMAKE_COMMAND} -E copy_directory ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}")
endif() endif ()
endmacro() endmacro()
# macro that copy file # macro that copy file
macro(makeCopyFile src dest target) macro(makeCopyFile src dest target)
if(NOT EXISTS ${dest}) if (NOT EXISTS ${dest})
add_custom_command(TARGET ${target} PRE_BUILD add_custom_command(TARGET ${target} PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}") COMMAND ${CMAKE_COMMAND} -E copy ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}")
endif() endif ()
endmacro() endmacro()
else() else ()
# macro that create symbolic links # macro that create symbolic links
macro(makeLink src dest target) macro(makeLink src dest target)
if(NOT EXISTS ${dest}) if (NOT EXISTS ${dest})
add_custom_command(TARGET ${target} POST_BUILD add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E create_symlink ${src} ${dest} DEPENDS ${dest} COMMENT "mklink ${src} -> ${dest}") COMMAND ${CMAKE_COMMAND} -E create_symlink ${src} ${dest} DEPENDS ${dest} COMMENT "mklink ${src} -> ${dest}")
endif() endif ()
endmacro() endmacro()
# macro that copy folder # macro that copy folder
macro(makeCopyDir src dest target) macro(makeCopyDir src dest target)
if(NOT EXISTS ${dest}) if (NOT EXISTS ${dest})
add_custom_command(TARGET ${target} POST_BUILD add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}") COMMAND ${CMAKE_COMMAND} -E copy_directory ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}")
endif() endif ()
endmacro() endmacro()
# macro that copy file # macro that copy file
macro(makeCopy src dest target) macro(makeCopy src dest target)
if(NOT EXISTS ${dest}) if (NOT EXISTS ${dest})
add_custom_command(TARGET ${target} POST_BUILD add_custom_command(TARGET ${target} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}") COMMAND ${CMAKE_COMMAND} -E copy ${src} ${dest} DEPENDS ${dest} COMMENT "copy ${src} -> ${dest}")
endif() endif ()
endmacro() endmacro()
endif(LINUX) endif (LINUX)
if(WIN32) if (WIN32)
if(VS2015) if (VS2015)
if(CMAKE_SIZEOF_VOID_P EQUAL 8) if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VCREDIST_FILE "vcredist_msvc2015_x64${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "") set(VCREDIST_FILE "vcredist_msvc2015_x64${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
# maybe add arm architecture # maybe add arm architecture
else() else ()
set(VCREDIST_FILE "vcredist_msvc2015_x86${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "") set(VCREDIST_FILE "vcredist_msvc2015_x86${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
endif() endif ()
elseif(VS2017) elseif (VS2017)
if(CMAKE_SIZEOF_VOID_P EQUAL 8) if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VCREDIST_FILE "vcredist_msvc2017_x64${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "") set(VCREDIST_FILE "vcredist_msvc2017_x64${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
# maybe add arm architecture # maybe add arm architecture
else() else ()
set(VCREDIST_FILE "vcredist_msvc2017_x86${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "") set(VCREDIST_FILE "vcredist_msvc2017_x86${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
endif() endif ()
else() else ()
if(CMAKE_SIZEOF_VOID_P EQUAL 8) if (CMAKE_SIZEOF_VOID_P EQUAL 8)
set(VCREDIST_FILE "vc_redist.x64${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "") set(VCREDIST_FILE "vc_redist.x64${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
# maybe add arm architecture # maybe add arm architecture
else() else ()
set(VCREDIST_FILE "vc_redist.x86${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "") set(VCREDIST_FILE "vc_redist.x86${CMAKE_EXECUTABLE_SUFFIX}" CACHE INTERNAL "")
endif() endif ()
endif() endif ()
install(FILES "${EXTERNAL_LIBRARY_FOLDER}/vcredist/${VCREDIST_FILE}" DESTINATION "${INSTALL_BIN_DIR}") install(FILES "${EXTERNAL_LIBRARY_FOLDER}/vcredist/${VCREDIST_FILE}" DESTINATION "${INSTALL_BIN_DIR}")
endif(WIN32) endif (WIN32)
if(NOT WIN32) if (AUTO_EXTERNAL_LIBRARIES)
find_package(Codec2)
find_package(CM256cc)
find_package(LibMbe)
find_package(SerialDV)
find_package(LibDSDcc)
find_package(LimeSuite)
find_package(LibBLADERF)
find_package(LibMiriSDR)
find_package(LibIIO)
find_package(LibAIRSPYHF)
find_package(LibPerseus)
find_package(LibRTLSDR)
endif (AUTO_EXTERNAL_LIBRARIES)
if (NOT WIN32 AND (NOT CODEC2_FOUND OR CODEC2_EXTERNAL))
# needs speexdsp # needs speexdsp
ExternalProject_Add(codec2 ExternalProject_Add(codec2
GIT_REPOSITORY https://github.com/drowe67/codec2.git GIT_REPOSITORY https://github.com/drowe67/codec2.git
@ -146,22 +162,23 @@ if(NOT WIN32)
) )
ExternalProject_Get_Property(codec2 source_dir binary_dir) ExternalProject_Get_Property(codec2 source_dir binary_dir)
set(CODEC2_FOUND ON CACHE INTERNAL "") set(CODEC2_FOUND ON CACHE INTERNAL "")
set(CODEC2_EXTERNAL ON CACHE INTERNAL "")
set(CODEC2_INCLUDE_DIR "${source_dir}/src" "${binary_dir}" CACHE INTERNAL "") set(CODEC2_INCLUDE_DIR "${source_dir}/src" "${binary_dir}" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(CODEC2_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/codec2.lib" CACHE INTERNAL "") set(CODEC2_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/codec2.lib" CACHE INTERNAL "")
makeCopy("${source_dir}/src" "${source_dir}/src/codec2" codec2) makeCopy("${source_dir}/src" "${source_dir}/src/codec2" codec2)
elseif(LINUX) elseif (LINUX)
set(CODEC2_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libcodec2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(CODEC2_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libcodec2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
makeLink("${source_dir}/src" "${source_dir}/src/codec2" codec2) makeLink("${source_dir}/src" "${source_dir}/src/codec2" codec2)
else() else ()
set(CODEC2_LIBRARIES "${binary_dir}/src/libcodec2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(CODEC2_LIBRARIES "${binary_dir}/src/libcodec2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
# some source include "codec2/comp.h" and some without codec2 # some source include "codec2/comp.h" and some without codec2
makeLink("${source_dir}/src" "${source_dir}/src/codec2" codec2) makeLink("${source_dir}/src" "${source_dir}/src/codec2" codec2)
endif() endif ()
endif() endif (NOT WIN32 AND (NOT CODEC2_FOUND OR CODEC2_EXTERNAL))
# needs boost if (NOT APPLE AND (NOT CM256CC_FOUND OR CM256CC_EXTERNAL))
if(NOT APPLE) # needs boost
ExternalProject_Add(cm256cc ExternalProject_Add(cm256cc
GIT_REPOSITORY https://github.com/f4exb/cm256cc.git GIT_REPOSITORY https://github.com/f4exb/cm256cc.git
GIT_TAG ${CM256CC_TAG} GIT_TAG ${CM256CC_TAG}
@ -177,70 +194,77 @@ if(NOT APPLE)
) )
ExternalProject_Get_Property(cm256cc source_dir binary_dir) ExternalProject_Get_Property(cm256cc source_dir binary_dir)
set(CM256CC_FOUND ON CACHE INTERNAL "") set(CM256CC_FOUND ON CACHE INTERNAL "")
set(CM256CC_EXTERNAL ON CACHE INTERNAL "")
# we need cm256cc/library.h # we need cm256cc/library.h
set(CM256CC_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/cm256cc/src" CACHE INTERNAL "") set(CM256CC_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/cm256cc/src" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(CM256CC_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/cm256cc.lib" CACHE INTERNAL "") 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/cm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(LINUX) elseif (LINUX)
set(CM256CC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libcm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(CM256CC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libcm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
elseif(APPLE) # kept in case of relaxation of APPLE exclusion elseif (APPLE) # kept in case of relaxation of APPLE exclusion
set(CM256CC_LIBRARIES "${binary_dir}/libcm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(CM256CC_LIBRARIES "${binary_dir}/libcm256cc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libcm256cc*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libcm256cc*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}")
endif() endif ()
endif() # NOT APPLE endif (NOT APPLE AND (NOT CM256CC_FOUND OR CM256CC_EXTERNAL))
set(USE_MBELIB OFF) if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND (NOT LIBMBE_FOUND OR LIBMBE_EXTERNAL))
ExternalProject_Add(mbelib set(USE_MBELIB OFF)
ExternalProject_Add(mbelib
GIT_REPOSITORY https://github.com/szechyjs/mbelib.git GIT_REPOSITORY https://github.com/szechyjs/mbelib.git
GIT_TAG ${MBELIB_TAG} GIT_TAG ${MBELIB_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/mbelib" PREFIX "${EXTERNAL_BUILD_LIBRARIES}/mbelib"
CMAKE_ARGS -DDISABLE_TEST=ON ${DEFAULT_OUTPUT_DIRECTORIES} CMAKE_ARGS -DDISABLE_TEST=ON ${DEFAULT_OUTPUT_DIRECTORIES}
INSTALL_COMMAND "" INSTALL_COMMAND ""
TEST_COMMAND "" TEST_COMMAND ""
) )
ExternalProject_Get_Property(mbelib source_dir binary_dir) ExternalProject_Get_Property(mbelib source_dir binary_dir)
set(USE_MBELIB ON) set(USE_MBELIB ON)
set(DSDCC_DEPENDS mbelib) set(DSDCC_DEPENDS mbelib)
set(LIBMBE_FOUND ON CACHE INTERNAL "") set(LIBMBE_FOUND ON CACHE INTERNAL "")
set(LIBMBE_INCLUDE_DIR "${source_dir}") set(LIBMBE_EXTERNAL ON CACHE INTERNAL "")
if(WIN32) set(LIBMBE_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "")
set(LIBMBE_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/mbe.lib") if (WIN32)
set(LIBMBE_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/mbe.lib" CACHE INTERNAL "")
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/mbe${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/mbe${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(LINUX) elseif (LINUX)
set(LIBMBE_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libmbe${CMAKE_SHARED_LIBRARY_SUFFIX}") set(LIBMBE_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libmbe${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
elseif(APPLE) elseif (APPLE)
set(LIBMBE_LIBRARIES "${binary_dir}/libmbe${CMAKE_SHARED_LIBRARY_SUFFIX}") set(LIBMBE_LIBRARIES "${binary_dir}/libmbe${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libmbe*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libmbe*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}")
endif() endif ()
endif ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND (NOT LIBMBE_FOUND OR LIBMBE_EXTERNAL))
# Works on MacOS with a dummy serialDV if (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL)
ExternalProject_Add(serialdv # Works on MacOS with a dummy serialDV
ExternalProject_Add(serialdv
GIT_REPOSITORY https://github.com/f4exb/serialDV.git GIT_REPOSITORY https://github.com/f4exb/serialDV.git
GIT_TAG ${SERIALDV_TAG} GIT_TAG ${SERIALDV_TAG}
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/serialdv" PREFIX "${EXTERNAL_BUILD_LIBRARIES}/serialdv"
CMAKE_ARGS -DBUILD_TOOL=OFF ${DEFAULT_OUTPUT_DIRECTORIES} CMAKE_ARGS -DBUILD_TOOL=OFF ${DEFAULT_OUTPUT_DIRECTORIES}
INSTALL_COMMAND "" INSTALL_COMMAND ""
INSTALL_COMMAND ""
TEST_COMMAND "" TEST_COMMAND ""
) )
ExternalProject_Get_Property(serialdv source_dir binary_dir) ExternalProject_Get_Property(serialdv source_dir binary_dir)
set(DSDCC_DEPENDS ${DSDCC_DEPENDS} serialdv) set(DSDCC_DEPENDS ${DSDCC_DEPENDS} serialdv)
set(LIBSERIALDV_FOUND ON CACHE INTERNAL "") set(LIBSERIALDV_FOUND ON CACHE INTERNAL "")
set(LIBSERIALDV_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") set(LIBSERIALDV_EXTERNAL ON CACHE INTERNAL "")
if(WIN32) set(LIBSERIALDV_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "")
if (WIN32)
set(LIBSERIALDV_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/serialdv.lib" CACHE INTERNAL "") set(LIBSERIALDV_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/serialdv.lib" CACHE INTERNAL "")
makeCopyDir("${source_dir}" "${source_dir}/dsp" serialdv) makeCopyDir("${source_dir}" "${source_dir}/dsp" serialdv)
install(FILES "${SDRANGEL_BINARY_BIN_DIR}/serialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/serialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(LINUX) elseif (LINUX)
set(LIBSERIALDV_LIBRARY "${EXTERNAL_BUILD_LIBRARIES}/lib/libserialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBSERIALDV_LIBRARY "${EXTERNAL_BUILD_LIBRARIES}/lib/libserialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
# because sdrbase/dsp/dvserialworker.h use dsp/dvcontroller.h # because sdrbase/dsp/dvserialworker.h use dsp/dvcontroller.h
# so we need a link # so we need a link
makeLink("${source_dir}" "${source_dir}/dsp" serialdv) makeLink("${source_dir}" "${source_dir}/dsp" serialdv)
elseif(APPLE) elseif (APPLE)
set(LIBSERIALDV_LIBRARY "${binary_dir}/libserialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBSERIALDV_LIBRARY "${binary_dir}/libserialdv${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
# because sdrbase/dsp/dvserialworker.h use dsp/dvcontroller.h # because sdrbase/dsp/dvserialworker.h use dsp/dvcontroller.h
# so we need a link # so we need a link
@ -248,9 +272,11 @@ elseif(APPLE)
install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libserialdv*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libserialdv*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}")
endif() endif ()
endif (NOT LIBSERIALDV_FOUND OR LIBSERIALDV_EXTERNAL)
ExternalProject_Add(dsdcc if ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND LIBMBE_FOUND)
ExternalProject_Add(dsdcc
GIT_REPOSITORY https://github.com/f4exb/dsdcc.git GIT_REPOSITORY https://github.com/f4exb/dsdcc.git
GIT_TAG ${DSDCC_TAG} GIT_TAG ${DSDCC_TAG}
DEPENDS ${DSDCC_DEPENDS} DEPENDS ${DSDCC_DEPENDS}
@ -263,24 +289,26 @@ ExternalProject_Add(dsdcc
-DLIBSERIALDV_LIBRARY=${LIBSERIALDV_LIBRARY} -DLIBSERIALDV_LIBRARY=${LIBSERIALDV_LIBRARY}
INSTALL_COMMAND "" INSTALL_COMMAND ""
TEST_COMMAND "" TEST_COMMAND ""
) )
ExternalProject_Get_Property(dsdcc source_dir binary_dir) ExternalProject_Get_Property(dsdcc source_dir binary_dir)
set(LIBDSDCC_FOUND ON CACHE INTERNAL "") set(LIBDSDCC_FOUND ON CACHE INTERNAL "")
set(LIBDSDCC_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/dsdcc/src" CACHE INTERNAL "") set(LIBDSDCC_EXTERNAL ON CACHE INTERNAL "")
if(WIN32) set(LIBDSDCC_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/dsdcc/src" CACHE INTERNAL "")
if (WIN32)
set(LIBDSDCC_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/dsdcc.lib" CACHE INTERNAL "") 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/dsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(LINUX) elseif (LINUX)
set(LIBDSDCC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBDSDCC_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
elseif(APPLE) elseif (APPLE)
set(LIBDSDCC_LIBRARIES "${binary_dir}/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBDSDCC_LIBRARIES "${binary_dir}/libdsdcc${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libdsdcc*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libdsdcc*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/")
endif() endif ()
endif ((NOT LIBDSDCC_FOUND OR LIBDSDCC_EXTERNAL) AND LIBMBE_FOUND)
# requirements needed by many packages on windows # requirements needed by many packages on windows
if(WIN32) if (WIN32)
ExternalProject_Add(pthreads4w ExternalProject_Add(pthreads4w
GIT_REPOSITORY https://git.code.sf.net/p/pthreads4w/code GIT_REPOSITORY https://git.code.sf.net/p/pthreads4w/code
GIT_TAG ${PTHREADS4W_TAG} GIT_TAG ${PTHREADS4W_TAG}
@ -295,18 +323,20 @@ if(WIN32)
ExternalProject_Get_Property(pthreads4w source_dir binary_dir) ExternalProject_Get_Property(pthreads4w source_dir binary_dir)
set(PTHREADS4W_DEPENDS pthreads4w) set(PTHREADS4W_DEPENDS pthreads4w)
set(PTHREADS4W_FOUND ON CACHE INTERNAL "") set(PTHREADS4W_FOUND ON CACHE INTERNAL "")
set(PTHREADS4W_EXTERNAL ON CACHE INTERNAL "")
set(PTHREADS4W_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") set(PTHREADS4W_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "")
set(PTHREADS4W_LIBRARIES "${source_dir}/pthreadVC2.lib" CACHE INTERNAL "") set(PTHREADS4W_LIBRARIES "${source_dir}/pthreadVC2.lib" CACHE INTERNAL "")
makeCopy("${source_dir}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" "${SDRANGEL_BINARY_BIN_DIR}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" pthreads4w) makeCopy("${source_dir}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" "${SDRANGEL_BINARY_BIN_DIR}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" pthreads4w)
# needed by bladerf # needed by bladerf
makeCopy("${source_dir}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" "${source_dir}/dll/x64/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" pthreads4w) makeCopy("${source_dir}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" "${source_dir}/dll/x64/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" pthreads4w)
install(FILES "${source_dir}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}") install(FILES "${source_dir}/pthreadVC2${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
endif(WIN32) endif (WIN32)
# Device interface libraries. Use external libraries build for these. Only Linux for now. # Device interface libraries. Use external libraries build for these. Only Linux for now.
if (LINUX) if (LINUX)
# apt install liblimesuite-dev (only on ubuntu 18.04). Can be picky on version though so let's build it. # apt install liblimesuite-dev (only on ubuntu 18.04). Can be picky on version though so let's build it.
# needs pkgconfig and libusb # needs pkgconfig and libusb
if (NOT LIMESUITE_FOUND OR LIMESUITE_EXTERNAL)
ExternalProject_Add(limesuite ExternalProject_Add(limesuite
GIT_REPOSITORY https://github.com/myriadrf/LimeSuite.git GIT_REPOSITORY https://github.com/myriadrf/LimeSuite.git
GIT_TAG ${LIMESUITE_TAG} GIT_TAG ${LIMESUITE_TAG}
@ -317,12 +347,15 @@ if (LINUX)
) )
ExternalProject_Get_Property(limesuite source_dir) ExternalProject_Get_Property(limesuite source_dir)
set(LIMESUITE_FOUND ON CACHE INTERNAL "") 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_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/limesuite/src/limesuite/src" CACHE INTERNAL "")
set(LIMESUITE_LIBRARY "${EXTERNAL_BUILD_LIBRARIES}/lib/libLimeSuite.so" CACHE INTERNAL "") set(LIMESUITE_LIBRARY "${EXTERNAL_BUILD_LIBRARIES}/lib/libLimeSuite.so" CACHE INTERNAL "")
makeCopyFile("${source_dir}/src/limeRFE/limeRFE.h" "${source_dir}/src/lime/limeRFE.h" limesuite) 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 # apt install libbladerf-dev
# needs pkgconfig and libusb # needs pkgconfig and libusb
if (NOT LIBBLADERF_FOUND OR LIBBLADERF_EXTERNAL)
ExternalProject_Add(bladerf ExternalProject_Add(bladerf
GIT_REPOSITORY https://github.com/Nuand/bladeRF.git GIT_REPOSITORY https://github.com/Nuand/bladeRF.git
GIT_TAG ${BLADERF_TAG} GIT_TAG ${BLADERF_TAG}
@ -334,11 +367,14 @@ if (LINUX)
TEST_COMMAND "" TEST_COMMAND ""
) )
set(LIBBLADERF_FOUND ON CACHE INTERNAL "") 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_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 "") set(LIBBLADERF_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libbladeRF.so" CACHE INTERNAL "")
endif (NOT LIBBLADERF_FOUND OR LIBBLADERF_EXTERNAL)
# apt install libiio-dev # apt install libiio-dev
# needs pkgconfig, libusb, libxml2, lzma, xz, libiconv # needs pkgconfig, libusb, libxml2, lzma, xz, libiconv
if (NOT LIBIIO_FOUND OR LIBIIO_EXTERNAL)
ExternalProject_Add(libiio ExternalProject_Add(libiio
GIT_REPOSITORY https://github.com/analogdevicesinc/libiio.git GIT_REPOSITORY https://github.com/analogdevicesinc/libiio.git
GIT_TAG ${LIBIIO_TAG} GIT_TAG ${LIBIIO_TAG}
@ -348,11 +384,14 @@ if (LINUX)
TEST_COMMAND "" TEST_COMMAND ""
) )
set(LIBIIO_FOUND ON CACHE INTERNAL "") 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_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/libiio/src/libiio" CACHE INTERNAL "")
set(LIBIIO_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libiio.so" CACHE INTERNAL "") set(LIBIIO_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libiio.so" CACHE INTERNAL "")
endif (NOT LIBIIO_FOUND OR LIBIIO_EXTERNAL)
# apt install libairspyhf-dev (only on ubuntu 18.04) # apt install libairspyhf-dev (only on ubuntu 18.04)
# needs libusb and pkgconfig # needs libusb and pkgconfig
if (NOT LIBAIRSPYHF_FOUND OR LIBAIRSPYHF_EXTERNAL)
ExternalProject_Add(airspyhf ExternalProject_Add(airspyhf
GIT_REPOSITORY https://github.com/airspy/airspyhf.git GIT_REPOSITORY https://github.com/airspy/airspyhf.git
GIT_TAG ${AIRSPYHF_TAG} GIT_TAG ${AIRSPYHF_TAG}
@ -363,11 +402,14 @@ if (LINUX)
) )
ExternalProject_Get_Property(airspyhf source_dir) ExternalProject_Get_Property(airspyhf source_dir)
set(LIBAIRSPYHF_FOUND ON CACHE INTERNAL "") set(LIBAIRSPYHF_FOUND ON CACHE INTERNAL "")
set(LIBAIRSPYHF_EXTERNAL ON CACHE INTERNAL "")
set(LIBAIRSPYHF_INCLUDE_DIR "${source_dir}/.." CACHE INTERNAL "") set(LIBAIRSPYHF_INCLUDE_DIR "${source_dir}/.." CACHE INTERNAL "")
set(LIBAIRSPYHF_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libairspyhf.so" CACHE INTERNAL "") set(LIBAIRSPYHF_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libairspyhf.so" CACHE INTERNAL "")
makeLink("${source_dir}/libairspyhf/src" "${source_dir}/../libairspyhf" airspyhf) makeLink("${source_dir}/libairspyhf/src" "${source_dir}/../libairspyhf" airspyhf)
endif (NOT LIBAIRSPYHF_FOUND OR LIBAIRSPYHF_EXTERNAL)
# needs pkgconfig, libusb, autoconf, automake and libtool # needs pkgconfig, libusb, autoconf, automake and libtool
if (NOT LIBPERSEUS_FOUND OR LIBPERSEUS_EXTERNAL)
ExternalProject_Add(perseus ExternalProject_Add(perseus
GIT_REPOSITORY https://github.com/f4exb/libperseus-sdr.git GIT_REPOSITORY https://github.com/f4exb/libperseus-sdr.git
GIT_TAG ${PERSEUS_TAG} GIT_TAG ${PERSEUS_TAG}
@ -377,11 +419,14 @@ if (LINUX)
TEST_COMMAND "" TEST_COMMAND ""
) )
set(LIBPERSEUS_FOUND ON CACHE INTERNAL "") 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_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/perseus/src/perseus" CACHE INTERNAL "")
set(LIBPERSEUS_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libperseus-sdr.so" CACHE INTERNAL "") set(LIBPERSEUS_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/libperseus-sdr.so" CACHE INTERNAL "")
endif (NOT LIBPERSEUS_FOUND OR LIBPERSEUS_EXTERNAL)
# apt install librtlsdr-dev # apt install librtlsdr-dev
# needs pkgconfig and libusb # needs pkgconfig and libusb
if (NOT LIBRTLSDR_FOUND OR LIBRTLSDR_EXTERNAL)
ExternalProject_Add(rtlsdr ExternalProject_Add(rtlsdr
GIT_REPOSITORY https://github.com/osmocom/rtl-sdr.git GIT_REPOSITORY https://github.com/osmocom/rtl-sdr.git
GIT_TAG ${RTLSDR_TAG} GIT_TAG ${RTLSDR_TAG}
@ -391,17 +436,35 @@ if (LINUX)
TEST_COMMAND "" TEST_COMMAND ""
) )
set(LIBRTLSDR_FOUND ON CACHE INTERNAL "") 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_INCLUDE_DIR "${EXTERNAL_BUILD_LIBRARIES}/rtlsdr/src/rtlsdr/include" CACHE INTERNAL "")
set(LIBRTLSDR_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/librtlsdr.so" CACHE INTERNAL "") set(LIBRTLSDR_LIBRARIES "${EXTERNAL_BUILD_LIBRARIES}/lib/librtlsdr.so" CACHE INTERNAL "")
endif(LINUX) endif (NOT LIBRTLSDR_FOUND OR LIBRTLSDR_EXTERNAL)
if(WIN32 OR APPLE) # needs pkgconfig and libusb
if(ENABLE_RTLSDR) if (NOT LIBMIRISDR_FOUND OR LIBMIRISDR_EXTERNAL)
if(WIN32) 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 "")
endif (NOT LIBMIRISDR_FOUND OR LIBMIRISDR_EXTERNAL)
endif (LINUX)
if (WIN32 OR APPLE)
if (ENABLE_RTLSDR)
if (WIN32)
set(RTLSDR_LIBUSB_INCLUDE "${LIBUSB_INCLUDE_DIR}/libusb-1.0") set(RTLSDR_LIBUSB_INCLUDE "${LIBUSB_INCLUDE_DIR}/libusb-1.0")
else() else ()
set(RTLSDR_LIBUSB_INCLUDE "${LIBUSB_INCLUDE_DIR}") set(RTLSDR_LIBUSB_INCLUDE "${LIBUSB_INCLUDE_DIR}")
endif() endif ()
# needs pkgconfig and libusb # needs pkgconfig and libusb
ExternalProject_Add(rtlsdr ExternalProject_Add(rtlsdr
GIT_REPOSITORY https://github.com/osmocom/rtl-sdr.git GIT_REPOSITORY https://github.com/osmocom/rtl-sdr.git
@ -419,19 +482,20 @@ if(WIN32 OR APPLE)
) )
ExternalProject_Get_Property(rtlsdr source_dir binary_dir) ExternalProject_Get_Property(rtlsdr source_dir binary_dir)
set(LIBRTLSDR_FOUND ON CACHE INTERNAL "") set(LIBRTLSDR_FOUND ON CACHE INTERNAL "")
set(LIBRTLSDR_EXTERNAL ON CACHE INTERNAL "")
set(LIBRTLSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "") set(LIBRTLSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIBRTLSDR_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/rtlsdr.lib" CACHE INTERNAL "") 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/rtlsdr${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(LIBRTLSDR_LIBRARIES "${binary_dir}/src/librtlsdr${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBRTLSDR_LIBRARIES "${binary_dir}/src/librtlsdr${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/src/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/src/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "librtlsdr*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "librtlsdr*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/src/") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/src/")
endif() endif ()
endif(ENABLE_RTLSDR) endif (ENABLE_RTLSDR)
if(ENABLE_LIMESUITE) if (ENABLE_LIMESUITE)
# needs pkgconfig, libusb # needs pkgconfig, libusb
ExternalProject_Add(limesuite ExternalProject_Add(limesuite
GIT_REPOSITORY https://github.com/myriadrf/LimeSuite.git GIT_REPOSITORY https://github.com/myriadrf/LimeSuite.git
@ -452,20 +516,21 @@ if(WIN32 OR APPLE)
) )
ExternalProject_Get_Property(limesuite source_dir binary_dir) ExternalProject_Get_Property(limesuite source_dir binary_dir)
set(LIMESUITE_FOUND ON CACHE INTERNAL "") set(LIMESUITE_FOUND ON CACHE INTERNAL "")
set(LIMESUITE_EXTERNAL ON CACHE INTERNAL "")
set(LIMESUITE_INCLUDE_DIR "${source_dir}/src" CACHE INTERNAL "") set(LIMESUITE_INCLUDE_DIR "${source_dir}/src" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIMESUITE_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/LimeSuite.lib" CACHE INTERNAL "") 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}") 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) makeCopy("${source_dir}/src/limeRFE/limeRFE.h" "${source_dir}/src/lime/limeRFE.h" limesuite)
elseif(APPLE) elseif (APPLE)
set(LIMESUITE_LIBRARY "${binary_dir}/src/libLimeSuite${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIMESUITE_LIBRARY "${binary_dir}/src/libLimeSuite${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/src/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/src/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libLimeSuite*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libLimeSuite*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/src/") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/src/")
endif() endif ()
endif(ENABLE_LIMESUITE) endif (ENABLE_LIMESUITE)
if(ENABLE_SOAPYSDR) if (ENABLE_SOAPYSDR)
ExternalProject_Add(soapysdr ExternalProject_Add(soapysdr
GIT_REPOSITORY https://github.com/pothosware/SoapySDR.git GIT_REPOSITORY https://github.com/pothosware/SoapySDR.git
GIT_TAG ${SOAPYSDR_TAG} GIT_TAG ${SOAPYSDR_TAG}
@ -479,24 +544,25 @@ if(WIN32 OR APPLE)
) )
ExternalProject_Get_Property(soapysdr source_dir binary_dir) ExternalProject_Get_Property(soapysdr source_dir binary_dir)
set(SOAPYSDR_FOUND ON CACHE INTERNAL "") set(SOAPYSDR_FOUND ON CACHE INTERNAL "")
set(SOAPYSDR_EXTERNAL ON CACHE INTERNAL "")
set(SOAPYSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "") set(SOAPYSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(SOAPYSDR_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR.lib" CACHE INTERNAL "") 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/SoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(SOAPYSDR_LIBRARY "${binary_dir}/lib/libSoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(SOAPYSDR_LIBRARY "${binary_dir}/lib/libSoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/lib/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/lib/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libSoapySDR*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libSoapySDR*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/lib/") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/lib/")
endif() endif ()
endif(ENABLE_SOAPYSDR) endif (ENABLE_SOAPYSDR)
if(ENABLE_AIRSPY) if (ENABLE_AIRSPY)
if(WIN32) if (WIN32)
set(AIRSPY_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0) set(AIRSPY_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0)
else() else ()
set(AIRSPY_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}) set(AIRSPY_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
endif() endif ()
# needs libusb, pthreads # needs libusb, pthreads
ExternalProject_Add(airspy ExternalProject_Add(airspy
GIT_REPOSITORY https://github.com/airspy/airspyone_host GIT_REPOSITORY https://github.com/airspy/airspyone_host
@ -514,27 +580,28 @@ if(WIN32 OR APPLE)
add_dependencies(airspy pthreads4w) add_dependencies(airspy pthreads4w)
ExternalProject_Get_Property(airspy source_dir binary_dir) ExternalProject_Get_Property(airspy source_dir binary_dir)
set(LIBAIRSPY_FOUND ON CACHE INTERNAL "") set(LIBAIRSPY_FOUND ON CACHE INTERNAL "")
set(LIBAIRSPY_EXTERNAL ON CACHE INTERNAL "")
set(LIBAIRSPY_INCLUDE_DIR "${source_dir}/libairspy/src" CACHE INTERNAL "") set(LIBAIRSPY_INCLUDE_DIR "${source_dir}/libairspy/src" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIBAIRSPY_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspy.lib" CACHE INTERNAL "") set(LIBAIRSPY_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspy.lib" CACHE INTERNAL "")
makeCopyDir("${source_dir}/libairspy/src" "${source_dir}/libairspy/src/libairspy" airspy) 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/airspy${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(LIBAIRSPY_LIBRARIES "${binary_dir}/libairspy/src/libairspy${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBAIRSPY_LIBRARIES "${binary_dir}/libairspy/src/libairspy${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
makeLink("${source_dir}/libairspy/src" "${source_dir}/libairspy/src/libairspy" airspy) makeLink("${source_dir}/libairspy/src" "${source_dir}/libairspy/src/libairspy" airspy)
install(DIRECTORY "${binary_dir}/libairspy/src/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/libairspy/src/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libairspy*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libairspy*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/libairspy/src") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/libairspy/src")
endif() endif ()
endif(ENABLE_AIRSPY) endif (ENABLE_AIRSPY)
if(ENABLE_AIRSPYHF) if (ENABLE_AIRSPYHF)
if(WIN32) if (WIN32)
set(AIRSPYHF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0) set(AIRSPYHF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0)
else() else ()
set(AIRSPYHF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}) set(AIRSPYHF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
endif() endif ()
# needs pkgconfig, libusb, pthreads # needs pkgconfig, libusb, pthreads
ExternalProject_Add(airspyhf ExternalProject_Add(airspyhf
GIT_REPOSITORY https://github.com/airspy/airspyhf.git GIT_REPOSITORY https://github.com/airspy/airspyhf.git
@ -552,30 +619,31 @@ if(WIN32 OR APPLE)
add_dependencies(airspyhf pthreads4w) add_dependencies(airspyhf pthreads4w)
ExternalProject_Get_Property(airspyhf source_dir binary_dir) ExternalProject_Get_Property(airspyhf source_dir binary_dir)
set(LIBAIRSPYHF_FOUND ON CACHE INTERNAL "") set(LIBAIRSPYHF_FOUND ON CACHE INTERNAL "")
set(LIBAIRSPYHF_EXTERNAL ON CACHE INTERNAL "")
set(LIBAIRSPYHF_INCLUDE_DIR "${source_dir}/libairspyhf/src" CACHE INTERNAL "") set(LIBAIRSPYHF_INCLUDE_DIR "${source_dir}/libairspyhf/src" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIBAIRSPYHF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspyhf.lib" CACHE INTERNAL "") set(LIBAIRSPYHF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/airspyhf.lib" CACHE INTERNAL "")
makeCopyDir("${source_dir}/libairspyhf/src" "${source_dir}/libairspyhf/src/libairspyhf" airspyhf) 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/airspyhf${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(LIBAIRSPYHF_LIBRARIES "${binary_dir}/libairspyhf/src/libairspyhf${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBAIRSPYHF_LIBRARIES "${binary_dir}/libairspyhf/src/libairspyhf${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
makeLink("${source_dir}/libairspyhf/src" "${source_dir}/libairspyhf/src/libairspyhf" airspyhf) makeLink("${source_dir}/libairspyhf/src" "${source_dir}/libairspyhf/src/libairspyhf" airspyhf)
install(DIRECTORY "${binary_dir}/libairspyhf/src/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/libairspyhf/src/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libairspyhf*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libairspyhf*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/libairspyhf/src") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/libairspyhf/src")
endif() endif ()
endif(ENABLE_AIRSPYHF) endif (ENABLE_AIRSPYHF)
if(ENABLE_HACKRF) if (ENABLE_HACKRF)
# SOURCE_SUBDIR require cmake 3.7.0 # SOURCE_SUBDIR require cmake 3.7.0
# otherwise use CONFIGURE_COMMAND # otherwise use CONFIGURE_COMMAND
cmake_minimum_required(VERSION 3.7.0) cmake_minimum_required(VERSION 3.7.0)
# needs pkgconfig, libusb, fftw, pthreads # needs pkgconfig, libusb, fftw, pthreads
if(WIN32) if (WIN32)
set(HACKRF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0) set(HACKRF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}/libusb-1.0)
else() else ()
set(HACKRF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR}) set(HACKRF_LIBUSB_INCLUDE_DIR ${LIBUSB_INCLUDE_DIR})
endif() endif ()
ExternalProject_Add(hackrf ExternalProject_Add(hackrf
GIT_REPOSITORY https://github.com/mossmann/hackrf.git GIT_REPOSITORY https://github.com/mossmann/hackrf.git
GIT_TAG ${HACKRF_TAG} GIT_TAG ${HACKRF_TAG}
@ -596,24 +664,25 @@ if(WIN32 OR APPLE)
add_dependencies(hackrf pthreads4w) add_dependencies(hackrf pthreads4w)
ExternalProject_Get_Property(hackrf source_dir binary_dir) ExternalProject_Get_Property(hackrf source_dir binary_dir)
set(LIBHACKRF_FOUND ON CACHE INTERNAL "") set(LIBHACKRF_FOUND ON CACHE INTERNAL "")
set(LIBHACKRF_EXTERNAL ON CACHE INTERNAL "")
set(LIBHACKRF_INCLUDE_DIR "${source_dir}/host/libhackrf" CACHE INTERNAL "") set(LIBHACKRF_INCLUDE_DIR "${source_dir}/host/libhackrf" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIBHACKRF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/hackrf.lib" CACHE INTERNAL "") set(LIBHACKRF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/hackrf.lib" CACHE INTERNAL "")
# include "libhackrf/hackrf.h" # include "libhackrf/hackrf.h"
makeCopyDir("${source_dir}/host/libhackrf/src" "${source_dir}/host/libhackrf/libhackrf" hackrf) 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/hackrf${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(LIBHACKRF_LIBRARIES "${binary_dir}/src/libhackrf${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBHACKRF_LIBRARIES "${binary_dir}/src/libhackrf${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
# include "libhackrf/hackrf.h" # include "libhackrf/hackrf.h"
makeLink("${source_dir}/host/libhackrf/src" "${source_dir}/host/libhackrf/libhackrf" hackrf) makeLink("${source_dir}/host/libhackrf/src" "${source_dir}/host/libhackrf/libhackrf" hackrf)
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/")
install(DIRECTORY "${binary_dir}/src/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/src/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libhackrf*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libhackrf*${CMAKE_SHARED_LIBRARY_SUFFIX}")
endif() endif ()
endif(ENABLE_HACKRF) endif (ENABLE_HACKRF)
if(ENABLE_IIO) if (ENABLE_IIO)
if(WIN32) if (WIN32)
ExternalProject_Add(libxml2 ExternalProject_Add(libxml2
GIT_REPOSITORY https://github.com/GNOME/libxml2.git GIT_REPOSITORY https://github.com/GNOME/libxml2.git
GIT_TAG ${LIBXML2_TAG} GIT_TAG ${LIBXML2_TAG}
@ -624,7 +693,7 @@ if(WIN32 OR APPLE)
INSTALL_COMMAND "" INSTALL_COMMAND ""
TEST_COMMAND "" TEST_COMMAND ""
) )
elseif(APPLE) elseif (APPLE)
set(LIBXML2_PATCH_COMMAND /usr/bin/sed -i '' "s/libtoolize/glibtoolize/g" autogen.sh) set(LIBXML2_PATCH_COMMAND /usr/bin/sed -i '' "s/libtoolize/glibtoolize/g" autogen.sh)
ExternalProject_Add(libxml2 ExternalProject_Add(libxml2
GIT_REPOSITORY https://github.com/GNOME/libxml2.git GIT_REPOSITORY https://github.com/GNOME/libxml2.git
@ -637,21 +706,22 @@ if(WIN32 OR APPLE)
INSTALL_COMMAND "" INSTALL_COMMAND ""
TEST_COMMAND "" TEST_COMMAND ""
) )
endif() endif ()
ExternalProject_Get_Property(libxml2 source_dir binary_dir) ExternalProject_Get_Property(libxml2 source_dir binary_dir)
set(LIBXML2_DEPENDS libxml2) set(LIBXML2_DEPENDS libxml2)
set(LIBXML2_FOUND ON CACHE INTERNAL "") set(LIBXML2_FOUND ON CACHE INTERNAL "")
set(LIBXML2_EXTERNAL ON CACHE INTERNAL "")
set(LIBXML2_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "") set(LIBXML2_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIBXML2_LIBRARIES "${source_dir}/win32/bin.msvc/libxml2.lib" CACHE INTERNAL "") set(LIBXML2_LIBRARIES "${source_dir}/win32/bin.msvc/libxml2.lib" CACHE INTERNAL "")
makeCopy("${source_dir}/win32/bin.msvc/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" "${SDRANGEL_BINARY_BIN_DIR}/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" libxml2) 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}") install(FILES "${source_dir}/win32/bin.msvc/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(LIBXML2_LIBRARIES "${source_dir}/.libs/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBXML2_LIBRARIES "${source_dir}/.libs/libxml2${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${source_dir}/.libs/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${source_dir}/.libs/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libxml2*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libxml2*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${source_dir}/.libs") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${source_dir}/.libs")
endif() endif ()
# needs pkgconfig, libusb, pthreads, libxml2 # needs pkgconfig, libusb, pthreads, libxml2
ExternalProject_Add(libiio ExternalProject_Add(libiio
GIT_REPOSITORY https://github.com/analogdevicesinc/libiio.git GIT_REPOSITORY https://github.com/analogdevicesinc/libiio.git
@ -675,11 +745,12 @@ if(WIN32 OR APPLE)
add_dependencies(libiio pthreads4w) add_dependencies(libiio pthreads4w)
ExternalProject_Get_Property(libiio source_dir binary_dir) ExternalProject_Get_Property(libiio source_dir binary_dir)
set(LIBIIO_FOUND ON CACHE INTERNAL "") set(LIBIIO_FOUND ON CACHE INTERNAL "")
set(LIBIIO_EXTERNAL ON CACHE INTERNAL "")
set(LIBIIO_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "") set(LIBIIO_INCLUDE_DIR "${source_dir}" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIBIIO_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/libiio.lib" CACHE INTERNAL "") 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(LIBIIO_LIBRARIES "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBIIO_LIBRARIES "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libiio*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libiio*${CMAKE_SHARED_LIBRARY_SUFFIX}")
@ -687,10 +758,10 @@ if(WIN32 OR APPLE)
makeCopy("${binary_dir}/libiio.framework/Versions/${IIO_VERSION}/libiio" "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" libiio) makeCopy("${binary_dir}/libiio.framework/Versions/${IIO_VERSION}/libiio" "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" libiio)
add_custom_command(TARGET libiio POST_BUILD COMMAND install_name_tool -id "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}") add_custom_command(TARGET libiio POST_BUILD COMMAND install_name_tool -id "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}" "${binary_dir}/libiio${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}")
endif() endif ()
endif(ENABLE_IIO) endif (ENABLE_IIO)
if(ENABLE_BLADERF) if (ENABLE_BLADERF)
# needs pkgconfig, libusb, pthreads # needs pkgconfig, libusb, pthreads
ExternalProject_Add(bladerf ExternalProject_Add(bladerf
GIT_REPOSITORY https://github.com/Nuand/bladeRF.git GIT_REPOSITORY https://github.com/Nuand/bladeRF.git
@ -717,15 +788,16 @@ if(WIN32 OR APPLE)
add_dependencies(bladerf pthreads4w) add_dependencies(bladerf pthreads4w)
ExternalProject_Get_Property(bladerf source_dir binary_dir) ExternalProject_Get_Property(bladerf source_dir binary_dir)
set(LIBBLADERF_FOUND ON CACHE INTERNAL "") set(LIBBLADERF_FOUND ON CACHE INTERNAL "")
set(LIBBLADERF_EXTERNAL ON CACHE INTERNAL "")
set(LIBBLADERF_INCLUDE_DIRS "${source_dir}/host/libraries/libbladeRF/include" CACHE INTERNAL "") set(LIBBLADERF_INCLUDE_DIRS "${source_dir}/host/libraries/libbladeRF/include" CACHE INTERNAL "")
if(WIN32) if (WIN32)
set(LIBBLADERF_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/bladeRF.lib" CACHE INTERNAL "") 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}") install(FILES "${SDRANGEL_BINARY_BIN_DIR}/bladeRF${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
elseif(APPLE) elseif (APPLE)
set(LIBBLADERF_LIBRARIES "${binary_dir}/host/output/libbladeRF${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "") set(LIBBLADERF_LIBRARIES "${binary_dir}/host/output/libbladeRF${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
install(DIRECTORY "${binary_dir}/host/output/" DESTINATION "${INSTALL_LIB_DIR}" install(DIRECTORY "${binary_dir}/host/output/" DESTINATION "${INSTALL_LIB_DIR}"
FILES_MATCHING PATTERN "libbladeRF*${CMAKE_SHARED_LIBRARY_SUFFIX}") FILES_MATCHING PATTERN "libbladeRF*${CMAKE_SHARED_LIBRARY_SUFFIX}")
set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/host/output") set(MACOS_EXTERNAL_LIBS_FIXUP "${MACOS_EXTERNAL_LIBS_FIXUP};${binary_dir}/host/output")
endif() endif ()
endif(ENABLE_BLADERF) endif (ENABLE_BLADERF)
endif(WIN32 OR APPLE) endif (WIN32 OR APPLE)

View File

@ -57,7 +57,7 @@ add_library(${TARGET_NAME} SHARED
${dsddemod_SOURCES} ${dsddemod_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBDSDCC_EXTERNAL)
add_dependencies(${TARGET_NAME} dsdcc) add_dependencies(${TARGET_NAME} dsdcc)
endif() endif()
@ -67,7 +67,7 @@ target_link_libraries(${TARGET_NAME}
sdrbase sdrbase
${TARGET_LIB_GUI} ${TARGET_LIB_GUI}
${LIBDSDCC_LIBRARIES} ${LIBDSDCC_LIBRARIES}
${LIBMBE_LIBRARY} ${LIBMBE_LIBRARIES}
) )
install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER}) install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER})

View File

@ -48,7 +48,7 @@ add_library(${TARGET_NAME} SHARED
${freedv_SOURCES} ${freedv_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(CODEC2_EXTERNAL)
add_dependencies(${TARGET_NAME} codec2) add_dependencies(${TARGET_NAME} codec2)
endif() endif()

View File

@ -63,7 +63,7 @@ add_library(${TARGET_NAME} SHARED
${remotesink_SOURCES} ${remotesink_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(CM256CC_EXTERNAL)
add_dependencies(${TARGET_NAME} cm256cc) add_dependencies(${TARGET_NAME} cm256cc)
endif() endif()

View File

@ -48,7 +48,7 @@ add_library(${TARGET_NAME} SHARED
${modfreedv_SOURCES} ${modfreedv_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(CODEC2_EXTERNAL)
add_dependencies(${TARGET_NAME} codec2) add_dependencies(${TARGET_NAME} codec2)
endif() endif()

View File

@ -63,7 +63,7 @@ add_library(${TARGET_NAME} SHARED
${remotesource_SOURCES} ${remotesource_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(CM256CC_EXTERNAL)
add_dependencies(${TARGET_NAME} cm256cc) add_dependencies(${TARGET_NAME} cm256cc)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${bladerf1output_SOURCES} ${bladerf1output_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBBLADERF_EXTERNAL)
add_dependencies(${TARGET_NAME} bladerf) add_dependencies(${TARGET_NAME} bladerf)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${bladerf2output_SOURCES} ${bladerf2output_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBBLADERF_EXTERNAL)
add_dependencies(${TARGET_NAME} bladerf) add_dependencies(${TARGET_NAME} bladerf)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${limesdroutput_SOURCES} ${limesdroutput_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIMESUITE_EXTERNAL)
add_dependencies(${TARGET_NAME} limesuite) add_dependencies(${TARGET_NAME} limesuite)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${plutosdroutput_SOURCES} ${plutosdroutput_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBIIO_EXTERNAL)
add_dependencies(${TARGET_NAME} libiio) add_dependencies(${TARGET_NAME} libiio)
endif() endif()

View File

@ -63,7 +63,7 @@ add_library(${TARGET_NAME} SHARED
${remoteoutput_SOURCES} ${remoteoutput_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(CM256CC_EXTERNAL)
add_dependencies(${TARGET_NAME} cm256cc) add_dependencies(${TARGET_NAME} cm256cc)
endif() endif()

View File

@ -47,7 +47,7 @@ add_library(${TARGET_NAME} SHARED
${airspy_SOURCES} ${airspy_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES AND NOT LINUX) if(LIBAIRSPY_EXTERNAL AND NOT LINUX)
add_dependencies(${TARGET_NAME} airspy) add_dependencies(${TARGET_NAME} airspy)
endif() endif()

View File

@ -48,7 +48,7 @@ add_library(${TARGET_NAME} SHARED
${airspyhf_SOURCES} ${airspyhf_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBAIRSPYHF_EXTERNAL)
add_dependencies(${TARGET_NAME} airspyhf) add_dependencies(${TARGET_NAME} airspyhf)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${bladerf1input_SOURCES} ${bladerf1input_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBBLADERF_EXTERNAL)
add_dependencies(${TARGET_NAME} bladerf) add_dependencies(${TARGET_NAME} bladerf)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${bladerf2input_SOURCES} ${bladerf2input_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBBLADERF_EXTERNAL)
add_dependencies(${TARGET_NAME} bladerf) add_dependencies(${TARGET_NAME} bladerf)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${limesdrinput_SOURCES} ${limesdrinput_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIMESUITE_EXTERNAL)
add_dependencies(${TARGET_NAME} limesuite) add_dependencies(${TARGET_NAME} limesuite)
endif() endif()

View File

@ -50,7 +50,7 @@ add_library(${TARGET_NAME} SHARED
${perseus_SOURCES} ${perseus_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBPERSEUS_EXTERNAL)
add_dependencies(${TARGET_NAME} perseus) add_dependencies(${TARGET_NAME} perseus)
endif() endif()

View File

@ -49,7 +49,7 @@ add_library(${TARGET_NAME} SHARED
${plutosdrinput_SOURCES} ${plutosdrinput_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(LIBIIO_EXTERNAL)
add_dependencies(${TARGET_NAME} libiio) add_dependencies(${TARGET_NAME} libiio)
endif() endif()

View File

@ -60,7 +60,7 @@ add_library(${TARGET_NAME} SHARED
${remoteinput_SOURCES} ${remoteinput_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES) if(CM256CC_EXTERNAL)
add_dependencies(${TARGET_NAME} cm256cc) add_dependencies(${TARGET_NAME} cm256cc)
endif() endif()

View File

@ -48,6 +48,10 @@ add_library(${TARGET_NAME} SHARED
${sdrplay_SOURCES} ${sdrplay_SOURCES}
) )
if(LIBMIRISDR_EXTERNAL)
add_dependencies(${TARGET_NAME} libmirisdr)
endif(LIBMIRISDR_EXTERNAL)
target_link_libraries(${TARGET_NAME} target_link_libraries(${TARGET_NAME}
Qt5::Core Qt5::Core
${TARGET_LIB} ${TARGET_LIB}

View File

@ -326,7 +326,11 @@ add_library(sdrbase SHARED
${sdrbase_SOURCES} ${sdrbase_SOURCES}
) )
if(ENABLE_EXTERNAL_LIBRARIES AND LIBSERIALDV_FOUND) if(LIMESUITE_EXTERNAL)
add_dependencies(sdrbase limesuite)
endif()
if(LIBSERIALDV_EXTERNAL)
add_dependencies(sdrbase serialdv) add_dependencies(sdrbase serialdv)
endif() endif()