diff --git a/.github/workflows/build-deb-ubuntu-20.04.yml b/.github/workflows/build-deb-ubuntu-20.04.yml deleted file mode 100644 index b5b657cf..00000000 --- a/.github/workflows/build-deb-ubuntu-20.04.yml +++ /dev/null @@ -1,59 +0,0 @@ -on: - push: - branches: [master, deb] -name: deb build for Ubuntu 20.04 -jobs: - build: - runs-on: ubuntu-20.04 - - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Install dependencies - run: sudo apt-get update && - sudo apt-get install -y - build-essential cmake git - libgtk-3-dev - libcurl4-openssl-dev libaio-dev - libjansson-dev libmatio-dev libfftw3-dev - - - name: Install libiio - run: | - wget https://github.com/analogdevicesinc/libiio/releases/download/v0.24/libiio-0.24.gc4498c2-Linux-Ubuntu-20.04.deb - echo "ab84e5374cfab7f46d5006f80d0ac1fed6b104fe2dd2f804b4dd273dadf0ae65 libiio-0.24.gc4498c2-Linux-Ubuntu-20.04.deb" | sha256sum --check - sudo apt install -y ./libiio-0.24.gc4498c2-Linux-Ubuntu-20.04.deb - - name: Build gtkdatabox - run: | - wget https://download.sourceforge.net/project/gtkdatabox/gtkdatabox-1/gtkdatabox-1.0.0.tar.gz - echo "8bee70206494a422ecfec9a88d32d914c50bb7a0c0e8fedc4512f5154aa9d3e3 gtkdatabox-1.0.0.tar.gz" | sha256sum --check - tar -xvf gtkdatabox-1.0.0.tar.gz - cd gtkdatabox-1.0.0 - ./configure - make - sudo make install - - - name: Build libad9166-iio - run: | - git -c http.sslVerify=false clone https://github.com/analogdevicesinc/libad9166-iio - mkdir libad9166-iio/build && cd $_ - cmake .. - make && sudo make install - - - name: Build libad9361-iio - run: | - git -c http.sslVerify=false clone -b v0.2 https://github.com/analogdevicesinc/libad9361-iio - mkdir libad9361-iio/build && cd $_ - cmake .. - make && sudo make install - - - name: Generate deb package - run: mkdir build && cd $_ && - cmake -DENABLE_PACKAGING=ON .. && make package - - - name: Upload deb package - uses: actions/upload-artifact@v3 - with: - name: iio-oscilloscope-Ubuntu20.04.deb - path: build/iio-oscilloscope-*-Linux.deb - if-no-files-found: error diff --git a/.github/workflows/build-deb-ubuntu-22.04.yml b/.github/workflows/build-deb-ubuntu-22.04.yml index 0112102b..87619e80 100644 --- a/.github/workflows/build-deb-ubuntu-22.04.yml +++ b/.github/workflows/build-deb-ubuntu-22.04.yml @@ -14,24 +14,10 @@ jobs: run: sudo apt-get update && sudo apt-get install -y build-essential cmake git - libcurl4-openssl-dev + libcurl4-openssl-dev libad9361-dev libaio-dev libiio-dev libgtkdatabox-dev libjansson-dev libmatio-dev libfftw3-dev - - name: Build libad9166-iio - run: | - git -c http.sslVerify=false clone https://github.com/analogdevicesinc/libad9166-iio - mkdir libad9166-iio/build && cd $_ - cmake .. - make && sudo make install - - - name: Build libad9361-iio - run: | - git -c http.sslVerify=false clone -b v0.2 https://github.com/analogdevicesinc/libad9361-iio - mkdir libad9361-iio/build && cd $_ - cmake .. - make && sudo make install - - name: Generate deb package run: mkdir build && cd $_ && cmake -DENABLE_PACKAGING=ON .. && make package diff --git a/CMakeLists.txt b/CMakeLists.txt index 73aea75f..0f719970 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -259,30 +259,6 @@ install(TARGETS osc ) install(TARGETS oscmain RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -if(ENABLE_PACKAGING) - # Ubuntu 20.04 does not have GtkDataBox 1.0.0, - # until we drop support, bundle it. - get_filename_component(GTKDATABOX_LIBRARIES_REALPATH "${GTKDATABOX_LIBDIR}/libgtkdatabox.so" REALPATH) - install( - FILES "${GTKDATABOX_LIBRARIES_REALPATH}" - DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) - # Bundle libad*-iio, so the user does not need to install those first. - if (LIBAD9361_LIBRARIES) - get_filename_component(LIBAD9361_LIBRARIES_REALPATH "${LIBAD9361_LIBRARIES}" REALPATH) - install( - FILES "${LIBAD9361_LIBRARIES_REALPATH}" - DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) - endif() - if (LIBAD9166_LIBRARIES) - get_filename_component(LIBAD9166_LIBRARIES_REALPATH "${LIBAD9166_LIBRARIES}" REALPATH) - install( - FILES "${LIBAD9166_LIBRARIES_REALPATH}" - DESTINATION ${CMAKE_INSTALL_LIBDIR} - ) - endif() -endif() # Set default CMAKE_PREFIX_PATH to CMAKE_SYSTEM_PREFIX_PATH set(CMAKE_PREFIX_PATH ${CMAKE_SYSTEM_PREFIX_PATH}) diff --git a/cmake/LinuxPackaging.cmake b/cmake/LinuxPackaging.cmake index 0f1d5fdf..9a3e20ec 100644 --- a/cmake/LinuxPackaging.cmake +++ b/cmake/LinuxPackaging.cmake @@ -4,25 +4,32 @@ set(CPACK_GENERATOR TGZ) FIND_PROGRAM(RPMBUILD_CMD rpmbuild) if (RPMBUILD_CMD) - # Manual setup of rpm requires, Fedora centric + # Check if optional dependency is included + if(LIBAD9361_LIBRARIES) + set(LIBAD9361_RPM "libad9361 >= 0.2") + endif() + if(LIBAD9166_LIBRARIES) + set(LIBAD9166_RPM "libad9166 >= 0.2") + endif() + # Manual setup of rpm requires, Fedora >= 36 centric set(CPACK_PACKAGE_RELOCATABLE OFF) set(CPACK_GENERATOR ${CPACK_GENERATOR};RPM) - set(CPACK_RPM_PACKAGE_REQUIRES "libiio >= 0.23, gtk3 >= 3.24, jansson > 2.12, matio >= 1.5.17, fftw >= 3.3.8, curl >= 7.68.0") + set(CPACK_RPM_PACKAGE_REQUIRES "libiio >= 0.23, gtk3 >= 3.24, jansson > 2.12, matio >= 1.5.17, fftw >= 3.3.8, curl >= 7.68.0, ${LIBAD9361_RPM}, ${LIBAD9166_RPM}") message(STATUS "Package dependencies (.rpm): " ${CPACK_RPM_PACKAGE_REQUIRES}) endif() FIND_PROGRAM(DEBBUILD_CMD dpkg) if (DEBBUILD_CMD) - # Manual setup of deb dependencies, Ubuntu (>= 20.04) centric - # Obtain package name corresponding to version in .pc file - set(CPACK_GENERATOR ${CPACK_GENERATOR};DEB) - if (${MATIO_VERSION} VERSION_GREATER 1.5.21 OR ${MATIO_VERSION} VERSION_EQUAL 1.5.21 ) - set(MATIO_PACKAGE "libmatio11 (>= 1.5.21)") - else() - set(MATIO_PACKAGE "libmatio9 (>= 1.5.17)") + # Check if optional dependency is included + if(LIBAD9361_LIBRARIES) + set(LIBAD9361_DEB "libad9361-0 (>= 0.2) | libad9361 (>= 0.2)") endif() + if(LIBAD9166_LIBRARIES) + set(LIBAD9166_DEB "libad9166 (>= 0.2)") + endif() + set(CPACK_GENERATOR ${CPACK_GENERATOR};DEB) - set(CPACK_DEBIAN_PACKAGE_DEPENDS "libiio0 (>= 0.19), libgtk-3-0 (>= 3.24.18), libjansson4 (> 2.12), ${MATIO_PACKAGE}, libfftw3-3 (>= 3.3.8), libcurl4 (>= 7.68.0)") + set(CPACK_DEBIAN_PACKAGE_DEPENDS "libiio0 (>= 0.23) | libiio (>= 0.23), libgtk-3-0 (>= 3.24.18), libjansson4 (> 2.12), libmatio11 (>= 1.5.21), libfftw3-3 (>= 3.3.8), libcurl4 (>= 7.68.0), ${LIBAD9361_DEB}, ${LIBAD9166_DEB}") message(STATUS "Package dependencies (.deb): " ${CPACK_DEBIAN_PACKAGE_DEPENDS}) endif()