mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-02-03 09:44:01 -05:00
Fix and refactor FindSoapySDR.cmake
This commit is contained in:
parent
03bb11b869
commit
4252592045
@ -9,44 +9,45 @@ if(NOT SOAPYSDR_FOUND)
|
|||||||
set(${VERSION} "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
set(${VERSION} "${CMAKE_MATCH_1}" PARENT_SCOPE)
|
||||||
endfunction(_SOAPY_SDR_GET_ABI_VERSION)
|
endfunction(_SOAPY_SDR_GET_ABI_VERSION)
|
||||||
|
|
||||||
pkg_search_module (LIBSOAPYSDR_PKG soapysdr>=0.4.0 SoapySDR>=0.4.0)
|
pkg_search_module (SOAPYSDR SoapySDR>=0.4.0)
|
||||||
|
|
||||||
if(NOT LIBSOAPYSDR_PKG_FOUND OR (DEFINED SOAPYSDR_DIR))
|
if(NOT SOAPYSDR_FOUND OR (DEFINED SOAPYSDR_DIR))
|
||||||
|
|
||||||
find_path (SOAPYSDR_INCLUDE_DIR
|
find_path (SOAPYSDR_INCLUDE_DIRS
|
||||||
NAMES SoapySDR/Version.h
|
NAMES SoapySDR/Version.h
|
||||||
HINTS ${SOAPYSDR_DIR}/include
|
HINTS ${SOAPYSDR_DIR}/include
|
||||||
${LIBSOAPYSDR_PKG_INCLUDE_DIRS}
|
|
||||||
PATHS /usr/include
|
PATHS /usr/include
|
||||||
/usr/local/include
|
/usr/local/include
|
||||||
)
|
)
|
||||||
|
|
||||||
find_library (SOAPYSDR_LIBRARY
|
find_library (SOAPYSDR_LINK_LIBRARIES
|
||||||
NAMES SoapySDR
|
NAMES SoapySDR
|
||||||
HINTS ${SOAPYSDR_DIR}/lib
|
HINTS ${SOAPYSDR_DIR}/lib
|
||||||
${SOAPYSDR_DIR}/lib64
|
${SOAPYSDR_DIR}/lib64
|
||||||
${CMAKE_INSTALL_PREFIX}/lib
|
${CMAKE_INSTALL_PREFIX}/lib
|
||||||
${CMAKE_INSTALL_PREFIX}/lib64
|
${CMAKE_INSTALL_PREFIX}/lib64
|
||||||
${LIBSOAPYSDR_PKG_LIBRARY_DIRS}
|
|
||||||
PATHS /usr/local/lib
|
PATHS /usr/local/lib
|
||||||
/usr/local/lib64
|
/usr/local/lib64
|
||||||
/usr/lib
|
/usr/lib
|
||||||
/usr/lib64
|
/usr/lib64
|
||||||
)
|
)
|
||||||
|
|
||||||
if (SOAPYSDR_INCLUDE_DIR AND SOAPYSDR_LIBRARY)
|
if (SOAPYSDR_INCLUDE_DIRS AND SOAPYSDR_LINK_LIBRARIES)
|
||||||
set(SOAPYSDR_FOUND TRUE)
|
set(SOAPYSDR_FOUND TRUE)
|
||||||
# get the root of SoapySDR; used on cpack
|
# get the root of SoapySDR; used on cpack
|
||||||
string(REGEX REPLACE "/lib/.*${CMAKE_SHARED_LIBRARY_SUFFIX}" "" SOAPYSDR_ROOT ${SOAPYSDR_LIBRARY})
|
string(REGEX REPLACE "/lib/.*${CMAKE_SHARED_LIBRARY_SUFFIX}" "" SOAPYSDR_LIBDIR ${SOAPYSDR_LINK_LIBRARIES})
|
||||||
# get the soapy version; to using FindPkgConfig because we can use SOAPYSDR_DIR
|
# get the soapy version
|
||||||
_SOAPY_SDR_GET_ABI_VERSION(SOAPYSDR_ABI_VERSION ${SOAPYSDR_INCLUDE_DIR})
|
_SOAPY_SDR_GET_ABI_VERSION(SOAPYSDR_VERSION ${SOAPYSDR_INCLUDE_DIRS})
|
||||||
message (STATUS "Found SoapySDR: ${SOAPYSDR_INCLUDE_DIR}, ${SOAPYSDR_LIBRARY}")
|
|
||||||
else()
|
|
||||||
message (STATUS "SoapySDR not found")
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
mark_as_advanced(SOAPYSDR_INCLUDE_DIR SOAPYSDR_LIBRARY SOAPYSDR_ROOT SOAPYSDR_ABI_VERSION)
|
endif(NOT SOAPYSDR_FOUND OR (DEFINED SOAPYSDR_DIR))
|
||||||
|
|
||||||
endif(NOT LIBSOAPYSDR_PKG_FOUND OR (DEFINED SOAPYSDR_DIR))
|
if (SOAPYSDR_FOUND)
|
||||||
|
message (STATUS "Found SoapySDR: version ${SOAPYSDR_VERSION}, ${SOAPYSDR_LIBDIR}, ${SOAPYSDR_INCLUDE_DIRS}, ${SOAPYSDR_LINK_LIBRARIES}")
|
||||||
|
else()
|
||||||
|
message (STATUS "SoapySDR not found")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(SOAPYSDR_INCLUDE_DIRS SOAPYSDR_LINK_LIBRARIES SOAPYSDR_LIBDIR SOAPYSDR_VERSION)
|
||||||
|
|
||||||
endif(NOT SOAPYSDR_FOUND)
|
endif(NOT SOAPYSDR_FOUND)
|
||||||
|
@ -43,11 +43,11 @@ if(APPLE AND BUNDLE AND BUILD_GUI)
|
|||||||
# probably libmirsdrapi-rsp.dylib can't be re-distribuited
|
# probably libmirsdrapi-rsp.dylib can't be re-distribuited
|
||||||
# we remove the file at the end of fixup_bundle
|
# we remove the file at the end of fixup_bundle
|
||||||
if(ENABLE_SOAPYSDR AND SOAPYSDR_FOUND)
|
if(ENABLE_SOAPYSDR AND SOAPYSDR_FOUND)
|
||||||
set(SOAPY_SDR_MOD_PATH "${SOAPYSDR_ROOT}/lib/SoapySDR/modules${SOAPYSDR_ABI_VERSION}")
|
set(SOAPY_SDR_MOD_PATH "${SOAPYSDR_LIBDIR}/lib/SoapySDR/modules${SOAPYSDR_VERSION}")
|
||||||
file(GLOB SOAPY_MODS ${SOAPY_SDR_MOD_PATH}/*.so)
|
file(GLOB SOAPY_MODS ${SOAPY_SDR_MOD_PATH}/*.so)
|
||||||
foreach(SOAPY_MOD_FILE ${SOAPY_MODS})
|
foreach(SOAPY_MOD_FILE ${SOAPY_MODS})
|
||||||
install( FILES "${SOAPY_MOD_FILE}"
|
install( FILES "${SOAPY_MOD_FILE}"
|
||||||
DESTINATION "../Frameworks/SoapySDR/modules${SOAPYSDR_ABI_VERSION}"
|
DESTINATION "../Frameworks/SoapySDR/modules${SOAPYSDR_VERSION}"
|
||||||
COMPONENT Runtime
|
COMPONENT Runtime
|
||||||
)
|
)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -15,7 +15,7 @@ set(soapysdrdevice_HEADERS
|
|||||||
)
|
)
|
||||||
|
|
||||||
include_directories(
|
include_directories(
|
||||||
${SOAPYSDR_INCLUDE_DIR}
|
${SOAPYSDR_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(soapysdrdevice SHARED
|
add_library(soapysdrdevice SHARED
|
||||||
@ -26,7 +26,7 @@ set_target_properties(soapysdrdevice
|
|||||||
PROPERTIES DEFINE_SYMBOL "devices_EXPORTS")
|
PROPERTIES DEFINE_SYMBOL "devices_EXPORTS")
|
||||||
|
|
||||||
target_link_libraries(soapysdrdevice
|
target_link_libraries(soapysdrdevice
|
||||||
${SOAPYSDR_LIBRARY}
|
${SOAPYSDR_LINK_LIBRARIES}
|
||||||
sdrbase
|
sdrbase
|
||||||
)
|
)
|
||||||
|
|
||||||
|
8
external/CMakeLists.txt
vendored
8
external/CMakeLists.txt
vendored
@ -1224,7 +1224,7 @@ if (WIN32 OR APPLE)
|
|||||||
|
|
||||||
if (ENABLE_SOAPYSDR)
|
if (ENABLE_SOAPYSDR)
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(SOAPYSDR_LIBRARY "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR.lib" CACHE INTERNAL "")
|
set(SOAPYSDR_LINK_LIBRARIES "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR.lib" CACHE INTERNAL "")
|
||||||
endif ()
|
endif ()
|
||||||
ExternalProject_Add(soapysdr
|
ExternalProject_Add(soapysdr
|
||||||
GIT_REPOSITORY https://github.com/pothosware/SoapySDR.git
|
GIT_REPOSITORY https://github.com/pothosware/SoapySDR.git
|
||||||
@ -1235,7 +1235,7 @@ if (WIN32 OR APPLE)
|
|||||||
-DENABLE_PYTHON=OFF
|
-DENABLE_PYTHON=OFF
|
||||||
-DENABLE_PYTHON3=OFF
|
-DENABLE_PYTHON3=OFF
|
||||||
-DENABLE_TESTS=OFF
|
-DENABLE_TESTS=OFF
|
||||||
BUILD_BYPRODUCTS "${SOAPYSDR_LIBRARY}"
|
BUILD_BYPRODUCTS "${SOAPYSDR_LINK_LIBRARIES}"
|
||||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> -- SoapySDR
|
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> -- SoapySDR
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
TEST_COMMAND ""
|
TEST_COMMAND ""
|
||||||
@ -1243,12 +1243,12 @@ if (WIN32 OR APPLE)
|
|||||||
ExternalProject_Get_Property(soapysdr source_dir binary_dir)
|
ExternalProject_Get_Property(soapysdr source_dir binary_dir)
|
||||||
set_global_cache(SOAPYSDR_FOUND ON)
|
set_global_cache(SOAPYSDR_FOUND ON)
|
||||||
set(SOAPYSDR_EXTERNAL ON CACHE INTERNAL "")
|
set(SOAPYSDR_EXTERNAL ON CACHE INTERNAL "")
|
||||||
set(SOAPYSDR_INCLUDE_DIR "${source_dir}/include" CACHE INTERNAL "")
|
set(SOAPYSDR_INCLUDE_DIRS "${source_dir}/include" CACHE INTERNAL "")
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
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}")
|
||||||
install(DIRECTORY "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR" DESTINATION "${INSTALL_LIB_DIR}/lib")
|
install(DIRECTORY "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR" DESTINATION "${INSTALL_LIB_DIR}/lib")
|
||||||
elseif (APPLE)
|
elseif (APPLE)
|
||||||
set(SOAPYSDR_LIBRARY "${binary_dir}/lib/libSoapySDR${CMAKE_SHARED_LIBRARY_SUFFIX}" CACHE INTERNAL "")
|
set(SOAPYSDR_LINK_LIBRARIES "${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/")
|
||||||
|
@ -19,7 +19,7 @@ set(soapysdroutput_HEADERS
|
|||||||
include_directories(
|
include_directories(
|
||||||
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
||||||
${CMAKE_SOURCE_DIR}/devices
|
${CMAKE_SOURCE_DIR}/devices
|
||||||
${SOAPYSDR_INCLUDE_DIR}
|
${SOAPYSDR_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT SERVER_MODE)
|
if(NOT SERVER_MODE)
|
||||||
@ -55,7 +55,7 @@ target_link_libraries(${TARGET_NAME}
|
|||||||
sdrbase
|
sdrbase
|
||||||
${TARGET_LIB_GUI}
|
${TARGET_LIB_GUI}
|
||||||
swagger
|
swagger
|
||||||
${SOAPYSDR_LIBRARY}
|
${SOAPYSDR_LINK_LIBRARIES}
|
||||||
soapysdrdevice
|
soapysdrdevice
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -19,7 +19,7 @@ set(soapysdrinput_HEADERS
|
|||||||
include_directories(
|
include_directories(
|
||||||
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client
|
||||||
${CMAKE_SOURCE_DIR}/devices
|
${CMAKE_SOURCE_DIR}/devices
|
||||||
${SOAPYSDR_INCLUDE_DIR}
|
${SOAPYSDR_INCLUDE_DIRS}
|
||||||
)
|
)
|
||||||
|
|
||||||
if(NOT SERVER_MODE)
|
if(NOT SERVER_MODE)
|
||||||
@ -55,7 +55,7 @@ target_link_libraries(${TARGET_NAME}
|
|||||||
sdrbase
|
sdrbase
|
||||||
${TARGET_LIB_GUI}
|
${TARGET_LIB_GUI}
|
||||||
swagger
|
swagger
|
||||||
${SOAPYSDR_LIBRARY}
|
${SOAPYSDR_LINK_LIBRARIES}
|
||||||
soapysdrdevice
|
soapysdrdevice
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user