From dd6bfec609aad75d54e67d403b473a91f55aa3f8 Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Thu, 7 Apr 2022 10:48:37 +0200 Subject: [PATCH] remove e57 lib from linux deploy --- scripts/Linux/0_setup_env_ubuntu.sh | 3 +- scripts/Linux/2_deploy_and_appimage.sh | 6 +--- scripts/Linux/README.md | 47 ++++++++++++++++++++++---- 3 files changed, 44 insertions(+), 12 deletions(-) diff --git a/scripts/Linux/0_setup_env_ubuntu.sh b/scripts/Linux/0_setup_env_ubuntu.sh index c0c29b615..a5b590df5 100644 --- a/scripts/Linux/0_setup_env_ubuntu.sh +++ b/scripts/Linux/0_setup_env_ubuntu.sh @@ -36,9 +36,10 @@ else echo "=== jumping installation of qt packages..." fi -echo "=== installing gmp, mpfr, patchelf and cmake..." +echo "=== installing cmake, patchelf, gmp, mpfr and xcerces-c..." sudo apt-get install -y cmake patchelf libgmp-dev libmpfr-dev libxerces-c-dev +# possibility to use always system libraries starting from ubuntu 20.04, since cgal is header only if [ "$DOWNLOAD_CGAL_BOOST_SRC" = false ] ; then echo "=== installing cgal and boost..." sudo apt-get install -y libcgal-dev libboost-all-dev diff --git a/scripts/Linux/2_deploy_and_appimage.sh b/scripts/Linux/2_deploy_and_appimage.sh index de588e4d4..ae926848f 100644 --- a/scripts/Linux/2_deploy_and_appimage.sh +++ b/scripts/Linux/2_deploy_and_appimage.sh @@ -2,9 +2,6 @@ # This is a script shell for deploying a meshlab-portable folder. # Requires a properly built MeshLab (see 1_build.sh). # -# This script can be run only in the oldest supported linux distro -# due to linuxdeployqt tool choice (see https://github.com/probonopd/linuxdeployqt/issues/340). -# # Without given arguments, the folder that will be deployed is meshlab/src/install, which # should be the path where MeshLab has been installed (default output of 1_build.sh). # @@ -44,8 +41,7 @@ chmod +x $INSTALL_PATH/usr/bin/meshlab export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTALL_PATH/usr/lib/meshlab $SCRIPTS_PATH/resources/linuxdeploy --appdir=$INSTALL_PATH \ - --plugin qt --output appimage \ - --library=$INSTALL_PATH/usr/lib/meshlab/plugins/libio_e57.so + --plugin qt --output appimage #get version IFS=' ' #space delimiter diff --git a/scripts/Linux/README.md b/scripts/Linux/README.md index eefea5131..50306c770 100644 --- a/scripts/Linux/README.md +++ b/scripts/Linux/README.md @@ -1,8 +1,21 @@ # Linux Scripts -This folder contains a series of scripts to build and deploy MeshLab under a Linux environment (tested on Ubuntu 16.04, 18.04 and 20.04). +This folder contains a series of scripts to build and deploy MeshLab under a Linux environment (tested on Ubuntu 18.04, 20.04 and 22.04). -* `0_setup_env_ubuntu.sh`: this script installs all the required dependencies that are necessary to build MeshLab in an Ubuntu distro (tested in 18.04 and 20.04). If you never installed Qt and other libraries, you should run it before any other script; +## Note about Qt + +Old versions of Ubuntu (< than 22.04) are shipped with old versions of Qt, but MeshLab requires Qt 5.15. +Therefore, you must install manually Qt separatelly in your system. You can then given the path of the Qt installation +directory to the various scripts. +You can check an example of this scenario in the examples section. + +## Scripts + +* `0_setup_env_ubuntu.sh`: this script installs all the required dependencies that are necessary to build MeshLab in an Ubuntu distro (tested in 18.04, 20.04 and 22.04). If you never installed Qt and other libraries, you should run it before any other script; + Arguments accepted by this script are the following: + * `--dont_install_qt`: does not install qt libraries. You should use this option if you are running a version of ubuntu older than 22.04, and install then manually Qt. + * `--dowload_cgal_and_boost_src`: downloads sources of cgal and boost libraries instead of using the system packages. It may be useful if you are running a version of ubuntu older than 20.04 (before this version, CGAL was not header only). + * `1_build.sh`: this script builds MeshLab in a Linux environment: * it requires a properly set Qt environment (see `0_setup_env_ubuntu.sh`); * takes as arguments: @@ -10,7 +23,7 @@ This folder contains a series of scripts to build and deploy MeshLab under a Lin * the install directory (default: `src/install`): `--install_path=path/to/install` * the number of cores used to build MeshLab (default: `-j4`)` * the possibility to build MeshLab with double precision scalar: `--double_precision` - * optionally, the directory of the custom Qt directory: `--qt_dir=path/to/qt` + * optionally, the path of the custom Qt directory: `--qt_dir=path/to/qt` * `2_deploy_and_appimage.sh`: this script makes the given path a portable version of MeshLab and creates also an [AppImage](https://appimage.org/) of it. Takes as arguments: * the path where the output install path of the `1_build.sh` script is placed (default: `src/install`): `--install_path=path/to/install` * optionally, the directory of the custom Qt directory: `--qt_dir=path/to/qt` @@ -24,13 +37,35 @@ Building MeshLab on a clean Linux environment (build placed in `meshlab/src/buil bash meshlab/scripts/Linux/0_setup_env_ubuntu.sh bash meshlab/scripts/Linux/1_build.sh -Building and generating AppImage on a clean Linux environment: +Building and generating AppImage MeshLab on an old Ubuntu version with Qt installed in the path `/opt/Qt`: + +* build directory: `meshlab/src/build` +* AppDir/portable version: `meshlab/src/install` +* AppImage path: `./` + +``` +git clone --recursive https://github.com/cnr-isti-vclab/meshlab +bash meshlab/scripts/Linux/0_setup_env_ubuntu.sh --dont_install_qt +bash meshlab/scripts/Linux/1_build.sh --qt_dir=/opt/Qt/5.15.2/gcc_64 +bash meshlab/scripts/Linux/2_deploy_and_appimage.sh --qt_dir=/opt/Qt/5.15.2/gcc_64 +``` + +Or, alternatively: + +``` +git clone --recursive https://github.com/cnr-isti-vclab/meshlab +bash meshlab/scripts/Linux/0_setup_env_ubuntu.sh --dont_install_qt +bash meshlab/scripts/Linux/make_it.sh --qt_dir=/opt/Qt/5.15.2/gcc_64 +``` + +Building and generating AppImage on a clean Linux environment, using 16 cores and custom directories: + * build directory: `./meshlab-build` -* install directory: `./meshlab-install` +* AppDir/portable version: `./meshlab-install` * AppImage path: `./` ``` git clone --recursive https://github.com/cnr-isti-vclab/meshlab bash meshlab/scripts/Linux/0_setup_env_ubuntu.sh -bash meshlab/scripts/Linux/make_it.sh --build_path="./meshlab-build" --install_path="./meshlab-install" +bash meshlab/scripts/Linux/make_it.sh --build_path="./meshlab-build" --install_path="./meshlab-install" -j16 ```