From f70cffc96cd9663eb7f562cf365a087220b4d58e Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Tue, 10 Dec 2019 14:01:35 +0100 Subject: [PATCH] small adjustments on workflows and readme --- .github/workflows/CompileAndDeploy.yml | 29 +++--- .github/workflows/CompileMacOS.yml | 8 +- .github/workflows/CompileUbuntu.yml | 2 +- .github/workflows/CompileWindows.yml | 6 +- README.md | 7 +- src/install/macx/macinstall_latest.sh | 133 +++++++++++++++++++++++++ 6 files changed, 162 insertions(+), 23 deletions(-) create mode 100644 src/install/macx/macinstall_latest.sh diff --git a/.github/workflows/CompileAndDeploy.yml b/.github/workflows/CompileAndDeploy.yml index 76d0daeda..eaaf3b661 100755 --- a/.github/workflows/CompileAndDeploy.yml +++ b/.github/workflows/CompileAndDeploy.yml @@ -1,8 +1,9 @@ name: CompileAndDeploy on: - schedule: - - cron: '0 0 1 * *' #every first day of the month at midnight + [push, pull_request] + #schedule: + # - cron: '0 0 1 * *' #every first day of the month at midnight jobs: ubuntu_build: @@ -32,7 +33,7 @@ jobs: cd src/external qmake external.pro make -j4 - - name: Compiling Meshlab + - name: Compiling MeshLab run: | cd src/ qmake meshlab_full.pro @@ -64,7 +65,7 @@ jobs: cd src/external qmake external.pro make -j4 - - name: Compiling Meshlab + - name: Compiling MeshLab run: | cd src/ qmake meshlab_full.pro @@ -72,15 +73,15 @@ jobs: - name: Creating DMG run: | cd src/install/macx - ./macinstall_v2018.sh + ./macinstall_latest.sh echo "------ Completed!!! We should have a dmg here " cd ../../.. - ls -la src/distrib/MeshLab201804.dmg + ls -la src/distrib/MeshLab*.dmg - name: Uploading DMG uses: actions/upload-artifact@v1 with: name: meshlab_dmg - path: src/distrib/MeshLab201804.dmg + path: src/distrib/MeshLab*.dmg windows_build: name: Build MeshLab (Windows) @@ -103,12 +104,12 @@ jobs: cd src\external qmake external.pro -r nmake - - name: Compiling Meshlab + - name: Compiling MeshLab run: | cd src\ qmake meshlab_full.pro -r nmake - - name: Creating Meshlab Portable + - name: Creating MeshLab Portable run: | cd src\distrib windeployqt --no-translations meshlab.exe @@ -149,8 +150,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_prerelease.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: meshlab_dmg/MeshLab201804.dmg - asset_name: MeshLab201804.dmg + asset_path: meshlab_dmg/MeshLab${{steps.envs.outputs.date}}.dmg + asset_name: MeshLab${{steps.envs.outputs.date}}.dmg asset_content_type: MeshLab for MacOS - name: Downloading MeshLab Portable uses: actions/download-artifact@v1 @@ -158,7 +159,7 @@ jobs: name: meshlab_portable - name: Creating Meshlab Portable Archive run: | - zip -r Meshlab${{steps.envs.outputs.date}}-portable.zip meshlab_portable/ + zip -r MeshLab${{steps.envs.outputs.date}}-portable.zip meshlab_portable/ ls - name: Uploading PreReleaseWindowsPortable id: upload-prerelease-windows-portable @@ -167,8 +168,8 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.create_prerelease.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps - asset_path: Meshlab${{steps.envs.outputs.date}}-portable.zip - asset_name: Meshlab${{steps.envs.outputs.date}}-portable.zip + asset_path: MeshLab${{steps.envs.outputs.date}}-portable.zip + asset_name: MeshLab${{steps.envs.outputs.date}}-portable.zip asset_content_type: MeshLab Portable for Windows # - name: Uploading PreReleaseUbuntu # id: upload-prerelease-ubuntu diff --git a/.github/workflows/CompileMacOS.yml b/.github/workflows/CompileMacOS.yml index 966a2fa8e..08ca17d6c 100755 --- a/.github/workflows/CompileMacOS.yml +++ b/.github/workflows/CompileMacOS.yml @@ -30,7 +30,7 @@ jobs: cd src/external qmake external.pro make -j4 - - name: Compiling Meshlab + - name: Compiling MeshLab run: | cd src/ qmake meshlab_full.pro @@ -38,12 +38,12 @@ jobs: - name: Creating DMG run: | cd src/install/macx - ./macinstall_v2018.sh + ./macinstall_latest.sh echo "------ Completed!!! We should have a dmg here " cd ../../.. - ls -la src/distrib/MeshLab201804.dmg + ls -la src/distrib/MeshLab*.dmg - name: Uploading DMG uses: actions/upload-artifact@v1 with: name: meshlab_dmg - path: src/distrib/MeshLab201804.dmg + path: src/distrib/MeshLab*.dmg diff --git a/.github/workflows/CompileUbuntu.yml b/.github/workflows/CompileUbuntu.yml index dafd9da39..eb9212426 100755 --- a/.github/workflows/CompileUbuntu.yml +++ b/.github/workflows/CompileUbuntu.yml @@ -31,7 +31,7 @@ jobs: cd src/external qmake external.pro make -j4 - - name: Compiling Meshlab + - name: Compiling MeshLab run: | cd src/ qmake meshlab_full.pro diff --git a/.github/workflows/CompileWindows.yml b/.github/workflows/CompileWindows.yml index a43172782..aa7cd2fb3 100644 --- a/.github/workflows/CompileWindows.yml +++ b/.github/workflows/CompileWindows.yml @@ -24,16 +24,16 @@ jobs: cd src\external qmake external.pro -r nmake #jom -j 4 -f Makefile #nmake does not support parallel compilation - - name: Compiling Meshlab + - name: Compiling MeshLab run: | cd src\ qmake meshlab_full.pro -r nmake #jom -j 4 -f Makefile #nmake does not support parallel compilation - - name: Creating Meshlab Portable + - name: Creating MeshLab Portable run: | cd src\distrib windeployqt --no-translations meshlab.exe - - name: Uploading Meshlab Portable + - name: Uploading MeshLab Portable uses: actions/upload-artifact@v1 with: name: meshlab_portable diff --git a/README.md b/README.md index 132b0b2bc..6c625b946 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,10 @@ [![Build Status](https://travis-ci.org/cnr-isti-vclab/meshlab.svg?branch=master)](https://travis-ci.org/cnr-isti-vclab/meshlab) [![Build status](https://ci.appveyor.com/api/projects/status/bdxm2m4n5ud7vm47?svg=true)](https://ci.appveyor.com/project/cignoni/meshlab) +[![Actions Status](https://github.com/cnr-isti-vclab/meshlab/workflows/CompileUbuntu/badge.svg)](https://github.com/cnr-isti-vclab/meshlab/actions) +[![Actions Status](https://github.com/cnr-isti-vclab/meshlab/workflows/CompileMacOS/badge.svg)](https://github.com/cnr-isti-vclab/meshlab/actions) +[![Actions Status](https://github.com/cnr-isti-vclab/meshlab/workflows/CompileWindows/badge.svg)](https://github.com/cnr-isti-vclab/meshlab/actions) + This is the official repository for the sources 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. The source is released under the GPL license. @@ -10,5 +14,6 @@ The system is aimed to help the processing of the typical not-so-small unstructu 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), for all the core mesh processing tasks and it is available for Windows, MacOSX, and Linux. -Compiling instruction can be found in the [src](https://github.com/cnr-isti-vclab/meshlab/tree/master/src) folder or simply looking at the continous integration setup on [travis](https://travis-ci.org/cnr-isti-vclab/meshlab/builds) and [appveyor](https://ci.appveyor.com/project/cignoni/meshlab/history). +Compiling instruction can be found in the [src](https://github.com/cnr-isti-vclab/meshlab/tree/master/src) folder or simply looking at the continous integration setup on [Github Actions](https://github.com/cnr-isti-vclab/meshlab/actions), [travis](https://travis-ci.org/cnr-isti-vclab/meshlab/builds) and [appveyor](https://ci.appveyor.com/project/cignoni/meshlab/history). + diff --git a/src/install/macx/macinstall_latest.sh b/src/install/macx/macinstall_latest.sh new file mode 100644 index 000000000..e2a16e0ae --- /dev/null +++ b/src/install/macx/macinstall_latest.sh @@ -0,0 +1,133 @@ +#!/bin/bash +# this is a script shell for setting up the application bundle for the mac +# It should be run (not sourced) in the meshlab/src/install/macx dir. +# +# It does all the dirty work of moving all the needed plugins and frameworks into the package and runs the +# install_tool on them to change the linking path to the local version of qt + +# All the stuff to be copies is in the 'distrib' folder. +cd ../../distrib + +if QTDIR="" +then +QTDIR=$HOME/Qt/5.9.4/clang_64 +echo "Warning QTDIR was not set. trying to guess it to" $QTDIR +fi + +if ! [ -e $QTDIR ] +then +echo "Missing QT; QTDIR was wrong:" $QTDIR +fi + +# change this according to the shadow build dir. +# is the root of the build e.g. where the meshlab_full.pro it can be something like +BUILDPATH="../../build-meshlab_full-Desktop_Qt_5_9_4_clang_64bit2-Release" + +APPNAME="meshlab.app" +echo "Current folder is" `pwd` +echo "Hopefully I should find: " $BUILDPATH/distrib/$APPNAME +echo "Or alternatively in : " ../distrib/$APPNAME +if ! [ -e $BUILDPATH ] +then + BUILDPATH=.. + echo "Hopefully I should find" $BUILDPATH/distrib/$APPNAME +fi + +APPFOLDER=$BUILDPATH/distrib/$APPNAME +BUNDLE="MeshLabBundle" + + +if [ -e $APPFOLDER -a -d $APPFOLDER ] +then + echo "------------------" +else + echo "Started in the wrong dir: I have not found the MeshLab.app" + exit 0 +fi + +# Start by erasing everything +rm -r -f $BUNDLE + +echo "Copying the built app into the bundle" +mkdir $BUNDLE +cp -r $APPFOLDER $BUNDLE +mkdir $BUNDLE/$APPNAME/Contents/PlugIns +# copy the files icons into the app. +cp ../meshlab/images/meshlab_obj.icns $BUNDLE/$APPNAME/Contents/Resources + +for x in $BUILDPATH/distrib/plugins/*.dylib +do +cp ./$x $BUNDLE/meshlab.app/Contents/PlugIns/ +done + +for x in $BUILDPATH/distrib/plugins/*.xml +do +cp ./$x $BUNDLE/meshlab.app/Contents/PlugIns/ +done + +for x in $BUNDLE/meshlab.app/Contents/plugins/*.dylib +do + install_name_tool -change libcommon.1.dylib @executable_path/libcommon.1.dylib $x +done + +echo 'Copying samples and other files' + +cp ../../LICENSE.txt $BUNDLE +cp ../../docs/readme.txt $BUNDLE + +mkdir $BUNDLE/sample +mkdir $BUNDLE/sample/images +mkdir $BUNDLE/sample/normalmap + +cp sample/texturedknot.ply $BUNDLE/sample +cp sample/texturedknot.obj $BUNDLE/sample +cp sample/texturedknot.mtl $BUNDLE/sample +cp sample/TextureDouble_A.png $BUNDLE/sample +cp sample/Laurana50k.ply $BUNDLE/sample +cp sample/duck_triangulate.dae $BUNDLE/sample +cp sample/images/duckCM.jpg $BUNDLE/sample/images +cp sample/seashell.gts $BUNDLE/sample +cp sample/chameleon4k.pts $BUNDLE/sample +cp sample/normalmap/laurana500.* $BUNDLE/sample/normalmap +cp sample/normalmap/matteonormb.* $BUNDLE/sample/normalmap + + +mkdir $BUNDLE/$APPNAME/Contents/plugins/U3D_OSX +cp plugins/U3D_OSX/IDTFConverter.out $BUNDLE/$APPNAME/Contents/plugins/U3D_OSX +cp plugins/U3D_OSX/IDTFConverter.sh $BUNDLE/$APPNAME/Contents/plugins/U3D_OSX +cp plugins/U3D_OSX/libIFXCore.so $BUNDLE/$APPNAME/Contents/plugins/U3D_OSX +mkdir $BUNDLE/$APPNAME/Contents/plugins/U3D_OSX/Plugins +cp plugins/U3D_OSX/Plugins/libIFXExporting.so $BUNDLE/$APPNAME/Contents/plugins/U3D_OSX/Plugins + +mkdir $BUNDLE/$APPNAME/Contents/textures +cp textures/*.png $BUNDLE/$APPNAME/Contents/textures/ +mkdir $BUNDLE/$APPNAME/Contents/textures/cubemaps +cp textures/cubemaps/uffizi*.jpg $BUNDLE/$APPNAME/Contents/textures/cubemaps +mkdir $BUNDLE/$APPNAME/Contents/textures/litspheres +cp textures/litspheres/*.png $BUNDLE/$APPNAME/Contents/textures/litspheres + +mkdir $BUNDLE/$APPNAME/Contents/shaders +cp shaders/*.gdp shaders/*.vert shaders/*.frag shaders/*.txt $BUNDLE/$APPNAME/Contents/shaders + +#added rendermonkey shaders +mkdir $BUNDLE/$APPNAME/Contents/shaders/shadersrm +cp shaders/shadersrm/*.rfx $BUNDLE/$APPNAME/Contents/shaders/shadersrm +#added shadowmapping shaders +cp -r shaders/decorate_shadow $BUNDLE/$APPNAME/Contents/shaders + +echo "Changing the paths of the qt component frameworks using the qt tool macdeployqt" + +if [ -e $QTDIR/bin/macdeployqt ] +then +echo +$QTDIR/bin/macdeployqt $BUNDLE/$APPNAME -verbose=2 +else +macdeployqt $BUNDLE/$APPNAME -verbose=2 +fi + +cd ../install/macx +# final step create the dmg using appdmg +# appdmg is installed with 'npm install -g appdmg'", + +rm -f ../../distrib/MeshLab*.dmg +appdmg meshlab_dmg.json ../../distrib/MeshLab$(date +%Y-%m).dmg