Skip to content

Latest commit

 

History

History
188 lines (131 loc) · 5.34 KB

COMPILE.md

File metadata and controls

188 lines (131 loc) · 5.34 KB

Compile in Linux

On Ubuntu (20.04/22.04), the dependencies can be installed with the command:

sudo apt -y install qtbase5-dev libqt5svg5-dev libqt5websockets5-dev \
      libqt5opengl5-dev libqt5x11extras5-dev libprotoc-dev libzmq3-dev \
      liblz4-dev libzstd-dev

On Fedora:

sudo dnf install qt5-qtbase-devel qt5-qtsvg-devel qt5-websockets-devel \
      qt5-qtopendl-devel qt5-qtx11extras-devel

Clone the repository into ~/plotjuggler_ws:

git clone https://github.com/facontidavide/PlotJuggler.git ~/plotjuggler_ws/src/PlotJuggler
cd ~/plotjuggler_ws

Then compile using cmake (qmake is NOT supported):

cmake -S src/PlotJuggler -B build/PlotJuggler -DCMAKE_INSTALL_PREFIX=install
cmake --build build/PlotJuggler --config RelWithDebInfo --parallel --target install

Optional: build with Conan

If you want to use conan to manage the dependencies, follow this instructions instead.

conan install src/PlotJuggler --install-folder build/PlotJuggler \
      --build missing -pr:b=default

export CMAKE_TOOLCHAIN=$(pwd)/build/PlotJuggler/conan_toolchain.cmake

cmake -S src/PlotJuggler -B build/PlotJuggler \
      -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN  \
      -DCMAKE_INSTALL_PREFIX=install \
      -DCMAKE_POLICY_DEFAULT_CMP0091=NEW

cmake --build build/PlotJuggler --config RelWithDebInfo --parallel --target install

Deploy as an AppImage

Compile and install as described earlier.

Download (once) linuxdeploy:

wget https://github.com/linuxdeploy/linuxdeploy/releases/download/continuous/linuxdeploy-x86_64.AppImage

wget https://github.com/linuxdeploy/linuxdeploy-plugin-qt/releases/download/continuous/linuxdeploy-plugin-qt-x86_64.AppImage

chmod +x linuxdeploy*.AppImage
mkdir -p AppDir/usr/bin

Then:

cd src/PlotJuggler;export VERSION=$(git describe --abbrev=0 --tags);cd -
echo $VERSION
cp -v install/bin/* AppDir/usr/bin

./linuxdeploy-x86_64.AppImage --appdir=AppDir \
    -d ./src/PlotJuggler/PlotJuggler.desktop \
    -i ./src/PlotJuggler/plotjuggler.png \
    --plugin qt --output appimage

Compile in Mac

On Mac, the dependencies can be installed using brew with the following command:

brew install cmake qt@5 protobuf mosquitto zeromq zstd

Add CMake into your env-vars to be detected by cmake

echo "export CPPFLAGS=\"-I/opt/homebrew/opt/qt@5/include\"" >> $HOME/.zshrc
echo "export PKG_CONFIG_PATH=\"/opt/homebrew/opt/qt@5/lib/pkgconfig\"" >> $HOME/.zshrc
echo "export LDFLAGS=\"/opt/homebrew/opt/qt@5/lib\"" >> $HOME/.zshrc

If you don't want to permanently add them into your main file, you can try by just exporting locally in the current terminal with:

export CPPFLAGS="-I/opt/homebrew/opt/qt@5/include"
export PKG_CONFIG_PATH="/opt/homebrew/opt/qt@5/lib/pkgconfig"
export LDFLAGS="/opt/homebrew/opt/qt@5/lib"

Clone the repository into ~/plotjuggler_ws:

git clone https://github.com/facontidavide/PlotJuggler.git ~/plotjuggler_ws/src/PlotJuggler
cd ~/plotjuggler_ws

Then compile using cmake:

cmake -S src/PlotJuggler -B build/PlotJuggler -DCMAKE_INSTALL_PREFIX=install
cmake --build build/PlotJuggler --config RelWithDebInfo --parallel --target install

Compile in Windows

Dependencies in Windows are managed either using conan or vcpkg

The rest of this section assumes that you installed You need to install first Qt and git.

Visual studio 2019 (16), that is part of the Qt 5.15.x installation, will be used to compile PlotJuggler.

Start creating a folder called plotjuggler_ws and cloning the repo:

cd \
mkdir plotjuggler_ws
cd plotjuggler_ws
git clone https://github.com/facontidavide/PlotJuggler.git src/PlotJuggler

Build with Conan

Note: the Arrow/Parque plugin is not supported in Conan. Use vcpkg instead, if you need that specific plugin.

conan install src/PlotJuggler --install-folder build/PlotJuggler ^
      --build=missing -pr:b=default

set CMAKE_TOOLCHAIN=%cd%/build/PlotJuggler/conan_toolchain.cmake

cmake -G "Visual Studio 16" ^
      -S src/PlotJuggler -B build/PlotJuggler ^
      -DCMAKE_TOOLCHAIN_FILE=%CMAKE_TOOLCHAIN%  ^
      -DCMAKE_INSTALL_PREFIX=%cd%/install ^
      -DCMAKE_POLICY_DEFAULT_CMP0091=NEW


cmake --build build/PlotJuggler --config Release --parallel --target install

Build with vcpkg

Change the path where vcpkg.cmake can be found as needed.

set CMAKE_TOOLCHAIN=/path/vcpkg/scripts/buildsystems/vcpkg.cmake

cmake -G "Visual Studio 16" ^
      -S src/PlotJuggler -B build/PlotJuggler ^
      -DCMAKE_TOOLCHAIN_FILE=%CMAKE_TOOLCHAIN%  ^
      -DCMAKE_INSTALL_PREFIX=%cd%/install

cmake --build build/PlotJuggler --config Release --parallel --target install

Create a Windows installer

Change the Qt and QtInstallerFramework version as needed.

xcopy src\PlotJuggler\installer installer\ /Y /S /f /z
xcopy install\bin\*.* installer\io.plotjuggler.application\data /Y /S /f /z

C:\Qt\5.15.2\msvc2019_64\bin\windeployqt.exe --release ^
   installer\io.plotjuggler.application\data\plotjuggler.exe

C:\Qt\Tools\QtInstallerFramework\4.1\bin\binarycreator.exe ^
   --offline-only -c installer\config.xml -p installer ^
   PlotJuggler-Windows-installer.exe