aboutsummaryrefslogtreecommitdiffstats
path: root/cmake (follow)
Commit message (Collapse)AuthorAgeFilesLines
* cmake: replace deprecated distutilsVolker Schroer2021-12-201-5/+8
| | | | | | | | | | | * gnuradio: replace deprecated distutils Check if python packaging is available Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com> * Add packaging requirement Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* cmake: Maintain compiler settings at one point. Volker Schroer2021-12-102-0/+123
| | | | | | * cmake: Maintain compiler settings at one point. Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* cmake: Remove warnings from GrTest.cmakeRon Economos2021-12-031-3/+3
| | | | Signed-off-by: Ron Economos <w6rz@comcast.net>
* cmake: change how test files are build when cross compilingPhilip Balister2021-12-031-7/+11
| | | | | | | | | | | | | | | | | | | | * When cross compiling gnuradio, change how the test files are built. Normally, the gnuradio QA code expects to run in the build tree. For the cross compilng case, we cannot run the QA code during the build process. The changes here allow the creation of an additional package that can be installed on a target that will run the QA code against the installed libraries. Major changes are not using full paths to test files (since they include paths that only exist on the build machine) and not setting environment variables in the shell files to force the QA code to use code in the build tree. This patch disables the C++ only tests, these need some work and then they can be added back for the cross compile case. Signed-off-by: Philip Balister <philip@balister.org>
* modtool: move OOTs equal to components for 3.10 mormj2021-11-241-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * modtool: move OOTs equal to components for 3.10 Signed-off-by: Josh Morman <jmorman@gnuradio.org> * pybind: update some python dir references Signed-off-by: Josh Morman <jmorman@gnuradio.org> * cmake: have pybind address the correct header Signed-off-by: Josh Morman <jmorman@gnuradio.org> * runtime: extend the python search path allow OOT modules to be installed in other places in PYTHONPATH that have a gnuradio directory Signed-off-by: Josh Morman <jmorman@gnuradio.org> * modtool: update python paths for rm Signed-off-by: Josh Morman <jmorman@gnuradio.org> * modtool: minor fixes for new dir structure Signed-off-by: Josh Morman <jmorman@gnuradio.org> * modtool: update the installed cmake targets Signed-off-by: Josh Morman <jmorman@gnuradio.org> * modtool: add include(CMakePackageConfigHelpers) Signed-off-by: Josh Morman <jmorman@gnuradio.org> * modtool: test_modules dir under gnuradio Signed-off-by: Josh Morman <jmorman@gnuradio.org>
* logging core: replace log4cpp by spdlogMarcus Müller2021-11-192-63/+1
| | | | | | | | also: enable formerly disabled qa_logger tests This replaces log4cpp with spdlog. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* modtool,cmake: make module dir for testsChristoph Koehler2021-11-171-0/+4
| | | | | | | | Creates a python module in the build tree for tests to import. Addresses #3999 and #4825 Signed-off-by: Christoph Koehler <christoph@zerodeviation.net>
* cmake: handle optional components in `find_package`Christoph Koehler2021-11-111-2/+6
| | | | Signed-off-by: Christoph Koehler <christoph@zerodeviation.net>
* cmake: Fix cmake failure with unset VERSION_PATCH.Ryan Volz2021-10-271-6/+11
| | | | | | | | | | | | | | After the recent change to use `string(REGEX REPLACE ...)` to ensure that only numeric values are used for RC_*_VERSION, an unset VERSION_PATCH now results in a cmake failure when it didn't previously. While we should expect all 4 version fields to be set (except when one of the values is "git"), we should also avoid failing here when it worked before. At least one OOT (gr-satellites) doesn't set the VERSION_PATCH field for releases, so this fixes the build in that case without requiring OOT changes. Now an unset VERSION_PATCH defaults to "0". Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* cmake: reliably determine python prefixschneider2021-10-131-16/+22
| | | | Signed-off-by: schneider <schneider@blinkenlichts.net>
* cmake: Use preferred method to find PkgConfig.Ron Economos2021-09-1210-30/+10
| | | | Signed-off-by: Ron Economos <w6rz@comcast.net>
* cmake: Fix finding libunwindPavon2021-07-201-1/+1
| | | | | | | | | | The libfind_process macro expects <lib>_PROCESS_INCLUDES to be set to the names of variables containing the include paths, not the include paths themselves. This was causing find_package(libunwind) to always fail, even when the necessary files were correctly found by find_path and find_library. Signed-off-by: Pavon <pavon@protonmail.com>
* pybind: add precompilation of pybind headers to pybind targetsMarcus Müller2021-07-191-0/+16
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* cmake: Pass extra arguments to GR_PYTHON_INSTALL to install command.Ryan Volz2021-06-251-0/+3
| | | | | | | GRC already does a few GR_PYTHON_INSTALLs with extra FILES_MATCHING REGEX arguments, so this will actually pass these through. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* cmake: Remove absolute paths and private links from exported targets.Ryan Volz2021-06-253-12/+40
| | | | | | | | | | | | | | | | | | | | This transitions to using Python::NumPy, pybind11::pybind11, and libunwind::libunwind targets for building with the include directories/libraries of NumPy, pybind11, and libunwind. The Python::NumPy target matches what is available with the FindPython module in CMake 3.14+ (and can be transitioned to such when the minimum CMake version is past that). These changes have the effect of cleaning up the include_directory paths added to the gnuradio-runtime target so that no absolute paths are used, which is helpful for relocatable installations (e.g. conda). Part of this change involves moving some link targets to PRIVATE since they are not actually part of the public interface. In the case of the python bindings, these are not exported and have no public interface for consumption by other C++ libraries, so the switch from PUBLIC to PRIVATE has no practical effect but could still help avoid future confusion. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* cmake: Ensure that RC_*_VERSION are numeric.Ryan Volz2021-06-161-2/+3
| | | | | | Non-numeric values (such as "0-rc1") cause build errors. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* cmake: lowercase pkg-config module requires lowercase pybind11_INCLUDE_DIRMarcus Müller2021-06-091-3/+3
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* Fix wrong hint for include dirVolker Schroer2021-06-041-1/+1
| | | | Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* Update GnuradioConfig.cmake.inVolker Schroer2021-06-041-0/+1
| | | | | | If gr-iio is part of gnuradio, the module should be mentioned here. Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* gr-iio: cmake: Standardize Find*.cmake modules and use targets.Ryan Volz2021-06-044-104/+198
| | | | | | | | | | | | | | | | | This standardizes the CMake Find module names for libiio and libad9361 to use the pkg-config names and what the projects use internally as their CMake "project" names. The CMake variables that are set in the Find modules are also changed to match, per CMake convention. This also adds and uses targets for libiio::iio and libad9361::ad9361, removing the need for extra steps like setting a local include directory for libiio on the gnuradio-iio target (PR #4465). I also added pkg-config checks for added search breadth and headed off Windows problems by adding the not-searched "libiio" and "libad9361" library names that are used there. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* feature: gr-iioAdam Horden2021-06-042-0/+104
| | | | | | Co-authored-by: Edward Kigwana <ekigwana@scires.com> Co-authored-by: Travis Collins <travis.collins@analog.com> Signed-off-by: Adam Horden <adam.horden@horden.engineering>
* runtime: ctrlport: cmake: Fix thrift dependency for OOTs.Ryan Volz2021-06-011-3/+3
| | | | | | | | | | | | | | | | | | | First, this moves find_package(THRIFT) up to the gnuradio-runtime CMakeLists.txt so that cache variables no longer have to be used to mark the found components. This fixes an issue where the thrift-specific headers were not installed even when thrift was enabled, because on first run the detection was occurring AFTER the runtime include CMakeLists.txt was evaluated. See further discussion in #2734, which solved one issue related to this setup. Further, even with thrift enabled, the thrift headers are not required for OOTs to build against gnuradio-runtime. OOTs would need to take special action to use those headers, in which case they should detect/enable thrift on their own. Thus, this makes the change to not add thrift as an extra dependency for OOTs and switches linking of Thrift::thrift from PUBLIC to PRIVATE. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* cmake: Uniformly use HINTS and PATH_SUFFIXES in find scripts.Ryan Volz2021-06-016-26/+30
| | | | | | | | Where appropriate, switch to using the HINTS and PATH_SUFFIXES options in find_* commands in the CMake find modules. This will more robustly find the components on Windows and non-standard systems. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* cmake: Fix finding Thrift when it is built with MSVC.Ryan Volz2021-06-011-1/+1
| | | | | | | Default CMake build for thrift with MSVC calls the library "thriftmd" or "thriftmt" depending on if the build is done with /MD or /MT flags. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* soapy: add module gr-soapyJeff Long2021-05-031-0/+1
| | | | Signed-off-by: Jeff Long <willcode4@gmail.com>
* cmake: Fix codec2 and MPIR find modules for Windows (conda).Ryan Volz2021-04-172-6/+6
| | | | Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* CMake: Look for MPIR only when no GMP is found, be verboseMarcus Müller2021-03-201-1/+4
| | | | | | | | | | | This seems to be a common confusion, so let's alleviate the confusion by letting users know what CMake does and why failing to find GMP is not a problem when MPIR is present. Since we preferred GMP over MPIR anyways, only check for MPIR if GMP detection fails. Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* gr-pdu: initial commit with the PDU moduleJacob Gilbert2021-03-181-0/+1
| | | | | | | There is only one simple block in here for now, and there are probably some doxygen issues but it builds and tests properly. Signed-off-by: Jacob Gilbert <jacob.gilbert@protonmail.com>
* Replace boost::filesystem with std::filesystemZackery Spytz2021-03-132-2/+0
| | | | Signed-off-by: Zackery Spytz <zspytz@gmail.com>
* cmake: remove custom FindGSL moduleJosh Morman2021-03-041-168/+0
| | | | | | | | | | The in-tree FindGSL.cmake module differs from the standard cmake FindGSL in the target names that are output. (gsl::gsl vs GSL::gsl). This makes linking an OOT to something that links to gsl cause issues and requires copying in FindGSL.cmake into the OOT. Since CMake 3.8 (current project minimum) installs FindGSL, use that instead Signed-off-by: Josh Morman <jmorman@perspectalabs.com>
* MSVC: get rid of unused workaround headersMarcus Müller2021-02-233-64/+4
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* removed ssize_t, which is not standard C, and we're a C++ projectMarcus Müller2021-02-231-6/+0
| | | | | | Co-authored-by: Josh Morman <jmorman@perspectalabs.com> Signed-off-by: Josh Morman <jmorman@perspectalabs.com> Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* cmake: Thrift min version is set at top levelMartin Braun2021-02-181-1/+2
| | | | | | | - Modifies top-level CMake to set the min Thrift version - Modifies FindThrift.cmake to use a version argument Signed-off-by: Martin Braun <martin@gnuradio.org>
* FindUHD: Fix find_package_handle_standard_args warningVolker Schroer2021-02-111-1/+3
| | | | Signed-off-by: Volker Schroer <3470424+dl1ksv@users.noreply.github.com>
* cmake: removes cmake_prefix_path from hints list in FindQWT.cmakegnieboer2021-02-081-2/+2
| | | | Signed-off-by: gnieboer <gnieboer@corpcomm.net>
* cmake: python: Fix linking when runtime py interpreter != build time.Ryan Volz2021-01-142-9/+33
| | | | | | | | | | | | | | | | | | | | | | | This fixes a segmentation fault with the Pybind11 bindings when trying to load any Python module on OSX with a different interpreter than was used at build time (relevant to at least conda and homebrew). This fix was already in place for the prior Swig bindings, but the Pybind11 changes do not incorporate it since they link with ${PYTHON_LIBRARIES} instead of the (fixed) Python::Python target. For clearer separation and to adopt the approach used by the new-ish (3.12) builtin CMake FindPython module, this commit creates a separate Python::Module target to be used when creating a Python extension module (which includes "-undefined" and "dynamic_lookup" for macOS instead of linking directly to the Python library). The Python::Python target that does link to the Python library is still necessary for use as a PRIVATE target (e.g. for runtime and qtgui). For future reference and a general description of best practices for linking Python extension modules, see https://blog.tim-smith.us/2015/09/python-extension-modules-os-x. Signed-off-by: Ryan Volz <ryan.volz@gmail.com>
* runtime: Add terminate handlingPaul Wicks2020-12-191-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | This consists of the following changes: 1. Add a top_block parameter to control exception handling This restores past behavior where the scheduler catches exceptions raised in block threads, allowing flowgraphs to continue running after the failure of an individual block. It also adds optional new behavior, selected by setting catch_exceptions=False to the top block, which causes exceptions to not be caught. In this mode of operation, a std::terminate handler can be installed to print a stack trace before the flowgraph exits. 2. Add terminate_handler to top_block_impl This adds a terminate_handler function that prints information about any uncaught exceptions and also attempts to print a backtrace for said exception after which it calls std::abort. The backtrace is printed via libunwind, which is a new optional dependency. If libunwind is not found/installed, then the terminate handler will still print information about the exception and then exit. Co-Authored-By: Scott Torborg <storborg@gmail.com>
* RPC fixes to allow using Thrift-0.13A. Maitland Bottoms2020-12-191-1/+13
| | | | | | | Adds ability for master to build with newer Thrift versions by checking availability of thrift include files. (Also spelling fix: Thift -> Thrift) And fix up logging for rpcserver_thrift class.
* Bump the C++ standard version to C++14Marcus Müller2020-12-171-2/+2
| | | | Signed-off-by: Marcus Müller <mmueller@gnuradio.org>
* Do not disable boost, if only the unit_test_framework is missingVolker Schroer2020-12-031-5/+2
|
* docs: use MathJax for HTML documentationjapm482020-10-291-0/+60
| | | | | | | | | | | | | | Fixes #2707. A full LaTeX installation is no longer required for generating the HTML docs. Also adds some nice-to-have functionalities accessible via right-click context menu. Details: - SVG backend selected by default. - MathJax recommends not (ab)using their CDN, so this adds a local dependency. - Some spurious doxygen warnings were also removed.
* cmake: manual override to ignore pybind hash checkingmormj2020-10-281-1/+3
| | | | | | | | | | | | | | | | | | | | This permits an OOT to override the hash checking putting a 0 for BINDTOOL_HEADER_FILE_HASH will ignore the hash checking. This would: 1) Not be the default behavior 2) only for OOTs 3) Use at your own risk /***********************************************************************************/ /* This file is automatically generated using bindtool and can be manually edited */ /* The following lines can be configured to regenerate this file during cmake */ /* If manual edits are made, the following tags should be modified accordingly. */ /* BINDTOOL_GEN_AUTOMATIC(0) */ /* BINDTOOL_USE_PYGCCXML(0) */ /* BINDTOOL_HEADER_FILE(foo.h) */ /* BINDTOOL_HEADER_FILE_HASH(0) */ /***********************************************************************************/
* Make additional includes and defines available in the bind processVolker Schroer2020-10-281-2/+5
|
* Remove hardcoded GR_PYTHON_DIRelms2020-10-201-1/+0
| | | | | GrPython.cmake now sets the default correctly thanks to #2939 Closes #3729
* cmake: Fix pybind11 compiler definitions with MSVC.Ryan Volz2020-10-201-3/+15
| | | | | -Wall is not set for MSVC, and -Wno-unused-variable doesn't exist, so put it behind an if statement.
* cmake: pybind: Use "${PYTHON_EXECUTABLE}" instead of "python3".Ryan Volz2020-10-051-14/+14
| | | | | | This fixes all of these commands on Windows and wherever "python3" is not available. The CMake-found PYTHON_EXECUTABLE will always work or error out earlier if python is not found.
* cmake: Remove "find_package_handle_standard_args" warnings.Ron Economos2020-10-0110-13/+33
|
* cmake: Remove Policy CMP0075 CMake warning.Ron Economos2020-10-011-0/+1
|
* gr-blocks: More graceful error handling of missing sndfile dependency.Ron Economos2020-09-202-2/+5
|
* gr-blocks: Transition the WAV sink and source blocks to libsndfile.Ron Economos2020-09-011-0/+34
| | | | Compressed input and output with FLAC and Ogg Vorbis now supported.