aboutsummaryrefslogtreecommitdiffstats
path: root/host/cmake/Modules
Commit message (Collapse)AuthorAgeFilesLines
* uhd: Prepare for 4.2.0.1-rc1 releaseSteven Koo2022-07-211-1/+1
| | | | | | | | | - Updated CHANGELOG - Updated Debian changelog - Updated manifest - Updated version Signed-off-by: Steven Koo <steven.koo@ni.com>
* 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>
* uhd: Prepare for 4.2.0.0-rc1 releaseAaron Rossetto2022-04-081-2/+2
| | | | | | - images: Updated manifest - uhd: Updated changelog and version string - debian: Updated changelog
* 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: 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-211-3/+5
| | | | | | | | | | | | | | | | | | | 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: 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: Update versionAaron Rossetto2021-06-161-1/+1
|
* uhd: enable vcpkg support on windowsSteven Koo2021-03-191-6/+20
| | | | | | | | | | | | | | | | | | | | 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 ```
* package: Fix Python componentsmichael-west2020-09-131-3/+4
| | | | | | Update dependencies from python to python3. 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
* 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.
* cmake: Add CMakeRC module and ::rc namespaceMartin Braun2020-03-181-0/+644
| | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* cmake: Find DPDK via pkg-config, if availableAlex Williams2020-01-221-25/+55
| | | | | | Debian uses pkg-config without the libdpdk.so linker script. Use the pkg-config file to grab the installed libraries and determine what to link to.
* docs: Change DPDK version to 18.11 and make args use underscoresAlex Williams2019-11-261-4/+23
| | | | | Swap out hyphens for underscores in the DPDK args. Also update list of distributions with the correct DPDK version in the repos.
* Remove proto-RFNoC filesMartin Braun2019-11-261-5/+0
| | | | | | | This commit removes all files and parts of files that are used by proto-RFNoC only. uhd: Fix include CMakeLists.txt, add missing files
* cmake: Bump dependency versions for UHD 4.0.0.0Martin Braun2019-11-262-32/+4
| | | | | | | | | | | | - Boost >= 1.58 - CMake >= 3.5.1 - gcc >= 5.4.0 - Clang >= 3.8, AppleClang >= 600 - Python >= 3.5 (Py2k no longer supported) - Numpy >= 1.11 - C++14 for lib, include may now use C++11 constructs. - Because there is no more code requiring C++03 syntax, we remove the include-specific clang-format file
* cmake: Add UHD_COMPONENT variablemichael-west2019-10-151-0/+2
| | | | | | | | Added cmake variable to set the component (currently UHD or MPM). so the banner printed by the log_resource would reference the correct component. Added accessor function and appropriate calls in log.cpp. Signed-off-by: michael-west <michael.west@ettus.com>
* cmake: add UHDBoost.cmake and use it for building UHDMichael Dickens2019-10-152-1/+327
| | | | | | | | | Also install UHDBoost.cmake along with the CMake UHD find scripts, so that it can be used by external modules. Tweak the UHDConfig.cmake script so that, once installed, the new UHDBoost.cmake script is found. Note that the project using UHD must first find UHD before trying to find Boost. Also note that if the C++ standard is not set before UHDBoost is loaded, it will be set to that currently used by UHD: C++14.
* Prepare branch for upcoming UHD 3.15 releaseMartin Braun2019-10-141-2/+2
| | | | | - Update CHANGELOG - Change UHD version to 3.15.0.0 / stable
* Remove GPSd dependencyMartin Braun2019-07-241-51/+0
| | | | | GPSd was used by the E310 prior to its MPM-ification, GPSd is therefore no longer required by UHD.
* cmake: quote the @UHD_VERSION@ replacement to allow any stringMichael Dickens2019-07-241-1/+1
|
* cmake: UHDLog: Use STRING over FILE for the log fileMichael Dickens2019-07-241-1/+1
| | | | | This is because FILE is not actually a type, and we don't care about an existing file either. It's just a setting for the build.
* cmake: Remove ENABLE_PYTHON3 flag and simplify Python detectionMartin Braun2019-05-241-32/+148
| | | | | | - Makes use of more modern find_package(Python2/3) if available - Moves almost all Python-related code to UHDPython.cmake - ENABLE_PYTHON3 is no longer necessary
* cmake: tests: Add macro for non-API based unit testsMartin Braun2019-05-221-0/+1
| | | | | | All unit tests which require extra sources (i.e., can't just interact with the UHD API) have been manually added to the CMakeLists.txt in a clumsy fashion. This macro cleans that up a little.