- 
                Notifications
    
You must be signed in to change notification settings  - Fork 50
 
BuildGuide
Build guide table of contents
The main Pothos project really only requires CMake and a compiler. Additional components require additional dependencies. If those dependencies are not available, the component does not build.
- CMake
 - C++11 compiler
 - python development files for python bindings
- and numpy as a runtime requirement
 
 - qt5 development files for pothos-gui
 - portaudio for audio support
 - graphviz for topology debug view
 - SoapySDR for SDR device support
 
Recommended apt-get install instructions for Ubuntu:
sudo apt-get install \
    libnuma-dev cmake g++ \
    libpython-dev python-numpy \
    qtbase5-dev libqt5svg5-dev libqt5opengl5-dev libqwt-qt5-dev \
    portaudio19-dev libjack-jackd2-dev \
    graphviz
Save some time: Even if you are building Pothos from source, you may still want to install some of the build dependencies from our PPA:
sudo add-apt-repository -y ppa:pothosware/support
sudo add-apt-repository -y ppa:pothosware/framework
sudo apt-get update
sudo apt-get install \
    libpoco-dev \
    libspuce-dev \
    nlohmann-json-dev \ #nlohmann-json3-dev on 20.04 lts
    libmuparserx-dev
#pre-packaged Soapy SDR development files
sudo add-apt-repository -y ppa:myriadrf/drivers
sudo apt-get update
sudo apt-get install libsoapysdr-dev
Some packages are optional based on required features:
sudo dnf -y install cmake g++ numactl-devel \
    python3 python3-numpy \
    qt5-qtbase-devel qt5-qtsvg-devel qwt-qt5-devel \
    portaudio-devel-19 jack-audio-connection-kit-devel graphviz
- CMake - http://www.cmake.org/cmake/resources/software.html
 - Visual studio 2013 or later
 
Optional dependencies based on your needs:
- Python (2.7 and up) - https://www.python.org/downloads/windows/
 - Numpy (must match python version) - http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy
 - JDK - http://www.oracle.com/technetwork/java/javase/downloads/index.html
 - QT5 (must match MSVC version) - http://qt-project.org/downloads
 
Install with Homebrew
Step 1) Install Xcode Command Line Tools: https://railsapps.github.io/xcode-command-line-tools.html
Step 2) Install Pothos, various toolkits, and dependencies with a few simple commands using the Pothos Homebrew tap.
Install with Macports
sudo port install Pothos
First time repository clone from git
#git clone with recursive submodule checkout git clone --recursive https://github.com/pothosware/PothosCore.git
Update from an existing checkout
cd PothosCore #update to latest master branch git pull origin master #update submodules to latest tracking branch git submodule update --init --recursive --remote
mkdir build cd build cmake .. make -j4 sudo make install sudo ldconfig #needed on debian systems PothosUtil --self-tests PothosFlow #launches GUI designer
After configuring with CMake open a Visual studio development terminal and run:
cmake --build my_build_dir --config Release cmake --build my_build_dir --config Release --target install
- add C:\Program Files\Pothos to the %PATH%
 - open cmd and run PothosUtil.exe --self-tests
 - open cmd and run PothosFlow.exe
 
The Pothos library needs to know its installation path. The library is compiled with the CMAKE_INSTALL_PREFIX as the default search path for modules and library resources. However, if the library is installed to a different location other than the one it was configured with, the POTHOS_ROOT environment variable can be set to reflect the new installation path.
cmake .. -DCMAKE_BUILD_TYPE=Debug
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/Pothos
- Project overview
 - Getting started
 - FAQ
 - Video screencasts
 - Demo applications
 - Features summary
 - Versioned releases
 - Miscellaneous links
 
- Help and support
 - Pothos users' group
 - Twitter @pothosware
 - IRC chat #pothos
 - Slack workspace
 - Contract services
 - Developer blog
 - Contributing
 - Donate
 
- Build guide
 - GUI Tutorial
 - SDR Tutorial
 - Filter Tutorial
 - Doxygen docs
 - PothosUtil Guide
 - Blocks coding guide
 - Scheduler explained
 - Remote control guide
 - Extending serialization
 
