diff --git a/CMakeLists.txt b/CMakeLists.txt index 9cb6f69f3..777f79192 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -102,25 +102,26 @@ endif() # declare build structures # !! change sdrbase/plugin/pluginmanager.cpp too !! if(WIN32) - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") else() - set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}") endif() -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -set(BUILD_PLUGINS_DIR ${CMAKE_BINARY_DIR}/lib/plugins) -set(BUILD_PLUGINSSRV_DIR ${CMAKE_BINARY_DIR}/lib/pluginssrv) -set(INSTALL_BIN_DIR "bin") +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") +set(BUILD_PLUGINS_DIR "${CMAKE_BINARY_DIR}/lib/plugins") +set(BUILD_PLUGINSSRV_DIR "${CMAKE_BINARY_DIR}/lib/pluginssrv") # use only lib when create .app/.dmg if(APPLE AND BUNDLE AND BUILD_GUI) + set(INSTALL_BIN_DIR ".") set(INSTALL_LIB_DIR "lib") set(INSTALL_DOC_DIR "doc") else() + set(INSTALL_BIN_DIR "bin") set(INSTALL_LIB_DIR "lib/${CMAKE_PROJECT_NAME}") set(INSTALL_DOC_DIR "share/${CMAKE_PROJECT_NAME}") endif() -set(INSTALL_PLUGINS_DIR ${INSTALL_LIB_DIR}/plugins) -set(INSTALL_PLUGINSSRV_DIR ${INSTALL_LIB_DIR}/pluginssrv) +set(INSTALL_PLUGINS_DIR "${INSTALL_LIB_DIR}/plugins") +set(INSTALL_PLUGINSSRV_DIR "${INSTALL_LIB_DIR}/pluginssrv") set(EXTERNAL_BUILD_LIBRARIES "${CMAKE_BINARY_DIR}/external_build") set(EXTERNAL_INSTALL_LIBRARIES "${CMAKE_BINARY_DIR}/external") @@ -135,7 +136,7 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") OUTPUT_STRIP_TRAILING_WHITESPACE ) endif() - configure_file("${CMAKE_SOURCE_DIR}/custom/desktop/${CMAKE_PROJECT_NAME}.desktop.in" + configure_file("${CMAKE_SOURCE_DIR}/cmake/cpack/${CMAKE_PROJECT_NAME}.desktop.in" "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.desktop" @ONLY) elseif(APPLE) # check @@ -143,7 +144,7 @@ elseif(APPLE) message(STATUS "Build for macOS version: ${CMAKE_OSX_DEPLOYMENT_TARGET}") set(CMAKE_MACOSX_RPATH ON) - configure_file("${CMAKE_SOURCE_DIR}/custom/desktop/MacOSXBundleInfo.plist.in" + configure_file("${CMAKE_SOURCE_DIR}/cmake/cpack/MacOSXBundleInfo.plist.in" "${CMAKE_BINARY_DIR}/Info.plist" @ONLY) elseif (WIN32) set(EXTERNAL_LIBRARY_FOLDER "${CMAKE_SOURCE_DIR}/external/windows") @@ -270,10 +271,14 @@ if(ENABLE_RTLSDR) find_package(LibRTLSDR) endif() if(ENABLE_SOAPYSDR) - find_package(SoapySDR 0.4.0) + find_package(SoapySDR 0.4.0 NO_MODULE) + if(NOT "${SoapySDR_LIBRARIES}" STREQUAL "" AND NOT "${SoapySDR_INCLUDE_DIRS}" STREQUAL "") + set(SOAPYSDR_FOUND ON) + message(STATUS "Found SoapySDR: ${SoapySDR_INCLUDE_DIRS}, ${SoapySDR_LIBRARIES}") + endif() endif() if(ENABLE_XTRX) - find_package(LibXTRX) + find_package(LibXTRX) endif() if (CODEC2_FOUND) @@ -406,8 +411,8 @@ endif() #install files and directories (linux specific) if (LINUX) - install(FILES ${CMAKE_BINARY_DIR}/sdrangel.desktop DESTINATION share/applications) - install(FILES ${CMAKE_SOURCE_DIR}/custom/desktop/sdrangel_icon.png DESTINATION share/pixmaps) + install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}.desktop DESTINATION share/applications) + install(FILES ${CMAKE_SOURCE_DIR}/cmake/cpack/${CMAKE_PROJECT_NAME}_icon.png DESTINATION share/pixmaps) endif() ############ uninstall target ################ @@ -421,117 +426,4 @@ add_custom_target(uninstall ${CMAKE_CURRENT_BINARY_DIR}/uninstall.cmake) ############ packaging ################ -if(APPLE AND BUNDLE AND BUILD_GUI) - - set(CPACK_GENERATOR "Bundle") - set(CPACK_BINARY_DRAGNDROP ON) - set(CPACK_BUNDLE_NAME "${APPLICATION_NAME}") - set(CPACK_BUNDLE_ICON "${CMAKE_SOURCE_DIR}/custom/desktop/sdrangel_icon.icns") - set(CPACK_BUNDLE_PLIST "${CMAKE_BINARY_DIR}/Info.plist") - set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_SOURCE_DIR}/cmake/sdrangel.sh") - set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_BINARY_DIR}/${CMAKE_PROJECT_NAME}") - set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/custom/desktop/sdrangel_icon.icns") - - # fixup_bundle() doesn't work correctly with RPATH so, I move on ;-) - # GET_TARGET_PROPERTY(_qmake_path Qt5::qmake IMPORTED_LOCATION) - # GET_FILENAME_COMPONENT(_qt_bindir ${_qmake_path} DIRECTORY) - # INSTALL( - # CODE "EXECUTE_PROCESS(COMMAND \"${_qt_bindir}/macdeployqt\" \"\${CMAKE_INSTALL_PREFIX}/../../\" - # -appstore-compliant - # -executable=\"\${CMAKE_INSTALL_PREFIX}/${INSTALL_BIN_DIR}/sdrangel\" - # -executable=\"\${CMAKE_INSTALL_PREFIX}/${INSTALL_BIN_DIR}/sdrangelsrv\" - # -executable=\"\${CMAKE_INSTALL_PREFIX}/${INSTALL_BIN_DIR}/sdrangelbench\")" -# -libpath=\"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\")" - # # -libpath=\"\${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR}\")" - # COMPONENT applications) - - INSTALL(CODE " - SET(BU_COPY_FULL_FRAMEWORK_CONTENTS ON) - include(BundleUtilities) - fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/../../../${CPACK_BUNDLE_NAME}.app\" \"\" \"/opt/local/lib;/usr/local/lib\") - " COMPONENT Runtime) - -elseif(LINUX AND BUNDLE) - - find_program (DPKG_BUILDER dpkg-buildpackage DOC "Debian package builder") - if (DPKG_BUILDER) - # - # Derive the correct filename for a Debian package because the DEB - # generator doesn't do this correctly at present. - # - find_program (DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems") - if (DPKG_PROGRAM) - execute_process ( - COMMAND ${DPKG_PROGRAM} --print-architecture - OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - else (DPKG_PROGRAM) - set (CPACK_DEBIAN_PACKAGE_ARCHITECTURE noarch) - endif (DPKG_PROGRAM) - - # TODO: - # - perseus package - # - CHANGELOG see https://github.com/xbmc/xbmc/pull/9987/commits/0152e8f50c0f11c8bddcfdc65e1596851fe8b310 - # - verify dpkg info - # - Boost seems used through Qt - - # needs dpkg - set(CPACK_GENERATOR "DEB") - set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}_${LSB_CODENAME}_${CMAKE_SYSTEM_PROCESSOR}") - set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${APPLICATION_MAINTAINER}") - set(CPACK_DEBIAN_PACKAGE_SECTION "hamradio") - set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libasound2, libfftw3-single3, libgcc1, libgl1-mesa-glx, libqt5core5a, libqt5gui5, libqt5multimedia5, libqt5network5, libqt5opengl5, libqt5widgets5, libqt5multimedia5-plugins, libstdc++6, libusb-1.0-0, pulseaudio, libxml2, ffmpeg, libopus0, codec2, libairspy0, libhackrf0, librtlsdr0, libbladerf1, libmirisdr0, libiio0, soapysdr-tools") - - if ("${LSB_CODENAME}" STREQUAL "buster") # Debian 10 - set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec58, libavformat58, libairspyhf1, libopencv-imgproc3.2, libopencv-highgui3.2, limesuite") - elseif("${LSB_CODENAME}" STREQUAL "stretch") # Debian 9 - set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec57, libavformat57, libopencv-imgproc2.45v5, libopencv-highgu2.4-deb0, limesuite") - elseif("${LSB_CODENAME}" STREQUAL "bionic") # Ubuntu 18.04 - set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec57, libavformat57, libairspyhf0, libopencv-imgproc3.2, libopencv-highgui3.2, limesuite") - elseif("${LSB_CODENAME}" STREQUAL "xenial") # Ubuntu 16.04 - set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec-ffmpeg56, libavformat-ffmpeg56, libopencv-imgproc2.4v5, libopencv-highgui2.4v5") - endif() - - set (CPACK_DEBIAN_PACKAGE_PACKAGE_SHLIBDEPS ON) - endif (DPKG_BUILDER) - - find_program (RPMBUILDER rpmbuild DOC "RPM package builder") - if (RPMBUILDER) - # TODO - #list(APPEND CPACK_GENERATOR "RPM") - #set(CPACK_RPM_PACKAGE_RELEASE "1") - #set(CPACK_RPM_PACKAGE_LICENSE "GPL-3.0") - #set(CPACK_RPM_PACKAGE_REQUIRES "libusb") - #set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) - endif (RPMBUILDER) - -elseif((WIN32 OR MINGW) AND BUNDLE) - - #set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) - - list(APPEND CPACK_GENERATOR "NSIS") - set(CPACK_NSIS_PACKAGE_NAME "${APPLICATION_NAME}") - set(CPACK_NSIS_CONTACT "${APPLICATION_MAINTAINER}") - set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) - set(CPACK_NSIS_MODIFY_PATH ON) - -else() - - if(NOT CMAKE_INSTALL_RPATH) - set(CMAKE_INSTALL_RPATH - ${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR} CACHE - PATH "Library Install RPath" FORCE) - endif() - - # force full path - if(APPLE AND NOT CMAKE_INSTALL_NAME_DIR) - set(CMAKE_INSTALL_NAME_DIR - ${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR} CACHE - PATH "Library Install Name Destination Directory" FORCE) - endif() - -endif(APPLE AND BUNDLE AND BUILD_GUI) - -message(STATUS "CPack generators: ${CPACK_GENERATOR}") include(CPack) diff --git a/CPack.cmake b/CPack.cmake new file mode 100644 index 000000000..b915a8448 --- /dev/null +++ b/CPack.cmake @@ -0,0 +1,159 @@ +# Stuff qmake can tell us +get_target_property (QMAKE_EXECUTABLE Qt5::qmake LOCATION) +function (QUERY_QMAKE VAR RESULT) + exec_program (${QMAKE_EXECUTABLE} ARGS "-query ${VAR}" RETURN_VALUE return_code OUTPUT_VARIABLE output) + if (NOT return_code) + file (TO_CMAKE_PATH "${output}" output) + set (${RESULT} ${output} PARENT_SCOPE) + endif (NOT return_code) + message (STATUS "Asking qmake for ${RESULT} and got ${output}") +endfunction (QUERY_QMAKE) + +query_qmake (QT_INSTALL_PLUGINS QT_PLUGINS_DIR) +query_qmake (QT_INSTALL_IMPORTS QT_IMPORTS_DIR) + +if(APPLE AND BUNDLE AND BUILD_GUI) + + set(CPACK_GENERATOR "Bundle") + set(CPACK_BINARY_DRAGNDROP ON) + set(CPACK_BUNDLE_NAME "${APPLICATION_NAME}") + set(CPACK_BUNDLE_ICON "${CMAKE_SOURCE_DIR}/custom/desktop/sdrangel_icon.icns") + set(CPACK_BUNDLE_PLIST "${CMAKE_BINARY_DIR}/Info.plist") + set(CPACK_BUNDLE_STARTUP_COMMAND "${CMAKE_SOURCE_DIR}/cmake/cpack/sdrangel.sh") + set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/custom/desktop/sdrangel_icon.icns") + + # Copy Qt Plugins; fixup_bundle doesn't do that + install ( + DIRECTORY + "${QT_PLUGINS_DIR}/platforms" + "${QT_PLUGINS_DIR}/audio" + "${QT_PLUGINS_DIR}/accessible" + "${QT_PLUGINS_DIR}/imageformats" + "${QT_PLUGINS_DIR}/mediaservice" + "${QT_PLUGINS_DIR}/playlistformats" + "${QT_PLUGINS_DIR}/styles" + "${QT_PLUGINS_DIR}/iconengines" + DESTINATION "../PlugIns" + CONFIGURATIONS Release MinSizeRel + COMPONENT runtime + FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}" + PATTERN "*minimal*${CMAKE_SHARED_LIBRARY_SUFFIX}" EXCLUDE + PATTERN "*offscreen*${CMAKE_SHARED_LIBRARY_SUFFIX}" EXCLUDE + PATTERN "*quick*${CMAKE_SHARED_LIBRARY_SUFFIX}" EXCLUDE + PATTERN "*_debug${CMAKE_SHARED_LIBRARY_SUFFIX}" EXCLUDE + ) + + # add plugins path for Mac Bundle + install (CODE " + get_filename_component (the_qt_conf \"\${CMAKE_INSTALL_PREFIX}/qt.conf\" REALPATH) + file (WRITE \"\${the_qt_conf}\" +\" +[Paths] +Plugins = ../PlugIns +\")" + ) + + # copy SoapySDR Modules + # probably libmirsdrapi-rsp.dylib can't be re-distribuited + # we remove the file at the end of fixup_bundle + if(ENABLE_SOAPYSDR AND SOAPYSDR_FOUND) + set(SOAPY_SDR_MOD_PATH "${SOAPY_SDR_ROOT}/lib/SoapySDR/modules${SOAPY_SDR_ABI_VERSION}") + file(GLOB SOAPY_MODS ${SOAPY_SDR_MOD_PATH}/*.so) + foreach(SOAPY_MOD_FILE ${SOAPY_MODS}) + install( FILES "${SOAPY_MOD_FILE}" + DESTINATION "../Frameworks/SoapySDR/modules${SOAPY_SDR_ABI_VERSION}" + COMPONENT Runtime + ) + endforeach() + endif() + + install(CODE " + file(GLOB_RECURSE SDRANGEL_PLUGINS + \"\${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINS_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") + file(GLOB_RECURSE SDRANGEL_PLUGINSSRV + \"\${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINSSRV_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") + file(GLOB_RECURSE QTPLUGINS \"\${CMAKE_INSTALL_PREFIX}/../PlugIns/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") + file(GLOB_RECURSE SOAPYSDR_PLUGINS \"\${CMAKE_INSTALL_PREFIX}/../Frameworks/SoapySDR/modules${SOAPY_SDR_ABI_VERSION}/*.so\") + + set(BU_CHMOD_BUNDLE_ITEMS ON) + include(BundleUtilities) + fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/${CMAKE_PROJECT_NAME}\" \"\${SDRANGEL_PLUGINS};\${SDRANGEL_PLUGINSSRV};\${QTPLUGINS};\${SOAPYSDR_PLUGINS}\" \"${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\") + + # remove non distribuitable files + file(REMOVE \"\${CMAKE_INSTALL_PREFIX}/../Frameworks/libmirsdrapi-rsp.dylib\") + + # Remove unused library + #file(GLOB SDRANGEL_LIB \"\${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") + #file(REMOVE_RECURSE \"\${SDRANGEL_LIB}\") + file(REMOVE \"\${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") +" COMPONENT Runtime) + +elseif(LINUX AND BUNDLE) + + find_program (DPKG_BUILDER dpkg-buildpackage DOC "Debian package builder") + if (DPKG_BUILDER) + # + # Derive the correct filename for a Debian package because the DEB + # generator doesn't do this correctly at present. + # + find_program (DPKG_PROGRAM dpkg DOC "dpkg program of Debian-based systems") + if (DPKG_PROGRAM) + execute_process ( + COMMAND ${DPKG_PROGRAM} --print-architecture + OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + else (DPKG_PROGRAM) + set (CPACK_DEBIAN_PACKAGE_ARCHITECTURE noarch) + endif (DPKG_PROGRAM) + + # TODO: + # - perseus package + # - CHANGELOG see https://github.com/xbmc/xbmc/pull/9987/commits/0152e8f50c0f11c8bddcfdc65e1596851fe8b310 + # - verify dpkg info + # - Boost seems used through Qt + + # needs dpkg + set(CPACK_GENERATOR "DEB") + set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}_${LSB_CODENAME}_${CMAKE_SYSTEM_PROCESSOR}") + set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${APPLICATION_MAINTAINER}") + set(CPACK_DEBIAN_PACKAGE_SECTION "hamradio") + set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libasound2, libfftw3-single3, libgcc1, libgl1-mesa-glx, libqt5core5a, libqt5gui5, libqt5multimedia5, libqt5network5, libqt5opengl5, libqt5widgets5, libqt5multimedia5-plugins, libstdc++6, libusb-1.0-0, pulseaudio, libxml2, ffmpeg, libopus0, codec2, libairspy0, libhackrf0, librtlsdr0, libbladerf1, libmirisdr0, libiio0, soapysdr-tools") + + if ("${LSB_CODENAME}" STREQUAL "buster") # Debian 10 + set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec58, libavformat58, libairspyhf1, libopencv-imgproc3.2, libopencv-highgui3.2, limesuite") + elseif("${LSB_CODENAME}" STREQUAL "stretch") # Debian 9 + set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec57, libavformat57, libopencv-imgproc2.45v5, libopencv-highgu2.4-deb0, limesuite") + elseif("${LSB_CODENAME}" STREQUAL "bionic") # Ubuntu 18.04 + set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec57, libavformat57, libairspyhf0, libopencv-imgproc3.2, libopencv-highgui3.2, limesuite") + elseif("${LSB_CODENAME}" STREQUAL "xenial") # Ubuntu 16.04 + set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec-ffmpeg56, libavformat-ffmpeg56, libopencv-imgproc2.4v5, libopencv-highgui2.4v5") + endif() + + set (CPACK_DEBIAN_PACKAGE_PACKAGE_SHLIBDEPS ON) + endif (DPKG_BUILDER) + + find_program (RPMBUILDER rpmbuild DOC "RPM package builder") + if (RPMBUILDER) + # TODO + #list(APPEND CPACK_GENERATOR "RPM") + #set(CPACK_RPM_PACKAGE_RELEASE "1") + #set(CPACK_RPM_PACKAGE_LICENSE "GPL-3.0") + #set(CPACK_RPM_PACKAGE_REQUIRES "libusb") + #set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR}) + endif (RPMBUILDER) + +elseif((WIN32 OR MINGW) AND BUNDLE) + + #set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE) + + list(APPEND CPACK_GENERATOR "NSIS") + set(CPACK_NSIS_PACKAGE_NAME "${APPLICATION_NAME}") + set(CPACK_NSIS_CONTACT "${APPLICATION_MAINTAINER}") + set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) + set(CPACK_NSIS_MODIFY_PATH ON) + +endif(APPLE AND BUNDLE AND BUILD_GUI) + +message(STATUS "CPack generators: ${CPACK_GENERATOR}") +include(CPack) diff --git a/cmake/Modules/FindSoapySDR.cmake b/cmake/Modules/FindSoapySDR.cmake deleted file mode 100644 index fa86cd1a7..000000000 --- a/cmake/Modules/FindSoapySDR.cmake +++ /dev/null @@ -1,36 +0,0 @@ -# Find Soapy SDR - -if (NOT SOAPYSDR_INCLUDE_DIR) - find_path (SOAPYSDR_INCLUDE_DIR - NAMES SoapySDR/Version.h - PATHS ${SOAPYSDR_DIR}/include - /usr/include - /usr/local/include - ) -endif() - -if (NOT SOAPYSDR_LIBRARY) - find_library (SOAPYSDR_LIBRARY - NAMES SoapySDR - HINTS ${CMAKE_INSTALL_PREFIX}/lib - ${CMAKE_INSTALL_PREFIX}/lib64 - PATHS ${SOAPYSDR_DIR}/lib - ${SOAPYSDR_DIR}/lib64 - /usr/local/lib - /usr/local/lib64 - /usr/lib - /usr/lib64 - ) -endif() - -if (SOAPYSDR_INCLUDE_DIR AND SOAPYSDR_LIBRARY) - set(SOAPYSDR_FOUND TRUE) -endif() - -if (SOAPYSDR_FOUND) - message (STATUS "Found SoapySDR: ${SOAPYSDR_INCLUDE_DIR}, ${SOAPYSDR_LIBRARY}") -else() - message (STATUS "Could not find SoapySDR") -endif() - -mark_as_advanced(SOAPYSDR_INCLUDE_DIR SOAPYSDR_LIBRARY) diff --git a/custom/desktop/MacOSXBundleInfo.plist.in b/cmake/cpack/MacOSXBundleInfo.plist.in similarity index 100% rename from custom/desktop/MacOSXBundleInfo.plist.in rename to cmake/cpack/MacOSXBundleInfo.plist.in diff --git a/custom/desktop/sdrangel.desktop.in b/cmake/cpack/sdrangel.desktop.in similarity index 100% rename from custom/desktop/sdrangel.desktop.in rename to cmake/cpack/sdrangel.desktop.in diff --git a/custom/desktop/sdrangel_icon.icns b/cmake/cpack/sdrangel_icon.icns similarity index 100% rename from custom/desktop/sdrangel_icon.icns rename to cmake/cpack/sdrangel_icon.icns diff --git a/custom/desktop/sdrangel_icon.png b/cmake/cpack/sdrangel_icon.png similarity index 100% rename from custom/desktop/sdrangel_icon.png rename to cmake/cpack/sdrangel_icon.png diff --git a/custom/desktop/sdrangel_icon.svg b/cmake/cpack/sdrangel_icon.svg similarity index 100% rename from custom/desktop/sdrangel_icon.svg rename to cmake/cpack/sdrangel_icon.svg diff --git a/cmake/sdrangel.sh b/cmake/sdrangel.sh index 1900f5ca4..e86cdcfd2 100755 --- a/cmake/sdrangel.sh +++ b/cmake/sdrangel.sh @@ -1,12 +1,10 @@ #!/bin/sh -SDRANGEL_BUNDLE="`echo "$0" | sed -e 's/\/Contents\/MacOS\/.*//'`" -SDRANGEL_RESOURCES="$SDRANGEL_BUNDLE/Contents/Resources" +get_abs_dir() { + # $1 : relative filename + echo "$(cd "$(dirname "$1")" && pwd)" +} -echo "running $0" -echo "SDRANGEL_BUNDLE: $SDRANGEL_BUNDLE" +SDRANGEL_RESOURCES="$(get_abs_dir "$0")/../Resources" +exec "$SDRANGEL_RESOURCES/sdrangel" -export "DYLD_LIBRARY_PATH=$SDRANGEL_RESOURCES/lib" -export "PATH=$SDRANGEL_RESOURCES/bin:$PATH" - -exec "$SDRANGEL_RESOURCES/bin/sdrangel" diff --git a/devices/soapysdr/CMakeLists.txt b/devices/soapysdr/CMakeLists.txt index 197af16cf..df998beb3 100644 --- a/devices/soapysdr/CMakeLists.txt +++ b/devices/soapysdr/CMakeLists.txt @@ -16,7 +16,7 @@ set(soapysdrdevice_HEADERS include_directories( ${CMAKE_CURRENT_BINARY_DIR} - ${SOAPYSDR_INCLUDE_DIR} + ${SoapySDR_INCLUDE_DIRS} ) add_library(soapysdrdevice SHARED @@ -27,7 +27,7 @@ set_target_properties(soapysdrdevice PROPERTIES DEFINE_SYMBOL "devices_EXPORTS") target_link_libraries(soapysdrdevice - ${SOAPYSDR_LIBRARY} + ${SoapySDR_LIBRARIES} sdrbase ) diff --git a/plugins/samplesink/soapysdroutput/CMakeLists.txt b/plugins/samplesink/soapysdroutput/CMakeLists.txt index 83093c5ad..86dc18133 100644 --- a/plugins/samplesink/soapysdroutput/CMakeLists.txt +++ b/plugins/samplesink/soapysdroutput/CMakeLists.txt @@ -18,7 +18,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client ${CMAKE_SOURCE_DIR}/devices - ${SOAPYSDR_INCLUDE_DIR} + ${SoapySDR_INCLUDE_DIRS} ) if(NOT SERVER_MODE) @@ -54,7 +54,7 @@ target_link_libraries(${TARGET_NAME} sdrbase ${TARGET_LIB_GUI} swagger - ${SOAPYSDR_LIBRARY} + ${SoapySDR_LIBRARIES} soapysdrdevice ) diff --git a/plugins/samplesource/soapysdrinput/CMakeLists.txt b/plugins/samplesource/soapysdrinput/CMakeLists.txt index 1fe65ca79..54924a128 100644 --- a/plugins/samplesource/soapysdrinput/CMakeLists.txt +++ b/plugins/samplesource/soapysdrinput/CMakeLists.txt @@ -18,7 +18,7 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client ${CMAKE_SOURCE_DIR}/devices - ${SOAPYSDR_INCLUDE_DIR} + ${SoapySDR_INCLUDE_DIRS} ) if(NOT SERVER_MODE) diff --git a/sdrgui/resources/sdrangel_icon.ico b/sdrgui/resources/sdrangel_icon.ico index d55b7387a..62c7de726 100644 Binary files a/sdrgui/resources/sdrangel_icon.ico and b/sdrgui/resources/sdrangel_icon.ico differ diff --git a/sdrgui/resources/sdrangel_icon.png b/sdrgui/resources/sdrangel_icon.png index 450f83b41..04d0f8c5f 100644 Binary files a/sdrgui/resources/sdrangel_icon.png and b/sdrgui/resources/sdrangel_icon.png differ