mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-20 11:26:11 +00:00
Merge pull request #577 from alemuntoni/master
MeshLabServer AppImage for Linux
This commit is contained in:
commit
3270b17879
22
.github/workflows/CompileAndRelease.yml
vendored
22
.github/workflows/CompileAndRelease.yml
vendored
@ -29,6 +29,9 @@ jobs:
|
||||
- name: Build MeshLab
|
||||
run: |
|
||||
sh install/linux/linux_build.sh
|
||||
- name: Deploy MeshLabServer
|
||||
run : |
|
||||
sh install/linux/linux_meshlabserver_appimage.sh
|
||||
- name: Deploy MeshLab
|
||||
run : |
|
||||
sh install/linux/linux_appimage.sh
|
||||
@ -38,6 +41,11 @@ jobs:
|
||||
with:
|
||||
name: meshlab_linux_portable
|
||||
path: distrib/
|
||||
- name: Upload MeshlabServer AppImage
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: meshlabserver_linux_appimage
|
||||
path: MeshLabServer${{steps.envs.outputs.date}}-linux.AppImage
|
||||
- name: Upload Meshlab AppImage
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
@ -178,6 +186,10 @@ jobs:
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: meshlab_linux_appimage
|
||||
- name: Download Linux MeshLabServer AppImage
|
||||
uses: actions/download-artifact@v1
|
||||
with:
|
||||
name: meshlabserver_linux_appimage
|
||||
- name: Upload ReleaseLinuxPortable
|
||||
id: upload-release-linux-portable
|
||||
uses: actions/upload-release-asset@v1.0.1
|
||||
@ -198,6 +210,16 @@ jobs:
|
||||
asset_path: meshlab_linux_appimage/MeshLab${{steps.envs.outputs.date}}-linux.AppImage
|
||||
asset_name: MeshLab${{steps.envs.outputs.date}}-linux.AppImage
|
||||
asset_content_type: MeshLab AppImage for Linux
|
||||
- name: Upload ReleaseLinuxMeshLabServerAppImage
|
||||
id: upload-release-linux-meshlabserver-appimage
|
||||
uses: actions/upload-release-asset@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
||||
asset_path: meshlabserver_linux_appimage/MeshLabServer${{steps.envs.outputs.date}}-linux.AppImage
|
||||
asset_name: MeshLabServer${{steps.envs.outputs.date}}-linux.AppImage
|
||||
asset_content_type: MeshLabServer AppImage for Linux
|
||||
|
||||
#MacOS Release
|
||||
- name: Download MacOS DMG
|
||||
|
||||
8
.github/workflows/CompileUbuntu.yml
vendored
8
.github/workflows/CompileUbuntu.yml
vendored
@ -27,6 +27,9 @@ jobs:
|
||||
- name: Build MeshLab
|
||||
run: |
|
||||
sh install/linux/linux_build.sh
|
||||
- name: Deploy MeshLabServer
|
||||
run : |
|
||||
sh install/linux/linux_meshlabserver_appimage.sh
|
||||
- name: Deploy MeshLab
|
||||
run : |
|
||||
sh install/linux/linux_appimage.sh
|
||||
@ -36,6 +39,11 @@ jobs:
|
||||
with:
|
||||
name: meshlab_linux_portable
|
||||
path: distrib/
|
||||
- name: Upload MeshlabServer AppImage
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
name: meshlabserver_linux_appimage
|
||||
path: MeshLabServer${{steps.envs.outputs.date}}-linux.AppImage
|
||||
- name: Upload Meshlab AppImage
|
||||
uses: actions/upload-artifact@v1
|
||||
with:
|
||||
|
||||
12
README.md
12
README.md
@ -7,7 +7,7 @@
|
||||
|
||||
This is the official repository for the source and the binaries of MeshLab.
|
||||
|
||||
MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured large 3D triangular meshes. It is aimed to help the processing of the typical not-so-small unstructured models arising in 3D scanning, providing a set of tools for editing, cleaning, healing, inspecting, rendering and converting this kind of meshes. These tools include MeshLab proper, a versatile program with a graphical user interface, and [meshlabserver](https://github.com/cnr-isti-vclab/meshlab/blob/master/src/meshlabserver/meshlabserver.txt), a program that can perform mesh processing tasks in batch mode, without a GUI.
|
||||
MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured large 3D triangular meshes. It is aimed to help the processing of the typical not-so-small unstructured models arising in 3D scanning, providing a set of tools for editing, cleaning, healing, inspecting, rendering and converting this kind of meshes. These tools include MeshLab proper, a versatile program with a graphical user interface, and [meshlabserver](https://github.com/cnr-isti-vclab/meshlab/blob/master/src/meshlabserver/README.md), a program that can perform mesh processing tasks in batch mode, without a GUI.
|
||||
|
||||
MeshLab is mostly based on the open source C++ mesh processing library [VCGlib](http://www.vcglib.net) developed at the [Visual Computing Lab](http://vcg.isti.cnr.it) of [ISTI - CNR](http://www.isti.cnr.it). VCG can be used as a stand-alone large-scale automated mesh processing pipeline, while MeshLab makes it easy to experiment with its algorithms interactively.
|
||||
|
||||
@ -19,22 +19,22 @@ You can find the last MeshLab release in the [Releases Tab](https://github.com/c
|
||||
You can also test a built version of MeshLab generated by the last commit pushed in this repository, by downloading the artifacts of the last [Github Actions](https://github.com/cnr-isti-vclab/meshlab/actions) workflow.
|
||||
|
||||
### Note for Windows
|
||||
Right now, the portable version of meshlab won't start if doesn't find a Visual C++ Compiler installed. If you get the error "MSVCP140.dll not found" or related, please install Visual C++ Redist by executing the `vc_redist.exe` file contained in the meshlab portable archive. Alternatively, you can download Visual C++ Redist [here](https://support.microsoft.com/it-it/help/2977003/the-latest-supported-visual-c-downloads).
|
||||
The portable version of meshlab won't start if doesn't find a Visual C++ Compiler installed. If you get the error "MSVCP140.dll not found" or related, please install Visual C++ Redist by executing the `vc_redist.exe` file contained in the meshlab portable archive. Alternatively, you can download Visual C++ Redist [here](https://support.microsoft.com/it-it/help/2977003/the-latest-supported-visual-c-downloads).
|
||||
|
||||
# Build instructions
|
||||
|
||||
We provide a set of scripts that build and deploy automatically MeshLab. All the scripts can be found in the [install](https://github.com/cnr-isti-vclab/meshlab/tree/master/install) folder.
|
||||
For specific build instructions see the [src](https://github.com/cnr-isti-vclab/meshlab/tree/master/src) folder.
|
||||
For specific build instructions see the [src](https://github.com/cnr-isti-vclab/meshlab/blob/master/src/README.md) folder.
|
||||
|
||||
# Structure of the Repository
|
||||
|
||||
The MeshLab repository is organized as follows:
|
||||
|
||||
* `distrib`: this folder contains a set of prebuilt libraries, shaders and plugins that will be used by MeshLab once it is compiled. Binaries and plugins will be placed in this folder after MeshLab is built, or a copy of this folder will be placed in the chosen shadow build directory. For more details, check the readme [here](https://github.com/cnr-isti-vclab/meshlab/tree/master/distrib);
|
||||
* `distrib`: this folder contains a set of prebuilt libraries, shaders and plugins that will be used by MeshLab once it is compiled. Binaries and plugins will be placed in this folder after MeshLab is built, or a copy of this folder will be placed in the chosen shadow build directory. For more details, check the readme [here](https://github.com/cnr-isti-vclab/meshlab/tree/master/distrib/README.md);
|
||||
* `docs`: doxygen scripts for generating MeshLab documentation. For more details, check the readme [here](https://github.com/cnr-isti-vclab/meshlab/tree/master/docs);
|
||||
* `install`: in this folder there are a set of platform-dependent script to build and deploy MeshLab. For more details, check the readme [here](https://github.com/cnr-isti-vclab/meshlab/tree/master/install);
|
||||
* `install`: in this folder there are a set of platform-dependent script to build and deploy MeshLab. For more details, check the readme [here](https://github.com/cnr-isti-vclab/meshlab/tree/master/install/README.md);
|
||||
* `sample`: a set of files (meshes, images) used for tests;
|
||||
* `src`: this folder contains all the source code of MeshLab, its plugins and the external libraries that it requires. For more details, check the readme [here](https://github.com/cnr-isti-vclab/meshlab/tree/master/src);
|
||||
* `src`: this folder contains all the source code of MeshLab, its plugins and the external libraries that it requires. For more details, check the readme [here](https://github.com/cnr-isti-vclab/meshlab/blob/master/src/README.md);
|
||||
* `vcglib`: submodule of [VCGLib](https://github.com/cnr-isti-vclab/vcglib).
|
||||
|
||||
# License
|
||||
|
||||
@ -15,6 +15,9 @@ The follwing scripts are provided:
|
||||
* `linux_appimage.sh`: this script makes the `distrib` folder a portable version of MeshLab (no Qt and other libraries dependencies), and generates an [AppImage](https://appimage.org/) that can be run in a Linux Environment without dependencies;
|
||||
* it requires a properly built meshlab `distrib` directory (see `linux_build.sh`);
|
||||
* without given arguments, the folder that will be deployed is `meshlab/distrib`. You can give as argument the `DISTRIB_PATH`.
|
||||
* `linux_meshlabserver_appimage.sh`: this script generates an [AppImage](https://appimage.org/) of [MeshLabServer](https://github.com/cnr-isti-vclab/meshlab/blob/master/src/meshlabserver/README.md) that can be run in a Linux Environment without dependencies;
|
||||
* it requires a properly built meshlab `distrib` directory (see `linux_build.sh`);
|
||||
* without given arguments, the folder that will be deployed is `meshlab/distrib`. You can give as argument the `DISTRIB_PATH`.
|
||||
* `linux_make_it.sh`: this script builds, deploys and generates an [AppImage](https://appimage.org/) that can be run in a Linux Environment without dependencies;
|
||||
* it requires a properly set Qt environment (see `linux_setup_env_ubuntu.sh`);
|
||||
* without given arguments, all the binaries will be placed in the `meshlab/distrib` folder. You can give as argument the `BUILD_PATH`, and meshlab binaries and the AppImage will be then placed inside `BUILD_PATH/distrib`;
|
||||
|
||||
@ -39,8 +39,14 @@ cp $INSTALL_PATH/resources/default.desktop .
|
||||
cp $SOURCE_PATH/../LICENSE.txt $DISTRIB_PATH
|
||||
cp $SOURCE_PATH/../docs/readme.txt $DISTRIB_PATH
|
||||
|
||||
rm -r lib/macx64/
|
||||
rm -r lib/win32-msvc/
|
||||
rm -r lib/win32-msvc2008/
|
||||
rm -r lib/win32-msvc2015/
|
||||
rm -r lib/readme.txt
|
||||
rm -r plugins/U3D_OSX/
|
||||
rm -r plugins/U3D_W32/
|
||||
rm -r plugins/plugins.txt
|
||||
rm -r README.md
|
||||
|
||||
$INSTALL_PATH/resources/linuxdeployqt meshlab -appimage -executable=meshlabserver
|
||||
|
||||
@ -37,8 +37,14 @@ cp $INSTALL_PATH/resources/default.desktop .
|
||||
cp $SOURCE_PATH/../LICENSE.txt $DISTRIB_PATH
|
||||
cp $SOURCE_PATH/../docs/readme.txt $DISTRIB_PATH
|
||||
|
||||
rm -r lib/macx64/
|
||||
rm -r lib/win32-msvc/
|
||||
rm -r lib/win32-msvc2008/
|
||||
rm -r lib/win32-msvc2015/
|
||||
rm -r lib/readme.txt
|
||||
rm -r plugins/U3D_OSX/
|
||||
rm -r plugins/U3D_W32/
|
||||
rm -r plugins/plugins.txt
|
||||
rm -r README.md
|
||||
|
||||
$INSTALL_PATH/resources/linuxdeployqt meshlab -bundle-non-qt-libs -executable=meshlabserver
|
||||
|
||||
66
install/linux/linux_meshlabserver_appimage.sh
Executable file
66
install/linux/linux_meshlabserver_appimage.sh
Executable file
@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
# this is a script shell for setting up the application bundle of meshlabserver for linux
|
||||
# Requires a properly built meshlab (does not require to run the linux_deploy.sh script).
|
||||
#
|
||||
# This script can be run only in the oldest supported linux distro that you are using
|
||||
# due to linuxdeployqt tool choice (see https://github.com/probonopd/linuxdeployqt/issues/340).
|
||||
#
|
||||
# Without given arguments, MeshLabServer AppImage will be placed in the meshlab
|
||||
# directory.
|
||||
#
|
||||
# You can give as argument the DISTRIB_PATH, and the output AppImage will be placed
|
||||
# in the directory DISTRIB_PATH/../
|
||||
|
||||
cd "${0%/*}" #move to script directory
|
||||
|
||||
#checking for parameters
|
||||
if [ "$#" -eq 0 ]
|
||||
then
|
||||
DISTRIB_PATH=$PWD/../../distrib
|
||||
else
|
||||
DISTRIB_PATH=$1
|
||||
fi
|
||||
|
||||
SOURCE_PATH=$PWD/../../src
|
||||
|
||||
INSTALL_PATH=$(pwd)
|
||||
cd $DISTRIB_PATH
|
||||
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)
|
||||
|
||||
#check if we have an exec in distrib
|
||||
if ! [ -f meshlab ]
|
||||
then
|
||||
echo "ERROR: meshlab bin not found inside distrib"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ACTUAL_DISTRIB=$DISTRIB_PATH/../server_distrib
|
||||
mkdir $ACTUAL_DISTRIB
|
||||
cp -R $DISTRIB_PATH/. $ACTUAL_DISTRIB
|
||||
cd $ACTUAL_DISTRIB
|
||||
|
||||
cp $INSTALL_PATH/../meshlab.png .
|
||||
cp $INSTALL_PATH/resources/meshlab_server.desktop .
|
||||
mv meshlab_server.desktop default.desktop
|
||||
cp $SOURCE_PATH/../LICENSE.txt $DISTRIB_PATH
|
||||
cp $SOURCE_PATH/../docs/readme.txt $DISTRIB_PATH
|
||||
|
||||
rm -r lib/macx64/
|
||||
rm -r lib/win32-msvc/
|
||||
rm -r lib/win32-msvc2008/
|
||||
rm -r lib/win32-msvc2015/
|
||||
rm -r lib/readme.txt
|
||||
rm -r plugins/U3D_OSX/
|
||||
rm -r plugins/U3D_W32/
|
||||
rm -r plugins/plugins.txt
|
||||
rm -r README.md
|
||||
rm -r shaders/
|
||||
rm -r textures/
|
||||
rm -r meshlab
|
||||
|
||||
$INSTALL_PATH/resources/linuxdeployqt meshlabserver -appimage
|
||||
mv *.AppImage ../MeshLabServer$(date +%Y.%m)-linux.AppImage
|
||||
cd ..
|
||||
rm -r $ACTUAL_DISTRIB
|
||||
|
||||
echo MeshLabServer$(date +%Y.%m)-linux.AppImage generated
|
||||
@ -1,8 +1,8 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=MeshLab
|
||||
Name=MeshLabServer
|
||||
GenericName=Mesh processing
|
||||
Comment=Processor and editor of large 3D triangular meshes
|
||||
Comment=Batch Processor MeshLab
|
||||
Exec=AppRun %F
|
||||
Icon=meshlab
|
||||
Terminal=false
|
||||
@ -13,9 +13,11 @@ RESOURCES = \
|
||||
# to add windows icon
|
||||
RC_FILE = ../meshlab/meshlab.rc
|
||||
|
||||
QT += xml opengl
|
||||
QT += xmlpatterns
|
||||
QT += script
|
||||
QT += \
|
||||
xml \
|
||||
opengl \
|
||||
xmlpatterns \
|
||||
script
|
||||
|
||||
DESTDIR = $$MESHLAB_DISTRIB_DIRECTORY
|
||||
macx:DESTDIR = $$MESHLAB_DISTRIB_DIRECTORY/meshlab.app/Contents/MacOS/
|
||||
@ -23,11 +25,11 @@ macx:QMAKE_POST_LINK = " \
|
||||
install_name_tool -change libcommon.1.dylib @executable_path/libcommon.1.dylib $$MESHLAB_DISTRIB_DIRECTORY/meshlab.app/Contents/MacOS/meshlabserver \
|
||||
"
|
||||
|
||||
mac:LIBS += $$MESHLAB_DISTRIB_DIRECTORY/meshlab.app/Contents/MacOS/libcommon.dylib
|
||||
macx:LIBS += $$MESHLAB_DISTRIB_DIRECTORY/meshlab.app/Contents/MacOS/libcommon.dylib
|
||||
|
||||
win32-msvc: LIBS += -lopengl32 -lGLU32 -L$$MESHLAB_DISTRIB_DIRECTORY/lib -lcommon
|
||||
win32-g++: LIBS += -lcommon
|
||||
linux: LIBS += -lcommon
|
||||
win32-msvc:LIBS += -lopengl32 -lGLU32 -L$$MESHLAB_DISTRIB_DIRECTORY/lib -lcommon
|
||||
win32-g++:LIBS += -lcommon
|
||||
linux:LIBS += -lcommon
|
||||
|
||||
win32-msvc:DEFINES += GLEW_STATIC
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user