name: SDRangel Mac release build on: push: branches: - mac_ci tags: - 'v*' jobs: build_mac_x64: runs-on: macos-12 steps: - uses: actions/checkout@v4 with: submodules: true fetch-depth: 0 - 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@v4 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@v4 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