diff --git a/README.md b/README.md index 430100168..d180986c8 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ MeshLab requires [Qt](https://www.qt.io/) >= 5.9, with `script` and `xmlpatterns After setting up the Qt environment: git clone --recursive https://github.com/cnr-isti-vclab/meshlab - cd src + cd meshlab/src qmake make diff --git a/distrib/README.md b/distrib/README.md index e69de29bb..6c9b48c5a 100644 --- a/distrib/README.md +++ b/distrib/README.md @@ -0,0 +1,8 @@ +# distrib folder + +The distrib folder contains a set of pre-built libraries, plugins, shaders and textures that MeshLab needs to properly run. + +Running `qmake && make` from the `src` folder of the repo, MeshLab binaries, plugins and libraries will be placed automatically in this folder. +If instead a shadow build is set, the `distrib` folder will be automatically copied inside the selected build directory, and it will contain also binaries, plugins and libraries. + +After building MeshLab, the `distrib` directory will **not** contain a portable version of MeshLab, since it won't contain all the Qt's libraries needed by MeshLab. In order to deploy MeshLab, see the `install` directory. \ No newline at end of file diff --git a/install/README.md b/install/README.md index d08232a39..e1371defd 100644 --- a/install/README.md +++ b/install/README.md @@ -1,7 +1,14 @@ -Windows: +# install folder +**Work in Progress** -MacOS -After a full rebuild of meshlab_full.pro run the macinstall_v2016.sh script. It generate a relocable app folder. To build the dmg, install appdmg and use the following command line: +This folder contains a series of platform-dependent scripts to build and deploy meshlab. -appdmg meshlab_dmg.json ../distrib/MeshLab2016.12.dmg \ No newline at end of file +Every platform folder contains: + +* `$platform$-build.[sh/ps1]`: a script that builds MeshLab. Requires a Qt environment properly set, with `qmake` accessible. The build will be placed inside the directory passed as an argument, or in the `distrib` folder if arguments were not provided. +* `$platform$-deploy.[sh/ps1]`: a script that deploys MeshLab, making sure that the folder will be a self-contained MeshLab, without Qt library dependencies. Requires a properly built MeshLab in the directory passed as an argument, or in the `distrib` folder if arguments were not provided. +* `$platform$-install.[sh/ps1]`: a script that computes a self-contained package/installer of MeshLab. Requires a properly deployed MeshLab in the directory passed as an argument, or in the `distrib` folder if arguments were not provided. The result will be saved in the same directory. +* `$platform$-make_it.[sh/ps1]`: a script that computes all the three previous scripts: starting from the source code, it will produce a self-contained package/installer of MeshLab. + +See in each platform subfolder if there are some other platform-dependent requirements. \ No newline at end of file diff --git a/install/build_allinc_src_archive.sh b/install/build_allinc_src_archive.sh deleted file mode 100644 index d9172220d..000000000 --- a/install/build_allinc_src_archive.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -# this is a script shell for building a tar archive of all the sources needed to build a running version of the meshlab. -# it should be run in the directory containing the sf meshlab and code directories. -# so your command line should be something like: source meshlab/src/install/build_src_archive.sh -# when the script ends you should have a tgz with all the needed sources -# -cp meshlab/src/install/building_meshlab.txt ./how_to_compile.txt -find meshlab vcglib ./how_to_compile.txt | egrep -v -e SVN -e /ui_ -e build -e /moc_ -e /php -e meshlabv11.pro -e /qrc_ -e /test/ -e MeshLabBundle -e docs/ -e /web/ -e\# | egrep -e [.]cpp$ -e [.]c$ -e [.]h$ -e [.]tpp$ -e [.]pro$ -e [.]pri$ -e [.]ui$ -e [.]png$ -e [.]rc$ -e [.]qrc$ -e [.]vert$ -e [.]frag$ -e [.]rfx$ -e [.]glsl$ -e [.]gdp$ -e [.]txt$ -e [.]vs$ -e [.]fs$ -e [.]rendertemplate$ -e.xsd$ -e.js$ -e [.]icns$ -e [.]xml$ -e Qt -e images/100mesh.html -e images/eye.ico -e images/facebook.gif -e [.]inl$ -e eigenlib/* > list.txt -echo "meshlab/src/fgt/edit_topo/edit_topomeshbuilder.h" >> list.txt -# -tar -c -v -z -T ./list.txt -f MeshLabSrc_AllInc_v132_`date +"%Y%m%d"`.tgz -eg diff --git a/install/build_src_archive.sh b/install/build_src_archive.sh deleted file mode 100644 index 5392fb70f..000000000 --- a/install/build_src_archive.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh - -DATE=$(date --rfc-3339=date) -MLABURL=https://meshlab.svn.sourceforge.net/svnroot/meshlab/trunk -VCGURL=https://vcg.svn.sourceforge.net/svnroot/vcg/trunk -MLABREV=$(svn info ${MLABURL} | sed -n 's/^Revision:[ ]*\([0-9]*\)/\1/p') -TMP=/tmp -MLABARCH=meshlab-snapshot-svn${MLABREV} -LIBARCH=meshlab-externals-svn${MLABREV} -MLABDIR=$1 -LIBDIR=$LIBARCH - -CURDIR=$(pwd) - -mkdir -p $TMP/$MLABDIR -svn export --force $MLABURL $TMP/$MLABDIR -svn export --force $VCGURL $TMP/$MLABDIR - -cd $TMP/$MLABDIR - -mv meshlab/src/external $TMP/$LIBDIR/meshlab/src -rm -rf CVSROOT meshlab/web meshlab/src/old meshlab/src/sample meshlab/src/meshlabplugins/edit_phototexturing meshlab/src/meshlab/textures meshlab/src/meshlab/plugins/U3D_OSX meshlab/src/meshlab/plugins/U3D_W32 meshlab/src/external -mkdir -p meshlab/src/meshlab/plugins/U3D_W32 -mkdir -p meshlab/src/meshlab/plugins/U3D_OSX -mkdir -p meshlab/src/external -mkdir -p $TMP/$LIBDIR/meshlab/src - -rm -rf vcglib/docs -rm -rf vcglib/apps/gcc_make vcglib/apps/msvc vcglib/apps/test -mkdir -p $TMP/$LIBDIR/vcglib/vcg -mv vcglib/vcg/Eigen $TMP/$LIBDIR/vcglib/vcg -cd .. -tar -zcf $CURDIR/$MLABARCH.tar.gz $MLABDIR -tar -zcf $CURDIR/$LIBARCH.tar.gz $LIBDIR - -rm -rdf $TMP/$MLABDIR - -cd $CURDIR diff --git a/install/snap201703/README.md b/install/linux/snap/README.md similarity index 100% rename from install/snap201703/README.md rename to install/linux/snap/README.md diff --git a/install/snap201612/snap/gui/meshlab.desktop b/install/linux/snap/gui/meshlab.desktop similarity index 100% rename from install/snap201612/snap/gui/meshlab.desktop rename to install/linux/snap/gui/meshlab.desktop diff --git a/install/snap201612/snap/gui/meshlab.png b/install/linux/snap/gui/meshlab.png similarity index 100% rename from install/snap201612/snap/gui/meshlab.png rename to install/linux/snap/gui/meshlab.png diff --git a/install/snap201703/snapcraft.yaml b/install/linux/snap/snapcraft.yaml similarity index 100% rename from install/snap201703/snapcraft.yaml rename to install/linux/snap/snapcraft.yaml diff --git a/install/meshlab.desktop b/install/meshlab.desktop deleted file mode 100644 index 9688cdce9..000000000 --- a/install/meshlab.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Type=Application -Name=MeshLab -Comment=Processor and editor of large 3D triangular meshes -Exec=meshlab -Terminal=false -Categories=Graphics; -Icon=meshlab.png - diff --git a/install/snap201612/README.md b/install/snap201612/README.md deleted file mode 100644 index 38fc8e766..000000000 --- a/install/snap201612/README.md +++ /dev/null @@ -1,31 +0,0 @@ -Snap is a cross-distribution packaging format for Linux. See -https://snapcraft.io for more information. - -How to build ------------- -Just type -``` -snapcraft -``` -from the directory containing this README file. This snap has been successfully -built in Ubuntu 17.04; Ubuntu 16.10 will not work because MeshLab needs Qt 5.7, -which is not available there. It should be possible to build MeshLab as a snap -in older Ubuntu distributions by using the [qt57 -part](https://wiki.ubuntu.com/snapcraft/parts), but no efforts have been taken -in this direction since anyway the generated snap package will work on older -distributions too. - -How to test the snap --------------------- -The generated snap can be installed by typing -``` -snap install --dangerous ./meshlab*.snap -``` -The `--dangerous` flag is needed because the snap has not been verified by the -store. - -How to upload the snap to the store ------------------------------------ -A thorough guide can be found at the [snapcraft.io -site](https://snapcraft.io/docs/build-snaps/publish). - diff --git a/install/snap201612/snap/gui/meshlabserver.desktop b/install/snap201612/snap/gui/meshlabserver.desktop deleted file mode 100644 index d47da0de8..000000000 --- a/install/snap201612/snap/gui/meshlabserver.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Type=Application -Name=meshlabserver -Comment=Processor and editor of large 3D triangular meshes -Exec=meshlab.meshlabserver -Terminal=true -Categories=Graphics; -Icon=${SNAP}/meta/gui/meshlab.png - diff --git a/install/snap201612/snap/snapcraft.yaml b/install/snap201612/snap/snapcraft.yaml deleted file mode 100644 index fff6ebe5f..000000000 --- a/install/snap201612/snap/snapcraft.yaml +++ /dev/null @@ -1,70 +0,0 @@ -# Known to build in Ubuntu 17.04 -name: meshlab -version: '2016.12-2' -summary: MeshLab -description: | - The open source system for processing and editing 3D triangular meshes. - It provides a set of tools for editing, cleaning, healing, inspecting, - rendering, texturing and converting meshes. It offers features for processing - raw data produced by 3D digitization tools/devices and for preparing models - for 3D printing. -icon: snap/gui/meshlab.png - -grade: stable -confinement: strict - -apps: - meshlab: - command: desktop-launch meshlab - plugs: [home, x11, mir, opengl, unity7] - meshlabserver: - command: desktop-launch meshlabserver - plugs: [home, x11, opengl, unity7] - - -parts: - meshlab: - after: [desktop-qt5,vcglib] - plugin: qmake - qt-version: qt5 - source: https://github.com/cnr-isti-vclab/meshlab.git - source-tag: v2016.12 - build-packages: - - libqt5opengl5-dev - - libqt5xmlpatterns5-dev - - qt5-default - - qtscript5-dev - prepare: | - ln -sf ../vcglib/install ../vcglib - sed -i '/filter_csg/d' src/meshlab_full.pro - sed -i '/plugins_experimental\/io_TXT/d' src/meshlab_full.pro - sed -i 's| abs(| qAbs(|' src/meshlabplugins/edit_quality/eqhandle.cpp - sed -i -e '2ilinux:QMAKE_LFLAGS += -fopenmp -lgomp\' src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.pro - sed -i 's|PR_XXXXXX|/tmp/PR_XXXXXX|' src/meshlabplugins/filter_screened_poisson/Src/Geometry.cpp - build: | - rm -f -r src/distrib/plugins/U3D_OSX - rm -f -r src/distrib/plugins/U3D_W32 - cd src/external - qmake external.pro - make -j4 - cd .. - qmake meshlab_full.pro - make -j4 - install: | - cp src/meshlabplugins/filter_screened_poisson/filter_screened_poisson.xml \ - src/meshlabplugins/filter_mutualinfoxml/filter_mutualinfo.xml \ - src/meshlabplugins/filter_measure/filter_measure.xml \ - src/distrib/plugins/ - rm -f -r src/distrib/plugins/OSX_U3D - rm -f -r src/distrib/plugins/OSX_W32 - cd src/distrib - mkdir -p $SNAPCRAFT_PART_INSTALL/bin - cp -a meshlab* plugins shaders textures $SNAPCRAFT_PART_INSTALL/bin - mkdir -p $SNAPCRAFT_PART_INSTALL/lib - cp -a lib* $SNAPCRAFT_PART_INSTALL/lib - vcglib: - plugin: dump - source: https://github.com/cnr-isti-vclab/vcglib.git - source-tag: v1.0.1 - prime: [ -* ] - diff --git a/install/snap201703/gui/meshlab.desktop b/install/snap201703/gui/meshlab.desktop deleted file mode 100644 index 7e18ba811..000000000 --- a/install/snap201703/gui/meshlab.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Type=Application -Name=MeshLab -Comment=Processor and editor of large 3D triangular meshes -Exec=meshlab.meshlab -Terminal=false -Categories=Graphics; -Icon=${SNAP}/meta/gui/meshlab.png - diff --git a/install/snap201703/gui/meshlab.png b/install/snap201703/gui/meshlab.png deleted file mode 100644 index c9a9885e2..000000000 Binary files a/install/snap201703/gui/meshlab.png and /dev/null differ diff --git a/install/meshlab-64bit-appveyor.nsi b/install/windows/meshlab-64bit-appveyor.nsi similarity index 100% rename from install/meshlab-64bit-appveyor.nsi rename to install/windows/meshlab-64bit-appveyor.nsi diff --git a/install/meshlab-64bit.nsi b/install/windows/meshlab-64bit.nsi similarity index 100% rename from install/meshlab-64bit.nsi rename to install/windows/meshlab-64bit.nsi diff --git a/install/meshlab.nsi b/install/windows/meshlab.nsi similarity index 100% rename from install/meshlab.nsi rename to install/windows/meshlab.nsi