1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-23 16:38:37 -05:00

Compare commits

...

36 Commits

Author SHA1 Message Date
Edouard Griffiths
b122d40bce
Merge pull request #2304 from srcejon/freq_scanner
Server: Use Sink/MIMO signals rather than Source.
2024-11-02 08:53:11 +01:00
Edouard Griffiths
8346cc4988
Merge pull request #2303 from srcejon/mac_ci
Add github action to build releases for Mac
2024-11-02 05:18:58 +01:00
Jon Beniston
763438c7e5 Use short sha 2024-11-01 21:33:38 +00:00
srcejon
d516e9529d
Merge branch 'f4exb:master' into freq_scanner 2024-11-01 16:32:59 +00:00
srcejon
9afab2af89 Server: Use Sink/MIMO signals rather than Source. 2024-11-01 16:32:39 +00:00
Jon Beniston
4f36b21d2e Use macos-14 image to build on ARM which is twice as fast. 2024-11-01 16:28:23 +00:00
Jon Beniston
441c47c35f Install python manually. 2024-11-01 13:30:36 +00:00
Jon Beniston
9bd001c9ed Update to github releases 2024-11-01 12:49:39 +00:00
Jon Beniston
4ba1340e8e Merge branch 'mac_ci' of https://github.com/srcejon/sdrangel into mac_ci 2024-11-01 12:47:02 +00:00
Jon Beniston
1094874321 Remove test code. 2024-11-01 12:46:53 +00:00
srcejon
84251abda7
Merge branch 'f4exb:master' into mac_ci 2024-11-01 12:46:23 +00:00
Jon Beniston
ff56523865 Try Python3_FIND_FRAMEWORK=NEVER 2024-11-01 11:43:28 +00:00
Jon Beniston
1653698f99 Try -DPYTHON_EXECUTABLE again 2024-11-01 11:37:55 +00:00
Jon Beniston
a9dbfea8d1 Try bin 2024-11-01 11:16:00 +00:00
Jon Beniston
7a9b5ee068 Try Python3_ROOT_DIR 2024-11-01 10:48:36 +00:00
Jon Beniston
8e81d3825a Update boost to latest release. 1.78 fails to build using c++17
Update UHD to 4.7 and set -DENABLE_PYTHON_API=OFF to try to remove runtime python requirement.
2024-11-01 10:10:31 +00:00
Jon Beniston
03f4dfe2e1 Add target option 2024-11-01 09:11:32 +00:00
Jon Beniston
28d0b73bc5 Install SDRplay API 2024-11-01 09:08:25 +00:00
Jon Beniston
0bfef9de14 Add x64 build. Try to build DATV. 2024-11-01 08:08:19 +00:00
Jon Beniston
622958bdb5 Use hash for ci builds 2024-10-31 21:16:19 +00:00
Jon Beniston
5c41fe8342 Build in one step, as faster 2024-10-31 21:12:36 +00:00
Jon Beniston
32a9144f55 Don't use absolute path, as build directory may be somewhere else. 2024-10-31 21:12:15 +00:00
Jon Beniston
e707d75624 Update OpenCV as fails to compile with c++17 2024-10-31 18:57:08 +00:00
Jon Beniston
868bfea65e Disble USRP for now. 2024-10-31 18:10:27 +00:00
Jon Beniston
9d3fe6e86e Try DPYTHON_EXECUTABLE 2024-10-31 17:13:19 +00:00
Jon Beniston
d9f36dc508 Try venv 2024-10-31 16:41:05 +00:00
Jon Beniston
e35133b741 Try pipx 2024-10-31 16:28:29 +00:00
Jon Beniston
3df03768d2 Is pip3 already installed? 2024-10-31 16:22:50 +00:00
Jon Beniston
f124186366 Add python packages for UHD 2024-10-31 15:33:00 +00:00
Jon Beniston
7bab142af1 usrpoutput: add_dependencies needs to follow add_library 2024-10-31 15:16:08 +00:00
Jon Beniston
11614b417b Add brew subversion and nasm.
Add qtwebchannel as appears to be needed by qtwebengine.
2024-10-31 14:50:06 +00:00
Jon Beniston
e5fa27ba96 Try removing setup-python 2024-10-31 14:34:48 +00:00
Jon Beniston
46e8688de2 Install Qt 6 2024-10-31 14:03:21 +00:00
Jon Beniston
fceee07486 Remove nehalem for arm build 2024-10-31 13:56:29 +00:00
Jon Beniston
a108d0b986 Merge branch 'mac_ci' of https://github.com/srcejon/sdrangel into mac_ci 2024-10-31 13:53:56 +00:00
Jon Beniston
362e23bea0 Add github action to build Mac release 2024-10-31 13:53:45 +00:00
6 changed files with 145 additions and 24 deletions

127
.github/workflows/mac.yml vendored Normal file
View File

@ -0,0 +1,127 @@
name: SDRangel Mac release build
on:
push:
branches:
- mac_ci
tags:
- 'v*'
jobs:
build_mac_x64:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Update brew
run: brew update
- name: Install brew packages
run: brew install nasm subversion
- name: Install SDRplay API
run: |
wget https://www.sdrplay.com/software/SDRplayAPI-macos-installer-universal-3.15.0.pkg
sudo installer -pkg SDRplayAPI-macos-installer-universal-3.15.0.pkg -target /
- name: Install python
run: |
wget https://www.python.org/ftp/python/3.12.7/python-3.12.7-macos11.pkg
sudo installer -pkg python-3.12.7-macos11.pkg -target /
- name: Install python packages for UHD
run: |
/usr/local/bin/python3.12 -m pip install numpy mako requests Cheetah3 setuptools
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.3'
host: 'mac'
arch: 'clang_64'
modules: 'qtcharts qtscxml qt5compat qtlocation qtmultimedia qtpositioning qtserialport qtspeech qtwebsockets qtwebengine qtshadertools qtwebchannel'
- name: Configure SDRangel
run: |
mkdir build && cd build
cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_QT6=ON -DCMAKE_BUILD_TYPE=Release -DARCH_OPT=nehalem -DDEBUG_OUTPUT=ON -DENABLE_USRP=ON -DENABLE_MIRISDR=OFF -DBUILD_SERVER=OFF -DENABLE_EXTERNAL_LIBRARIES=ON -DBUNDLE=ON -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=TRUE -DPYTHON_EXECUTABLE=/usr/local/bin/python3.12
- name: Build SDRangel on Mac
run: |
cd build
make -j4 package
- name: Get version
id: get_version
run: |
if [[ "${{github.ref_name}}" == "mac_ci" ]]; then
echo "version=$(echo ${{github.sha}} | cut -c1-7)" >> $GITHUB_OUTPUT
else
echo "version=$(echo ${{github.ref_name}} | cut -c2-)" >> $GITHUB_OUTPUT
fi
- name: Get filename
id: get_filename
run: echo "filename=$(grep CPACK_PACKAGE_FILE_NAME build/CMakeCache.txt | cut -d "=" -f2)" >> $GITHUB_OUTPUT
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: sdrangel-${{ steps.get_version.outputs.version }}-macx64.dmg
path: ${{ github.workspace }}/build/${{ steps.get_filename.outputs.filename }}.dmg
- name: Upload release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: ${{ github.workspace }}/build/${{ steps.get_filename.outputs.filename }}.dmg
build_mac_arm64:
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 0
- name: Update brew
run: brew update
- name: Install brew packages
run: brew install nasm subversion
- name: Install SDRplay API
run: |
wget https://www.sdrplay.com/software/SDRplayAPI-macos-installer-universal-3.15.0.pkg
sudo installer -pkg SDRplayAPI-macos-installer-universal-3.15.0.pkg -target /
- name: Install python
run: |
wget https://www.python.org/ftp/python/3.12.7/python-3.12.7-macos11.pkg
sudo installer -pkg python-3.12.7-macos11.pkg -target /
- name: Install python packages for UHD
run: |
/usr/local/bin/python3.12 -m pip install numpy mako requests Cheetah3 setuptools
- name: Install Qt
uses: jurplel/install-qt-action@v4
with:
version: '6.7.3'
host: 'mac'
arch: 'clang_64'
modules: 'qtcharts qtscxml qt5compat qtlocation qtmultimedia qtpositioning qtserialport qtspeech qtwebsockets qtwebengine qtshadertools qtwebchannel'
- name: Configure SDRangel
run: |
mkdir build && cd build
cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_QT6=ON -DCMAKE_BUILD_TYPE=Release -DDEBUG_OUTPUT=ON -DENABLE_USRP=ON -DENABLE_MIRISDR=OFF -DBUILD_SERVER=OFF -DENABLE_EXTERNAL_LIBRARIES=ON -DBUNDLE=ON -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=TRUE -DPYTHON_EXECUTABLE=/usr/local/bin/python3.12
- name: Build SDRangel on Mac
run: |
cd build
make -j3 package
- name: Get version
id: get_version
run: |
if [[ "${{github.ref_name}}" == "mac_ci" ]]; then
echo "version=$(echo ${{github.sha}} | cut -c1-7)" >> $GITHUB_OUTPUT
else
echo "version=$(echo ${{github.ref_name}} | cut -c2-)" >> $GITHUB_OUTPUT
fi
- name: Get filename
id: get_filename
run: echo "filename=$(grep CPACK_PACKAGE_FILE_NAME build/CMakeCache.txt | cut -d "=" -f2)" >> $GITHUB_OUTPUT
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: sdrangel-${{ steps.get_version.outputs.version }}-macarm64.dmg
path: ${{ github.workspace }}/build/${{ steps.get_filename.outputs.filename }}.dmg
- name: Upload release
if: startsWith(github.ref, 'refs/tags/')
uses: softprops/action-gh-release@v2
with:
files: ${{ github.workspace }}/build/${{ steps.get_filename.outputs.filename }}.dmg

View File

@ -101,7 +101,7 @@ jobs:
files: ${{ github.workspace }}/build/sdrangel-${{ steps.get_version.outputs.version }}-win64.exe
build_mac:
runs-on: macos-13
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
@ -126,10 +126,7 @@ jobs:
- name: Configure SDRangel
run: |
mkdir build && cd build
cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_QT6=ON -DCMAKE_BUILD_TYPE=Release -DARCH_OPT=nehalem -DDEBUG_OUTPUT=ON -DENABLE_CHANNELRX_DEMODDATV=OFF -DENABLE_CHANNELTX_MODDATV=OFF -DENABLE_MIRISDR=OFF -DBUILD_SERVER=OFF -DENABLE_EXTERNAL_LIBRARIES=AUTO -DBUNDLE=ON -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=TRUE -DCMAKE_PREFIX_PATH="/usr/local/opt/ffmpeg@5/"
- name: Get filename
id: get_filename
run: echo "filename=$(grep CPACK_PACKAGE_FILE_NAME build/CMakeCache.txt | cut -d "=" -f2)" >> $GITHUB_OUTPUT
cmake .. -DCMAKE_VERBOSE_MAKEFILE=ON -DENABLE_QT6=ON -DCMAKE_BUILD_TYPE=Release -DDEBUG_OUTPUT=ON -DENABLE_CHANNELRX_DEMODDATV=OFF -DENABLE_CHANNELTX_MODDATV=OFF -DENABLE_MIRISDR=OFF -DBUILD_SERVER=OFF -DENABLE_EXTERNAL_LIBRARIES=AUTO -DBUNDLE=ON -DPKG_CONFIG_USE_CMAKE_PREFIX_PATH=TRUE -DCMAKE_PREFIX_PATH="/usr/local/opt/ffmpeg@5/"
- name: Build SDRangel on Mac
run: |
cd build

View File

@ -1,14 +1,15 @@
# This CPACK_PRE_BUILD_SCRIPTS script is used to copy all required Qt and other 3rd party libraries (SDR drivers and codecs) in to the .app bundle
# It is run in a staging area (${CPACK_TEMPORARY_INSTALL_DIRECTORY}/SDRangel.app) after all targets have been installed (E.g. sdrangel exe and plugins)
# The copying of frameworks and libraries is mostly done by 'macdeployqt', however, in order for 'macdeployqt' to copy libraries built by external/CMakeLists.txt,
# we first need to add RPATHs into the libraries giving the locations of any libraries they might depend on.
# we first need to add RPATHs into the libraries giving the locations of any libraries they might depend on.
# These paths are in the variable MACOS_EXTERNAL_LIBS_FIXUP set in externals/CMakeLists.txt
# Is there an easier way to this?
# Copy executable that will be run when icon in /Applications is clicked
message ("Copying default executable to SDRangel.app/Contents/MacOS/SDRangel")
execute_process (COMMAND mkdir ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/SDRangel.app/Contents/MacOS/)
execute_process (COMMAND cp /opt/build/sdrangel/build/sdrangel ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/SDRangel.app/Contents/MacOS/SDRangel)
execute_process (COMMAND pwd)
execute_process (COMMAND cp sdrangel ${CPACK_TEMPORARY_INSTALL_DIRECTORY}/SDRangel.app/Contents/MacOS/SDRangel)
# Add RPATHS to libraries so macdeployqt can find out and copy all dependencies

View File

@ -31,15 +31,9 @@ set(SOAPYSDR_REMOTE_TAG "soapy-remote-0.5.1")
set(AIRSPY_TAG "37c768ce9997b32e7328eb48972a7fda0a1f8554")
set(HACKRF_TAG "v2022.09.1")
set(LIBXML2_TAG "v2.10.4")
set(UHD_TAG "v4.6.0.0")
if (APPLE AND (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL x86_64))
# UHD fails to load with 1.80+
set(BOOST_TAG "1.78.0")
set(BOOST_TAG2 "1_78_0")
else()
set(BOOST_TAG "1.83.0")
set(BOOST_TAG2 "1_83_0")
endif()
set(UHD_TAG "v4.7.0.0")
set(BOOST_TAG "1.86.0")
set(BOOST_TAG2 "1_86_0")
# For some external project macros
include(ExternalProject)
@ -546,7 +540,7 @@ endif (NOT FFMPEG_FOUND AND NOT USE_PRECOMPILED_LIBS)
if (NOT OpenCV_FOUND AND NOT USE_PRECOMPILED_LIBS AND ENABLE_CHANNELTX_MODATV)
ExternalProject_Add(opencv
GIT_REPOSITORY https://github.com/opencv/opencv.git
GIT_TAG 4.5.5
GIT_TAG 4.10.0
DEPENDS "${FFMPEG_DEPENDS}"
PREFIX "${EXTERNAL_BUILD_LIBRARIES}/opencv"
CMAKE_ARGS ${COMMON_CMAKE_ARGS} -DWITH_FFMPEG=ON -DCMAKE_PREFIX_PATH=${FFMPEG_INSTALL_DIR}
@ -1578,6 +1572,8 @@ if (WIN32 OR APPLE)
-DLIBUSB_LIBRARIES=${LIBUSB_LIBRARIES}
-DLIBUSB_INCLUDE_DIR=${LIBUSB_INCLUDE_DIR}
${UHD_PYTHON_ARGS}
-DPython3_FIND_FRAMEWORK=NEVER
-DENABLE_PYTHON_API=OFF
-DCMAKE_INSTALL_NAME_DIR=<INSTALL_DIR>/lib
TEST_COMMAND ""
)

View File

@ -45,14 +45,14 @@ else()
set(INSTALL_FOLDER ${INSTALL_PLUGINSSRV_DIR})
endif()
if(UHD_EXTERNAL)
add_dependencies(${TARGET_NAME} uhd)
endif()
if(NOT Qt6_FOUND)
add_library(${TARGET_NAME} ${usrpoutput_SOURCES})
else()
qt_add_plugin(${TARGET_NAME} CLASS_NAME USRPOutputPlugin ${usrpoutput_SOURCES})
endif()
if(UHD_EXTERNAL)
add_dependencies(${TARGET_NAME} uhd)
endif()
if(NOT BUILD_SHARED_LIBS)
set_property(GLOBAL APPEND PROPERTY STATIC_PLUGINS_PROPERTY ${TARGET_NAME})

View File

@ -578,8 +578,8 @@ void MainServer::changeSampleSink(int deviceSetIndex, int selectedDeviceIndex)
// wait for sample source to be set, before loading settings
auto connection = new QMetaObject::Connection();
*connection = connect(
deviceSet->m_deviceSourceEngine,
&DSPDeviceSourceEngine::sampleSet,
deviceSet->m_deviceSinkEngine,
&DSPDeviceSinkEngine::sampleSet,
this,
[=]() {
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings
@ -644,8 +644,8 @@ void MainServer::changeSampleMIMO(int deviceSetIndex, int selectedDeviceIndex)
// wait for sample source to be set, before loading settings
auto connection = new QMetaObject::Connection();
*connection = connect(
deviceSet->m_deviceSourceEngine,
&DSPDeviceSourceEngine::sampleSet,
deviceSet->m_deviceMIMOEngine,
&DSPDeviceMIMOEngine::sampleSet,
this,
[=]() {
deviceSet->m_deviceAPI->loadSamplingDeviceSettings(m_mainCore->m_settings.getWorkingPreset()); // load new API settings