| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | # Stuff qmake can tell us
 | 
					
						
							| 
									
										
										
										
											2022-11-17 14:34:54 +00:00
										 |  |  | get_target_property (QMAKE_EXECUTABLE Qt::qmake LOCATION)
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 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)
 | 
					
						
							| 
									
										
										
										
											2020-10-27 16:22:10 +00:00
										 |  |  | query_qmake (QT_INSTALL_QML QT_QML_DIR)
 | 
					
						
							| 
									
										
										
										
											2022-05-16 13:48:29 +01:00
										 |  |  | query_qmake (QT_INSTALL_LIBS QT_LIBS_DIR)
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | if(APPLE AND BUNDLE AND BUILD_GUI)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |   find_program (SW_VERS_PROGRAM sw_vers)
 | 
					
						
							|  |  |  |   if (SW_VERS_PROGRAM)
 | 
					
						
							|  |  |  |     execute_process ( | 
					
						
							|  |  |  |       COMMAND ${SW_VERS_PROGRAM} -productVersion
 | 
					
						
							|  |  |  |       OUTPUT_VARIABLE CPACK_MACOS_PACKAGE_ARCHITECTURE
 | 
					
						
							|  |  |  |       OUTPUT_STRIP_TRAILING_WHITESPACE
 | 
					
						
							|  |  |  |       )
 | 
					
						
							|  |  |  |   else (SW_VERS_PROGRAM)
 | 
					
						
							|  |  |  |     set (CPACK_MACOS_PACKAGE_ARCHITECTURE noarch)
 | 
					
						
							|  |  |  |   endif (SW_VERS_PROGRAM)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-16 13:48:29 +01:00
										 |  |  |   # Create script that runs macdeployqt
 | 
					
						
							|  |  |  |   configure_file("${CMAKE_SOURCE_DIR}/cmake/cpack/deploy_mac.cmake.in" "${PROJECT_BINARY_DIR}/deploy_mac.cmake" @ONLY)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |   set(CPACK_GENERATOR "Bundle")
 | 
					
						
							|  |  |  |   set(CPACK_BINARY_DRAGNDROP ON)
 | 
					
						
							|  |  |  |   set(CPACK_BUNDLE_NAME "${APPLICATION_NAME}")
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |   set(CPACK_BUNDLE_ICON "${CMAKE_SOURCE_DIR}/cmake/cpack/sdrangel_icon.icns")
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |   set(CPACK_BUNDLE_PLIST "${CMAKE_BINARY_DIR}/Info.plist")
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |   set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/cmake/cpack/sdrangel_icon.icns")
 | 
					
						
							|  |  |  |   set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}_${CPACK_MACOS_PACKAGE_ARCHITECTURE}_${CMAKE_SYSTEM_PROCESSOR}")
 | 
					
						
							| 
									
										
										
										
											2022-05-16 13:48:29 +01:00
										 |  |  |   set(CPACK_PRE_BUILD_SCRIPTS "${PROJECT_BINARY_DIR}/deploy_mac.cmake")
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   # 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)
 | 
					
						
							| 
									
										
										
										
											2019-05-22 11:36:16 +02:00
										 |  |  |     set(SOAPY_SDR_MOD_PATH "${SOAPYSDR_ROOT}/lib/SoapySDR/modules${SOAPYSDR_ABI_VERSION}")
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |     file(GLOB SOAPY_MODS ${SOAPY_SDR_MOD_PATH}/*.so)
 | 
					
						
							|  |  |  |     foreach(SOAPY_MOD_FILE ${SOAPY_MODS})
 | 
					
						
							|  |  |  |       install( FILES "${SOAPY_MOD_FILE}" | 
					
						
							| 
									
										
										
										
											2019-05-22 11:36:16 +02:00
										 |  |  |         DESTINATION "../Frameworks/SoapySDR/modules${SOAPYSDR_ABI_VERSION}"
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |         COMPONENT Runtime
 | 
					
						
							|  |  |  |         )
 | 
					
						
							|  |  |  |     endforeach()
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |   # remove non distribuitable file
 | 
					
						
							|  |  |  |   if(ENABLE_MIRSDRAPI AND OFF)
 | 
					
						
							|  |  |  |     message(STATUS \"Remove libmirsdrapi-rsp.dylib - not distribuitable\")
 | 
					
						
							|  |  |  |     file(REMOVE \"\${CMAKE_INSTALL_PREFIX}/../Frameworks/libmirsdrapi-rsp.dylib\") | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # remove unused library
 | 
					
						
							|  |  |  |   file(GLOB SDRANGEL_REMOVE_LIB \"\${CMAKE_INSTALL_PREFIX}/${INSTALL_LIB_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}\") | 
					
						
							|  |  |  |   foreach(file \${SDRANGEL_REMOVE_LIB}) | 
					
						
							|  |  |  |     file(REMOVE \"\${file}\") | 
					
						
							|  |  |  |   endforeach()
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |   # TODO: code/dmg signature
 | 
					
						
							|  |  |  |   #   see https://github.com/cjcliffe/CubicSDR
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-22 17:16:06 +02:00
										 |  |  | # NOTE: only as reference; remove in future
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | elseif(LINUX AND BUNDLE)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-22 17:16:06 +02:00
										 |  |  |   # NOTE: moved to debhelper tool (debian/ folder)
 | 
					
						
							|  |  |  |   #   useful for the moment to maintain dependencies list per distro
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |   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 ( | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |         COMMAND ${DPKG_PROGRAM} --print-architecture
 | 
					
						
							|  |  |  |         OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE
 | 
					
						
							|  |  |  |         OUTPUT_STRIP_TRAILING_WHITESPACE
 | 
					
						
							|  |  |  |         )
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |     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}")
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |     set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |     set(CPACK_DEBIAN_PACKAGE_MAINTAINER "${APPLICATION_MAINTAINER}")
 | 
					
						
							|  |  |  |     set(CPACK_DEBIAN_PACKAGE_SECTION "hamradio")
 | 
					
						
							| 
									
										
										
										
											2019-06-25 19:08:02 +02:00
										 |  |  |     set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6, libasound2, libfftw3-single3, libgcc1, libgl1-mesa-glx, libqt5core5a, libqt5gui5, libqt5websockets5, libqt5multimedia5, libqt5network5, libqt5opengl5, libqt5widgets5, libqt5multimedia5-plugins, libstdc++6, libusb-1.0-0, pulseaudio, libxml2, ffmpeg, libopus0, codec2, libairspy0, libhackrf0, librtlsdr0, libbladerf1, libmirisdr0, libiio0")
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if ("${LSB_CODENAME}" STREQUAL "buster") # Debian 10
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |       set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec58, libavformat58, libairspyhf1, libopencv-imgproc3.2, libopencv-highgui3.2, limesuite, soapysdr-tools")
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |     elseif("${LSB_CODENAME}" STREQUAL "stretch") # Debian 9
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |       set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec57, libavformat57, libopencv-imgproc2.45v5, libopencv-highgu2.4-deb0, limesuite, soapysdr-tools")
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |     elseif("${LSB_CODENAME}" STREQUAL "bionic")  # Ubuntu 18.04
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |       set(CPACK_DEBIAN_PACKAGE_DEPENDS "${CPACK_DEBIAN_PACKAGE_DEPENDS}, libavcodec57, libavformat57, libairspyhf0, libopencv-imgproc3.2, libopencv-highgui3.2, limesuite, soapysdr-tools")
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |     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()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |     # needed before cmake 2.8.3
 | 
					
						
							|  |  |  |     set(CPACK_SET_DESTDIR true)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |   endif (DPKG_BUILDER)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-22 17:16:06 +02:00
										 |  |  |   # NOTE: moved to distro tool
 | 
					
						
							|  |  |  |   # for fedora see https://docs.fedoraproject.org/en-US/quick-docs/creating-rpm-packages/
 | 
					
						
							|  |  |  |   #                https://docs.fedoraproject.org/en-US/packaging-guidelines/CMake/
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |   find_program (RPMBUILDER rpmbuild DOC "RPM package builder")
 | 
					
						
							|  |  |  |   if (RPMBUILDER)
 | 
					
						
							| 
									
										
										
										
											2019-05-08 11:27:57 +02:00
										 |  |  |     list(APPEND CPACK_GENERATOR "RPM")
 | 
					
						
							|  |  |  |     set(CPACK_RPM_PACKAGE_RELEASE "1")
 | 
					
						
							|  |  |  |     set(CPACK_RPM_PACKAGE_LICENSE "GPL-3.0")
 | 
					
						
							|  |  |  |     # TODO OpenSUSE and Fedora dependencies
 | 
					
						
							|  |  |  |     set(CPACK_RPM_PACKAGE_REQUIRES "libusb fftw qt5 pulseaudio libxml2")
 | 
					
						
							|  |  |  |     set (CPACK_RPM_PACKAGE_ARCHITECTURE ${CMAKE_SYSTEM_PROCESSOR})
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  |   endif (RPMBUILDER)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-24 08:32:40 +02:00
										 |  |  | elseif(WIN32 OR MINGW)
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |   # unfortunately some libraries are dependencies of dll so we copy by hand
 | 
					
						
							|  |  |  |   # TODO check if we can use fixup_bundle() and have libraries on root path
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # demoddatv.dll
 | 
					
						
							|  |  |  |   file(GLOB FFMPEG_DLLS "${FFMPEG_LIBRARIES}/*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |   foreach(ffmpeg_dll ${FFMPEG_DLLS})
 | 
					
						
							|  |  |  |     get_filename_component(ffmpeg_dll_name "${ffmpeg_dll}"  NAME)
 | 
					
						
							|  |  |  |     add_custom_target(copy_ffmpeg_${ffmpeg_dll_name} ALL | 
					
						
							|  |  |  |       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${ffmpeg_dll}" "${SDRANGEL_BINARY_BIN_DIR}/"
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |   endforeach(ffmpeg_dll)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # modatv.dll
 | 
					
						
							|  |  |  |   file(GLOB OPENCV_DLLS "${OpenCV_LIBS_BIN_DIR}/opencv_world*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |   foreach(opencv_dll ${OPENCV_DLLS})
 | 
					
						
							|  |  |  |     get_filename_component(opencv_dll_name "${opencv_dll}"  NAME)
 | 
					
						
							|  |  |  |     add_custom_target(copy_ffmpeg_${opencv_dll_name} ALL | 
					
						
							|  |  |  |       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${opencv_dll}" "${SDRANGEL_BINARY_BIN_DIR}/"
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |   endforeach(opencv_dll)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-09-01 16:02:33 +01:00
										 |  |  |   if(ENABLE_SOAPYSDR AND SOAPYSDR_FOUND)
 | 
					
						
							|  |  |  |     # Soapy support libraries
 | 
					
						
							|  |  |  |     file(MAKE_DIRECTORY ${SDRANGEL_BINARY_LIB_DIR}/SoapySDR)
 | 
					
						
							|  |  |  |     file(MAKE_DIRECTORY ${SDRANGEL_BINARY_LIB_DIR}/SoapySDR/modules0.7)
 | 
					
						
							|  |  |  |     file(GLOB SOAPYSUPPORT_DLLS "${SOAPYSUPPORT_DIR}/lib/SoapySDR/modules0.7/*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |     foreach(soapysupport_dll ${SOAPYSUPPORT_DLLS})
 | 
					
						
							|  |  |  |       get_filename_component(soapysupport_dll_name "${soapysupport_dll}"  NAME)
 | 
					
						
							|  |  |  |       add_custom_target(copy_soapysupport_${soapysupport_dll_name} ALL | 
					
						
							|  |  |  |         COMMAND ${CMAKE_COMMAND} -E copy_if_different "${soapysupport_dll}" "${SDRANGEL_BINARY_LIB_DIR}/SoapySDR/modules0.7/"
 | 
					
						
							|  |  |  |       )
 | 
					
						
							|  |  |  |     endforeach(soapysupport_dll)
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-29 18:12:56 +01:00
										 |  |  |   file(GLOB CODEC2_DLLS "${CODEC2_DLL_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |   foreach(codec2_dll ${CODEC2_DLLS})
 | 
					
						
							|  |  |  |     get_filename_component(codec2_dll_name "${codec2_dll}"  NAME)
 | 
					
						
							|  |  |  |     add_custom_target(copy_codec2_${codec2_dll_name} ALL | 
					
						
							|  |  |  |       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${codec2_dll}" "${SDRANGEL_BINARY_BIN_DIR}/"
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |   endforeach(codec2_dll)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-30 16:04:21 +01:00
										 |  |  |   file(GLOB HIDAPI_DLLS "${HIDAPI_DLL_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |   foreach(hidapi_dll ${HIDAPI_DLLS})
 | 
					
						
							|  |  |  |     get_filename_component(hidapi_dll_name "${hidapi_dll}"  NAME)
 | 
					
						
							|  |  |  |     add_custom_target(copy_hidapi_${hidapi_dll_name} ALL | 
					
						
							|  |  |  |       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${hidapi_dll}" "${SDRANGEL_BINARY_BIN_DIR}/"
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |   endforeach(hidapi_dll)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-02 22:45:28 +01:00
										 |  |  |   if(ENABLE_USRP AND UHD_FOUND)
 | 
					
						
							|  |  |  |     file(GLOB UHD_DLLS "${UHD_DLL_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |     foreach(uhd_dll ${UHD_DLLS})
 | 
					
						
							|  |  |  |       get_filename_component(uhd_dll_name "${uhd_dll}"  NAME)
 | 
					
						
							|  |  |  |       add_custom_target(copy_uhd_${uhd_dll_name} ALL | 
					
						
							|  |  |  |         COMMAND ${CMAKE_COMMAND} -E copy_if_different "${uhd_dll}" "${SDRANGEL_BINARY_BIN_DIR}/"
 | 
					
						
							|  |  |  |       )
 | 
					
						
							|  |  |  |     endforeach(uhd_dll)
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-04-11 21:21:36 +01:00
										 |  |  |   if(ENABLE_SDRPLAY AND SDRPLAY_FOUND)
 | 
					
						
							|  |  |  |     file(GLOB SDRPLAY_DLLS "${SDRPLAY_DLL_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |     foreach(sdrplay_dll ${SDRPLAY_DLLS})
 | 
					
						
							|  |  |  |       get_filename_component(sdrplay_dll_name "${sdrplay_dll}"  NAME)
 | 
					
						
							|  |  |  |       add_custom_target(copy_sdrplay_${sdrplay_dll_name} ALL | 
					
						
							|  |  |  |         COMMAND ${CMAKE_COMMAND} -E copy_if_different "${sdrplay_dll}" "${SDRANGEL_BINARY_BIN_DIR}/"
 | 
					
						
							|  |  |  |       )
 | 
					
						
							|  |  |  |     endforeach(sdrplay_dll)
 | 
					
						
							|  |  |  |   endif()
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-10-27 16:22:10 +00:00
										 |  |  |   file(GLOB OPENSSL_DLLS "${OPENSSL_DLL_DIR}/*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |   foreach(openssl_dll ${OPENSSL_DLLS})
 | 
					
						
							|  |  |  |     get_filename_component(openssl_dll_name "${openssl_dll}"  NAME)
 | 
					
						
							|  |  |  |     add_custom_target(copy_openssl_${openssl_dll_name} ALL | 
					
						
							|  |  |  |       COMMAND ${CMAKE_COMMAND} -E copy_if_different "${openssl_dll}" "${SDRANGEL_BINARY_BIN_DIR}/"
 | 
					
						
							|  |  |  |     )
 | 
					
						
							|  |  |  |   endforeach(openssl_dll)
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |   # TODO we need a way to fixup_bundle() on the build bin/ directory without call install
 | 
					
						
							|  |  |  |   if(BUILD_GUI)
 | 
					
						
							|  |  |  |     install(CODE " | 
					
						
							|  |  |  |       include(BundleUtilities)
 | 
					
						
							| 
									
										
										
										
											2022-09-15 19:50:37 +02:00
										 |  |  |       # BundleUtilities.cmake verify_app fails unless we ignore QtWebEngineProcess.exe, as it fails if there are any " external " prerequisites
 | 
					
						
							| 
									
										
										
										
											2022-02-04 20:56:47 +00:00
										 |  |  |       # Should we ignore it? It appears to work OK if we do. Is there a better way?
 | 
					
						
							|  |  |  |       fixup_bundle(\"${SDRANGEL_BINARY_BIN_DIR}/sdrangel${CMAKE_EXECUTABLE_SUFFIX}\" \"\" \"${WINDOWS_FIXUP_BUNDLE_LIB_DIRS}\" IGNORE_ITEM \"QtWebEngineProcess.exe\") | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |     " COMPONENT Runtime)
 | 
					
						
							|  |  |  |   elseif(BUILD_SERVER)
 | 
					
						
							|  |  |  |     install(CODE " | 
					
						
							|  |  |  |       include(BundleUtilities)
 | 
					
						
							|  |  |  |       fixup_bundle(\"${SDRANGEL_BINARY_BIN_DIR}/sdrangelsrv${CMAKE_EXECUTABLE_SUFFIX}\" \"\" \"${WINDOWS_FIXUP_BUNDLE_LIB_DIRS}\") | 
					
						
							|  |  |  |     " COMPONENT Runtime)
 | 
					
						
							|  |  |  |   endif(BUILD_GUI)
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-24 08:32:40 +02:00
										 |  |  |   if(BUNDLE)
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |     if(BUILD_GUI)
 | 
					
						
							|  |  |  |       install(CODE " | 
					
						
							|  |  |  |         include(BundleUtilities)
 | 
					
						
							|  |  |  |         fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/sdrangel${CMAKE_EXECUTABLE_SUFFIX}\" \"\" \"${WINDOWS_FIXUP_BUNDLE_LIB_DIRS}\") | 
					
						
							|  |  |  |       " COMPONENT Runtime)
 | 
					
						
							| 
									
										
										
										
											2021-11-04 05:25:14 +01:00
										 |  |  |       install(FILES "${FFTW3F_WISDOM}" DESTINATION "${INSTALL_BIN_DIR}")
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |     elseif(BUILD_SERVER)
 | 
					
						
							|  |  |  |       install(CODE " | 
					
						
							|  |  |  |         include(BundleUtilities)
 | 
					
						
							|  |  |  |         fixup_bundle(\"\${CMAKE_INSTALL_PREFIX}/sdrangelsrv${CMAKE_EXECUTABLE_SUFFIX}\" \"\" \"${WINDOWS_FIXUP_BUNDLE_LIB_DIRS}\") | 
					
						
							|  |  |  |       " COMPONENT Runtime)
 | 
					
						
							|  |  |  |     endif(BUILD_GUI)
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # unfortunately some libraries are dependencies of dll so we copy by hand
 | 
					
						
							|  |  |  |     # TODO check if we can use fixup_bundle() and have libraries on root path
 | 
					
						
							| 
									
										
										
										
											2019-06-25 19:08:02 +02:00
										 |  |  |     # inputkiwisdr.dll
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |     # demoddatv.dll
 | 
					
						
							|  |  |  |     install(DIRECTORY "${FFMPEG_LIBRARIES}/" DESTINATION "${INSTALL_LIB_DIR}" | 
					
						
							|  |  |  |       FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |     # modatv.dll
 | 
					
						
							|  |  |  |     install(DIRECTORY "${OpenCV_LIBS_BIN_DIR}/" DESTINATION "${INSTALL_LIB_DIR}" | 
					
						
							|  |  |  |       FILES_MATCHING PATTERN "opencv_world*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							|  |  |  |     # libusb
 | 
					
						
							|  |  |  |     get_filename_component(GFN_LIBUSB_DIR "${LIBUSB_LIBRARIES}" DIRECTORY)
 | 
					
						
							|  |  |  |     install(FILES "${GFN_LIBUSB_DIR}/libusb-1.0${CMAKE_SHARED_LIBRARY_SUFFIX}" DESTINATION "${INSTALL_LIB_DIR}")
 | 
					
						
							| 
									
										
										
										
											2020-10-06 18:17:43 +02:00
										 |  |  |     # codec2
 | 
					
						
							|  |  |  |     install(DIRECTORY "${CODEC2_DLL_DIR}/" DESTINATION "${INSTALL_LIB_DIR}" | 
					
						
							|  |  |  |       FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							| 
									
										
										
										
											2022-05-30 16:04:21 +01:00
										 |  |  |     # hidapi
 | 
					
						
							|  |  |  |     install(DIRECTORY "${HIDAPI_DLL_DIR}/" DESTINATION "${INSTALL_LIB_DIR}" | 
					
						
							|  |  |  |       FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							| 
									
										
										
										
											2020-10-06 18:17:43 +02:00
										 |  |  |     # uhd
 | 
					
						
							|  |  |  |     install(DIRECTORY "${UHD_DLL_DIR}/" DESTINATION "${INSTALL_LIB_DIR}" | 
					
						
							|  |  |  |       FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							| 
									
										
										
										
											2021-04-11 21:21:36 +01:00
										 |  |  |     # sdrplay
 | 
					
						
							|  |  |  |     install(DIRECTORY "${SDRPLAY_DLL_DIR}/" DESTINATION "${INSTALL_LIB_DIR}" | 
					
						
							|  |  |  |       FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							| 
									
										
										
										
											2020-10-27 16:22:10 +00:00
										 |  |  |     # OpenSSL
 | 
					
						
							|  |  |  |     install(DIRECTORY "${OPENSSL_DLL_DIR}/" DESTINATION "${INSTALL_LIB_DIR}" | 
					
						
							|  |  |  |       FILES_MATCHING PATTERN "*${CMAKE_SHARED_LIBRARY_SUFFIX}")
 | 
					
						
							| 
									
										
										
										
											2020-10-06 18:17:43 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-02-04 20:56:47 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |     install(CODE " | 
					
						
							|  |  |  |       # remove *.lib files
 | 
					
						
							|  |  |  |       # TODO find a better way
 | 
					
						
							|  |  |  |       file(GLOB NSIS_REMOVE_LIB \"\${CMAKE_INSTALL_PREFIX}/*.lib\") | 
					
						
							|  |  |  |       foreach(file \${NSIS_REMOVE_LIB}) | 
					
						
							|  |  |  |         file(REMOVE \"\${file}\") | 
					
						
							|  |  |  |       endforeach()
 | 
					
						
							|  |  |  |       file(GLOB NSIS_REMOVE_LIB \"\${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINS_DIR}/*.lib\") | 
					
						
							|  |  |  |       foreach(file \${NSIS_REMOVE_LIB}) | 
					
						
							|  |  |  |         file(REMOVE \"\${file}\") | 
					
						
							|  |  |  |       endforeach()
 | 
					
						
							|  |  |  |       file(GLOB NSIS_REMOVE_LIB \"\${CMAKE_INSTALL_PREFIX}/${INSTALL_PLUGINSSRV_DIR}/*.lib\") | 
					
						
							|  |  |  |       foreach(file \${NSIS_REMOVE_LIB}) | 
					
						
							|  |  |  |         file(REMOVE \"\${file}\") | 
					
						
							|  |  |  |       endforeach()
 | 
					
						
							|  |  |  |     " COMPONENT Runtime)
 | 
					
						
							| 
									
										
										
										
											2019-05-24 08:32:40 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     list(APPEND CPACK_GENERATOR "ZIP;NSIS")
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |     set(CPACK_MONOLITHIC_INSTALL ON)
 | 
					
						
							|  |  |  |     set(CPACK_NSIS_HELP_LINK ${CPACK_PACKAGE_CONTACT})
 | 
					
						
							|  |  |  |     set(CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_CONTACT})
 | 
					
						
							|  |  |  |     set(CPACK_NSIS_CONTACT ${APPLICATION_MAINTAINER})
 | 
					
						
							|  |  |  |     set(CPACK_NSIS_MUI_ICON "${CMAKE_SOURCE_DIR}/cmake/cpack/sdrangel_icon.ico")
 | 
					
						
							|  |  |  |     set(CPACK_NSIS_MUI_UNIICON "${CMAKE_SOURCE_DIR}/cmake/cpack/sdrangel_icon.ico")
 | 
					
						
							| 
									
										
										
										
											2019-05-24 08:32:40 +02:00
										 |  |  |     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)
 | 
					
						
							| 
									
										
										
										
											2019-06-24 18:25:53 +02:00
										 |  |  |     set(CPACK_PACKAGE_INSTALL_DIRECTORY ${APPLICATION_NAME})
 | 
					
						
							|  |  |  |     set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY ${APPLICATION_NAME})
 | 
					
						
							|  |  |  |     list(APPEND CPACK_NSIS_EXTRA_INSTALL_COMMANDS " | 
					
						
							|  |  |  |       ExecWait '$INSTDIR\\\\${VCREDIST_FILE} /passive /norestart'
 | 
					
						
							|  |  |  |       Delete '$INSTDIR\\\\${VCREDIST_FILE}'
 | 
					
						
							|  |  |  |     ")
 | 
					
						
							|  |  |  |     set(CPACK_NSIS_CREATE_ICONS_EXTRA | 
					
						
							|  |  |  |       "CreateShortCut '$SMPROGRAMS\\\\$STARTMENU_FOLDER\\\\SDRangel.lnk' '$INSTDIR\\\\sdrangel.exe'")
 | 
					
						
							|  |  |  |     set(CPACK_NSIS_DELETE_ICONS_EXTRA | 
					
						
							|  |  |  |       "Delete '$SMPROGRAMS\\\\$START_MENU\\\\SDRangel.lnk'")
 | 
					
						
							| 
									
										
										
										
											2019-06-26 17:50:45 +02:00
										 |  |  |   endif(BUNDLE)
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-25 08:22:50 +02:00
										 |  |  | endif(APPLE AND BUNDLE AND BUILD_GUI)
 | 
					
						
							| 
									
										
										
										
											2019-05-07 19:36:47 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | message(STATUS "CPack generators: ${CPACK_GENERATOR}")
 | 
					
						
							|  |  |  | include(CPack)
 |