aboutsummaryrefslogtreecommitdiffstats
path: root/host/cmake
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Add support for fedora rpm versioningmattprost2022-06-102-16/+23
| | | | | | | | | Adds cmake option for replacing dashes in the UHD Component version with underscores. This is necessary as Fedora package management is now enforcing the format <Package>-<Version>-<Release> for all rpm builds, so dashes in the UHD_VERSION from dev branches is not supported. Signed-off-by: mattprost <matt.prost@ni.com>
* cmake: Drop .deb generation via cpack in favour of better toolsMartin Braun2022-06-101-49/+18
| | | | | | Building .deb files has an entire ecosystem dedicated to it which is superior to cpack, and we don't test cpack, either. Users wanting to build .deb files should take a look at tools/debs/uhd_ubuntu_deb.py.
* cmake: Cache UHD_VERSION in all casesSteven Koo2022-06-101-2/+2
| | | | | | | This outputs the variable in the CMakeCache, so that we can scrape the version later for building package Signed-off-by: Steven Koo <steven.koo@ni.com>
* debian: Resolve lintian issuesAaron Rossetto2022-04-262-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | This PR makes a couple of minor changes to Debian packaging files to resolve errors reported by Lintian during CI and manual building of .debs after having been updated in 38fb5e262: - Remove instances of `${python3:Depends}` in the rules file, as this substitution directive cannot be used without specifying `--with python3` in the `dh` debhelper command invocation. However, the Docker containers that are spun up to build .debs as part of UHD CI do not include the Debian Python helper package necessary to use the substitution even if `--with python3` is specified. Thus, the substitution was removed and replaced with the actual names of the dependent Python packages. - Remove the `Files-Excluded` section from the copyright file. Lintian flags an error whenever a file in that section is present in the source tree (which the specified files are). The addition of this section was supposed to bring UHD's built-in Debian packaging files more in line with those used by the actual Debian package maintainer, but it is likely that the actual Debian packing process runs additional steps that reference this section and uses it to remove the specified files which we currently don't run.
* uhd: Prepare for 4.2.0.0 releaseAaron Rossetto2022-04-191-527/+529
| | | | | - Updated CHANGELOG - Updated Debian changelog
* uhd: Prepare for 4.2.0.0-rc1 releaseAaron Rossetto2022-04-082-2/+589
| | | | | | - images: Updated manifest - uhd: Updated changelog and version string - debian: Updated changelog
* debian: Update version number to 4.2.0Steven Koo2022-04-063-8/+8
|
* debian: Update control and package buildingMartin Braun2022-04-0612-66/+147
| | | | | | | | | | - Update dependencies - Add python3-uhd package - Add uhd-doc package In part, this changeset is to further align with the official Debian upstream at https://salsa.debian.org/bottoms/pkg-uhd.git, which is maintained by Maitland Bottoms.
* dpdk: Add support for DPDK 18.11 APImattprost2022-04-011-1/+1
| | | | | | | | Substituting old values to restore API breakage from DPDK 18.11 to DPDK 19. It is recommended at this point that users upgrade to more recent DPDK LTS versions, but the DPDK 18.11 API is functional with UHD. Signed-off-by: mattprost <matt.prost@ni.com>
* cmake: Remove libatomic check on macOSSteven Koo2022-02-071-1/+1
| | | | | | | This removes the libatomic check on macOS. Like MSVC, just assume that it's built in. Signed-off-by: Steven Koo <steven.koo@ni.com>
* cmake: added libatomic check for boost/lockfree/queue.hppJaroslav Škarvada2022-02-011-0/+31
| | | | | | | | | The boost/lockfree/queue.hpp requires linking with the libatomic on some platforms (e.g. s390x). Fixes #410 Signed-off-by: Jaroslav Škarvada <jskarvad@redhat.com>
* cmake: uhdboost: Fix check for UHD_BOOST_REQUIRED being setMartin Braun2022-01-261-1/+1
| | | | | | | | Previously, applying `-DUHD_BOOST_REQUIRED` to the cmake command line would do nothing. Now, it is possible to skip Boost checking, e.g., to only build the manual by calling cmake -DUHD_BOOST_REQUIRED=OFF -DENABLE_LIBUHD=OFF
* cmake: Replace distutils with CMake for version checksAaron Rossetto2022-01-141-16/+96
| | | | | | | This commit replaces the use of distutils.version.LooseVersion() with CMake's version comparison operator, which implements relational version string checking in the same manner (i.e., comparing numeric components of a version string numerically).
* uhd: update git://github.com references to httpsSteven Koo2022-01-111-1/+1
| | | | | | | GitHub is removing support for using git://. Switch to https. https://github.blog/2021-09-01-improving-git-protocol-security-github/ Signed-off-by: Steven Koo <steven.koo@ni.com>
* uhd: nsis: Remove broken shortcuts in Windows installerAaron Rossetto2021-12-161-4/+0
| | | | | | | | The Windows UHD installer binary, generated by e.g. running the PACKAGE project in the Visual Studio solution generated by CMake, creates two shortcuts to utilities that are no longer included with the installer: the USRP2 card burner and USRP-N2xx net burner. This commit removes these defunct shortcuts.
* dpdk: Upgrade to DPDK 19.11 APIAndrew Lynch2021-12-061-1/+1
| | | | Support DPDK versions 19.11 and 20.11
* cmake: Replace CMAKE_{SOURCE,BINARY}_DIR with UHD_*_DIRMartin Braun2021-09-105-32/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | See the CMake 3.8 documentation on these two variables: https://cmake.org/cmake/help/v3.8/variable/PROJECT-NAME_SOURCE_DIR.html https://cmake.org/cmake/help/v3.8/variable/CMAKE_SOURCE_DIR.html Under normal circumstances, these two are identical. For sub-projects (i.e., when building UHD as part of something else that is also a CMake project), only the former is useful. There is no discernible downside of using UHD_SOURCE_DIR over CMAKE_SOURCE_DIR. This was changed using sed: $ sed -i "s/CMAKE_SOURCE_DIR/UHD_SOURCE_DIR/g" \ `ag -l CMAKE_SOURCE_DIR **/{CMakeLists.txt,*.cmake}` $ sed -i "s/CMAKE_BINARY_DIR/UHD_BINARY_DIR/g" \ `ag -l CMAKE_BINARY_DIR **/{CMakeLists.txt,*.cmake}` At the same time, we also replace the CMake variable UHD_HOST_ROOT (used in MPM) with UHD_SOURCE_DIR. There's no reason to have two variables with the same meaning and different names, but more importantly, this means that UHD_SOURCE_DIR is defined even in those cases where MPM calls into CMake files from UHD without any additional patches. Shoutout to GitHub user marcobergamin for bringing this up.
* cmake: tests: Add build-python path to PYTHONPATHMartin Braun2021-09-081-2/+5
| | | | | | | | | | | | | | | | This is more of an expressive change than a functional change; Python seems to add this path to the PYTHONPATH anyway, at least for some systems. We neverless make this change because: - It's more explicit/expressive. When tests are run, the PYTHONPATH env variable is printed, and it now contains this path where it should be, right at the front. People reading the ctest/python.unittest output now get told explicitly which path we mean. - This guarantees that this path is added, even if Python/unittest should behave differently on other systems or versions. To clarify: When running unit tests, we want to run the Python code from build/python, not the installed version. The latter may not yet exist, and if it does, it's not the version we are editing.
* cmake: Add check for libatomic linking requirementMartin Braun2021-08-271-0/+80
| | | | | | | | | | Some archs require linking against libatomic, others don't. We add some CMake code that checks for libatomic.so requirement if: - We are not on MSVC, AND - Compiling std::atomics code would cause a linker error. We then check for the existence of libatomic.so, and fail if we can't find it.
* cmake: Fix VS names and use relative for imagesSteven Koo2021-08-041-5/+9
| | | | | | | | | | cmake has newer variables to identify specific Visual Studio version. This change updates to use those. This also changes how images files are globbed to be relative paths, which is useful if build files are moved from machine to machine. This case is possible in Azure Pipeline's CI. Signed-off-by: Steven Koo <steven.koo@ni.com>
* uhd: Update version, manifest, and changelogsAaron Rossetto2021-07-212-3/+25
| | | | | | | | | | | | | | | | | | | Recently, we released UHD v4.1.0.1, which addressed some bugs that found their way into the UHD v4.1.0.0 release. While the changes that addressed those bugs were made in the master branch, they were cherry-picked into the UHD-4.1 branch, and the v4.1.0.1 release was made from that branch. However, the version, manifest, and changelogs were updated only in the UHD-4.1 branch, not in master. The effect of that is that the current master (a.k.a. the absolute latest, perhaps unstable, use-at-your-own-risk code) branch's version, manifest, and changelogs still reflect the v4.1.0.0 release. Furthermore, the UHD documentation refers to the manifest file in the master branch as the way to get (at least) the most recent filesystem and FPGA artifacts. Not updating the manifest in master renders that documentation inaccurate. This commit updates those details in master to reflect the latest v4.1.0.1 release artifacts, and updates the version of master to 4.2.0-git.
* cmake: correctly set and unset any CMAKE_REQUIRED variablesMichael Dickens2021-07-061-0/+3
|
* cmake: fix finding PkgConfig to work robustly (without CMake warnings)Michael Dickens2021-07-062-2/+2
|
* uhd: Prepare branch for 4.1.0.0 releaseAaron Rossetto2021-06-301-0/+1
| | | | | | | | | uhd: Update CHANGELOG debian: Update changelog images: change filesystem version to v4.1 Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com> Signed-off-by: Steven Koo <steven.koo@ni.com>
* uhd: Update minimum version of dependenciesAaron Rossetto2021-06-281-1/+1
| | | | | | | | | | | The minimum version of the following dependencies have been updated for UHD 4.1: * GCC: 5.4.0 --> 6.3.0 * Clang: 3.8.0 --> 6.0.0 * Apple Clang: 600 --> 800 * Python: 3.5 --> 3.6 * Boost: 1.58 --> 1.65
* uhd: Prepare branch for 4.1.0.0-rc1 releaseAaron Rossetto2021-06-255-10/+418
| | | | | | | | | | | uhd: Update changelog for 4.1 RC images: Update manifest debian: Update changelog debian: Update control and copyright installers: automatic version handling for dsc Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com> Signed-off-by: Steven Koo <steven.koo@ni.com>
* uhd: Update versionAaron Rossetto2021-06-161-1/+1
|
* installers: resolve ubuntu linter issueSteven Koo2021-05-181-71/+87
| | | | | | The debian copyright requires the Apache 2.0 stanza for flatbuffers. Signed-off-by: Steven Koo<steven.koo@ni.com>
* uhd: enable vcpkg support on windowsSteven Koo2021-03-193-6/+48
| | | | | | | | | | | | | | | | | | | | vcpkg can be used for the Windows C++ dependencies for uhd with this commit. To use vcpkg on Windows: 1) Copy the custom triplets in host/cmake/vcpkg/ to the vcpkg/triplets/ folder. 2) Install boost and libusb for the custom triplet "vcpkg install libusb:uhd-x64-windows-static-md boost:uhd-x64-windows-static-md" 3) Call CMake with vcpkg toolchain file flags: -DVCPKG_TARGET_TRIPLET=uhd-x64-windows-static-md -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALL_DIR%/scripts/buildsystems/vcpkg.cmake -G "Visual Studio 16 2019" -A x64 Replace the -G with the installed version of Visual Studio and matching architecture. Then build normally by running vcvarsall.bat and msbuild. Signed-off-by: Steven Koo <steven.koo@ni.com>
* tests: Add lib/ to LD_LIBRARY_PATH for pytestsAaron Rossetto2021-01-221-2/+7
| | | | | | | This commit sets the LD_LIBRARY_PATH environment variable when invoking pytests to ensure that Python tests that use bindings to UHD in libpyuhd.so can link to new symbols in libuhd.so without the need to have UHD installed.
* uhd_images_downloader: Add environment variable for http authLane Kolbly2020-10-151-1/+2
| | | | | | | | | This allows the image downloader to download files from restricted sources using HTTP basic auth, specifying the credentials in the UHD_IMAGES_USER and UHD_IMAGES_PASSWORD environment variables: ``` UHD_IMAGES_USER=lane UHD_IMAGES_PASSWORD=MyS3cretPassword uhd_images_downloader.py ```
* debian: Update Python3 dependenciesmichael-west2020-10-062-3/+18
| | | | Signed-off-by: michael-west <michael.west@ettus.com>
* package: Fix Python componentsmichael-west2020-09-131-3/+4
| | | | | | Update dependencies from python to python3. Signed-off-by: michael-west <michael.west@ettus.com>
* Prepare branch for releasemichael-west2020-09-131-165/+896
| | | | | | | - Update CHANGELOG - Update debian files Signed-off-by: michael-west <michael.west@ettus.com>
* cmake: don't try to determine runtime python version when cross compilingJoerg Hofrichter2020-08-041-9/+22
| | | | | | When cross compiling, the architecture of the runtime python interpreter does not match the host architecture. Therefore, don't try to detect it and set it to the min. supported python version instead.
* cmake: find python in sysroot path firstJoerg Hofrichter2020-08-041-0/+8
| | | | | | Set CMP0094 policy to NEW to make sure Python3 is first found in the SDK's sysroot if both the sysroot and the native paths are included in the PATH variable.
* cmake: tests: Support qemu also for python based testsJoerg Hofrichter2020-08-041-6/+18
| | | | This requires python3 to be installed in the target sysroot
* cmakerc: Remove patch to CMakeRC.cmake (and move it one level up)Martin Braun2020-07-201-1/+0
| | | | | | | UHD's version of CMakeRC.cmake was patched from the upstream (see also 933eca1) to enable -fPIC for the RC targets. This can also be done outside of said file, avoiding us having to carry a patched version of CMakeRC, and using the vanilla upstream version instead.
* uhd: remove liberioRobertWalstab2020-07-201-35/+0
|
* python: Add bindings for C++ CHDR ParserSamuel O'Brien2020-07-161-0/+2
| | | | | | | | | | | | | This commit adds pybind11 glue code for the userland chdr parsing code introduced in the uhd::utils::chdr namespace. Additionally, it moves some pybind11 adapter code to a common pybind_adaptors.hpp file which originally existed in the cal_python.hpp file. This commit also adds unit tests for the python bindings using a captured wireshark trace which is located in rfnoc_packets_*.py and some handwritten packets in hardcoded_packets.py Signed-off-by: Samuel O'Brien <sam.obrien@ni.com>
* cmake: tests: Fix CMake warning introduced by QEMU unittest optionJoerg Hofrichter2020-06-261-1/+1
|
* cmake: tests: Added option to use QEMU for running unittestsJoerg Hofrichter2020-06-251-1/+4
| | | | | This is useful when cross-compiling UHD for other architectures like arm or aarch64.
* cmake: Fix warning finding libusbMartin Braun2020-06-171-2/+2
| | | | | | | | | | UHD has a custom file to find libusb. This fixes a warning coming from that file caused by the fact that we're looking for a package called LIBUSB, but the file was called FindUSB1 (i.e., we're expecting a package name of USB1). Common CMake calls were also moved to lowercase for CMake coding guidelines consistency.
* tests: Add infrastructure to run Python unit testsMartin Braun2020-06-151-0/+12
| | | | | | | | | | | | | | | | - Add UHD_ADD_PYTEST() CMake macro - Add CMake code to tests/CMakeLists.txt to auto-run all registered Python unit tests - Add a token unit test (it replicates parts of ranges_test.cpp) The way Python-based unit tests are implemented in UHD is that they can import uhd, and then operate on the module as usual. Writing unit tests in Python instead of C++ can have multiple advantages: - If they test PyBind-wrapped C++ code, they can test both the binding and the underlying C++ code at once - Writing unit tests in Python may be more concise
* Remove remaining Python 2 referencesMartin Braun2020-05-071-1/+0
| | | | | | | This changes two things in all applicable files: - Remove imports from __future__ - Change default shebangs from /usr/bin/env python to /usr/bin/env python3
* debian: Use Python3 dependenciesMartin Braun2020-04-221-11/+11
| | | | | | | This updates the Debian control file to rely on the Python3 versions of the respective dependencies. Also updates the package name to include the 4.0.0 version.
* uhd: Add quotes around test environment variablesLane Kolbly2020-04-071-1/+1
| | | | | | | On systems which have spaces in the environment variables, such as $PATH, attempting to run the generated test scripts will throw an error about a bad variable name. Adding quotes around the values prevents this error.
* debian: Rename control file for libuhd to contain 4.0.0 versionMartin Braun2020-03-181-0/+0
|
* debian: Fixes to copyright fileMartin Braun2020-03-181-389/+385
| | | | | | - FindGit.cmake is no longer part of UHD, removed from copyright list - The file list includes FPGA code, which needs to be updated to point to fpga/ instead of fpga-src/
* cmake: Add CMakeRC module and ::rc namespaceMartin Braun2020-03-182-0/+648
| | | | | | | | | | | | | | | | | | | | | | | | | | This module allows to add binary files into UHD (e.g., for cal data storage) in a platform-independent way. The upstream CMakeRC.cmake is modified in the following way to allow linkage against a shared object: ```diff # Generate the actual static library. Each source file is just a single file # with a character array compiled in containing the contents of the # corresponding resource file. add_library(${name} STATIC ${libcpp}) set_property(TARGET ${name} PROPERTY CMRC_LIBDIR "${libdir}") set_property(TARGET ${name} PROPERTY CMRC_NAMESPACE "${ARG_NAMESPACE}") target_link_libraries(${name} PUBLIC cmrc::base) set_property(TARGET ${name} PROPERTY CMRC_IS_RESOURCE_LIBRARY TRUE) + set_property(TARGET ${name} PROPERTY POSITION_INDEPENDENT_CODE ON) ``` This forces the -fPIC flag for the static object that CMakeRC generates, allowing to link it into a shared object file. The version of CMakeRC used is: a7e355290, cloned from git@github.com:vector-of-bool/cmrc.git.