From af5c3f13ba601b174f0fa8758b349e77e3778bbc Mon Sep 17 00:00:00 2001 From: supermerill Date: Wed, 27 Oct 2021 23:36:11 +0200 Subject: [PATCH] update build scripts --- .github/workflows/ccpp_mac_debug.yml | 48 +++--- .github/workflows/ccpp_ubuntu.yml | 65 +------- .github/workflows/ccpp_ubuntu_debug.yml | 66 ++------ .github/workflows/ccpp_ubuntu_gtk3.yml | 69 ++------- .github/workflows/ccpp_ubuntu_gtk3_debug.yml | 69 ++------- .github/workflows/ccpp_ubuntu_gtk3_rc.yml | 73 ++------- .github/workflows/ccpp_ubuntu_rc.yml | 65 +------- .github/workflows/ccpp_win.yml | 12 +- .github/workflows/ccpp_win_debug.yml | 12 +- .github/workflows/ccpp_win_rc.yml | 12 +- BuildLinux.sh | 152 ++++++++++--------- create_release.py | 21 ++- 12 files changed, 199 insertions(+), 465 deletions(-) diff --git a/.github/workflows/ccpp_mac_debug.yml b/.github/workflows/ccpp_mac_debug.yml index 9f1b6967c..e16b5cdf2 100644 --- a/.github/workflows/ccpp_mac_debug.yml +++ b/.github/workflows/ccpp_mac_debug.yml @@ -10,6 +10,9 @@ jobs: runs-on: macos-latest + env: + EXEC_NAME: "${{ github.event.repository.name }}" + DBL_NAME: "${{ github.event.repository.name }}/${{ github.event.repository.name }}" steps: - uses: actions/checkout@v2 with: @@ -17,6 +20,15 @@ jobs: - name: update submodule profiles working-directory: ./resources/profiles run: git submodule update --init + - id: lowercase_repo + uses: ASzc/change-string-case-action@v1 + with: + string: ${{ github.event.repository.name }} + - name: set exec name + if: ${{ github.event.repository.name != 'Slic3r' }} + uses: allenevans/set-env@v2.0.0 + with: + EXEC_NAME: "${{ steps.lowercase_repo.outputs.lowercase }}" - name: change date in version run: | sed "s/+UNKNOWN/_$(date '+%F')/" version.inc > version.date.inc @@ -46,7 +58,7 @@ jobs: - name: cmake working-directory: ./build run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -DSLIC3R_STATIC=1 - - name: make Slic3r + - name: make ${{ github.event.repository.name }} working-directory: ./build run: make Slic3r - name: make .mo @@ -59,32 +71,32 @@ jobs: working-directory: ./build run: | mkdir pack - mkdir pack/Slic3r - mkdir pack/Slic3r/Slic3r.app - mkdir pack/Slic3r/Slic3r.app/Contents - mkdir pack/Slic3r/Slic3r.app/Contents/_CodeSignature - mkdir pack/Slic3r/Slic3r.app/Contents/Frameworks - mkdir pack/Slic3r/Slic3r.app/Contents/MacOS + mkdir pack/${{ github.event.repository.name }} + mkdir pack/${{ env.DBL_NAME }}.app + mkdir pack/${{ env.DBL_NAME }}.app/Contents + mkdir pack/${{ env.DBL_NAME }}.app/Contents/_CodeSignature + mkdir pack/${{ env.DBL_NAME }}.app/Contents/Frameworks + mkdir pack/${{ env.DBL_NAME }}.app/Contents/MacOS - name: copy Resources working-directory: ./build run: | - cp -Rf ../resources pack/Slic3r/Slic3r.app/Contents/Resources - cp pack/Slic3r/Slic3r.app/Contents/Resources/icons/Slic3r.icns pack/Slic3r/Slic3r.app/Contents/resources/Slic3r.icns - cp src/Info.date.plist pack/Slic3r/Slic3r.app/Contents/Info.plist + cp -Rf ../resources pack/${{ env.DBL_NAME }}.app/Contents/Resources + cp pack/${{ env.DBL_NAME }}.app/Contents/Resources/icons/${{ github.event.repository.name }}.icns pack/${{ github.event.repository.name }}/${{ github.event.repository.name }}.app/Contents/resources/${{ github.event.repository.name }}.icns + cp src/Info.date.plist pack/${{ github.event.repository.name }}/${{ github.event.repository.name }}.app/Contents/Info.plist echo -n -e 'APPL????\x0a' > PkgInfo - cp PkgInfo pack/Slic3r/Slic3r.app/Contents/PkgInfo + cp PkgInfo pack/${{ env.DBL_NAME }}.app/Contents/PkgInfo # echo -n -e '\xff\xfeAPPL\x3f\x00\x3f\x00\x3f\x00\x3f\x00\x0a\x00' > PkgInfo - name: copy bin and do not let it lower case working-directory: ./build run: | - cp -f src/Slic3r pack/Slic3r/Slic3r.app/Contents/MacOS/Slic3r - chmod u+x pack/Slic3r/Slic3r.app/Contents/MacOS/Slic3r - tar -cvf Slic3r.tar pack/Slic3r + cp -f src/${{ env.EXEC_NAME }} pack/${{ env.DBL_NAME }}.app/Contents/MacOS/${{ github.event.repository.name }} + chmod u+x pack/${{ env.DBL_NAME }}.app/Contents/MacOS/${{ github.event.repository.name }} + tar -cvf ${{ github.event.repository.name }}.tar pack/${{ github.event.repository.name }} - name: create dmg working-directory: ./build run: | - hdiutil create -ov -fs HFS+ -volname "Slic3r" -srcfolder "pack/Slic3r" temp.dmg - hdiutil convert temp.dmg -format UDZO -o Slic3r.dmg + hdiutil create -ov -fs HFS+ -volname "${{ github.event.repository.name }}" -srcfolder "pack/${{ github.event.repository.name }}" temp.dmg + hdiutil convert temp.dmg -format UDZO -o ${{ github.event.repository.name }}.dmg # - name: signing Resources (creating CodeResources inside _CodeSignature) # working-directory: . # run: codesign -s Resources @@ -93,9 +105,9 @@ jobs: uses: actions/upload-artifact@v1.0.0 with: name: nightly_macos.tar - path: build/Slic3r.tar + path: build/${{ github.event.repository.name }}.tar - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: name: nightly_macos_debug.dmg - path: build/Slic3r.dmg + path: build/${{ github.event.repository.name }}.dmg diff --git a/.github/workflows/ccpp_ubuntu.yml b/.github/workflows/ccpp_ubuntu.yml index 9d8432c23..0e9361237 100644 --- a/.github/workflows/ccpp_ubuntu.yml +++ b/.github/workflows/ccpp_ubuntu.yml @@ -25,70 +25,21 @@ jobs: run: sudo apt update - name: install gtk2 glew run: sudo apt install libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev - - name: mkdir in deps - run: mkdir deps/build - - name: cmake deps - working-directory: ./deps/build - run: cmake .. - - name: make deps - working-directory: ./deps/build - run: make - - name: rename wxscintilla - working-directory: ./deps/build/destdir/usr/local/lib - run: cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a - - name: ls libs - working-directory: ./deps/build - run: ls ./destdir/usr/local/lib - - name: clean deps - working-directory: ./deps/build - run: rm -rf dep_* - - name: mkdir build - run: mkdir build - - name: cmake - working-directory: ./build - run: cmake .. -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - - name: make Slic3r - working-directory: ./build - run: make Slic3r - - name: make .mo - working-directory: ./build - run: make gettext_po_to_mo + - name: build deps & slicer + run: ./BuildLinux.sh -dgs - name: make .pot working-directory: ./build run: make gettext_make_pot - - name: create directory and copy into it + - name: build tar & appimage working-directory: ./build - run: | - mkdir package - mkdir package/bin - - name: copy resources - working-directory: ./build - run: cp -Rf ../resources package/resources - - name: copy bin - working-directory: ./build - run: cp -f src/Slic3r package/bin/Slic3r - - name: create sh from echo - working-directory: ./build/package - run: | - echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/Slic3r" "$@"' >Slic3r - chmod u+x Slic3r - tar -cvf ../Slic3r.tar . + run: src/BuildLinuxImage.sh -i - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: - name: nightly_linux.tar - path: build/Slic3r.tar - - name: build appimage - working-directory: ./build/package - run: | - chmod +x ../build_appimage.sh - ../build_appimage.sh - - name: 'Tar files' - working-directory: ./build/package - run: tar -cvf Slic3r_ubu64.AppImage.tar Slic3r_ubu64.AppImage + name: nightly_linux_gtk2.tar + path: build/${{ github.event.repository.name }}.tar - name: Upload appimage uses: actions/upload-artifact@v1.0.0 with: - name: Slic3r-AppImage.tar - path: build/package/Slic3r_ubu64.AppImage.tar - + name: ${{ github.event.repository.name }}-gtk2.AppImage + path: build/${{ github.event.repository.name }}_ubu64.AppImage diff --git a/.github/workflows/ccpp_ubuntu_debug.yml b/.github/workflows/ccpp_ubuntu_debug.yml index 212337d43..1fb69c527 100644 --- a/.github/workflows/ccpp_ubuntu_debug.yml +++ b/.github/workflows/ccpp_ubuntu_debug.yml @@ -25,67 +25,21 @@ jobs: run: sudo apt update - name: install gtk2 glew run: sudo apt install libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev - - name: mkdir in deps - run: mkdir deps/build - - name: cmake deps - working-directory: ./deps/build - run: cmake .. -DCMAKE_BUILD_TYPE=Debug - - name: make deps - working-directory: ./deps/build - run: make - - name: ls libs - working-directory: ./deps/build - run: ls ./destdir/usr/local/lib - - name: rename wxscintilla - working-directory: ./deps/build/destdir/usr/local/lib - run: cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a - - name: clean deps - working-directory: ./deps/build - run: rm -rf dep_* - - name: mkdir build - run: mkdir build - - name: cmake + - name: build deps & slicer + run: ./BuildLinux.sh -bdgs + - name: make .pot working-directory: ./build - run: cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - - name: make Slic3r + run: make gettext_make_pot + - name: build tar & appimage working-directory: ./build - run: make Slic3r - - name: make .mo - working-directory: ./build - run: make gettext_po_to_mo - - name: create directory and copy into it - working-directory: ./build - run: | - mkdir package - mkdir package/bin - - name: copy resources - working-directory: ./build - run: cp -Rf ../resources package/resources - - name: copy bin - working-directory: ./build - run: cp -f src/Slic3r package/bin/Slic3r - - name: create sh from echo - working-directory: ./build/package - run: | - echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/Slic3r" "$@"' >Slic3r - chmod u+x Slic3r - tar -cvf ../Slic3r.tar . + run: src/BuildLinuxImage.sh -i - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: - name: nightly_linux.tar - path: build/Slic3r.tar - - name: build appimage - working-directory: ./build/package - run: | - chmod +x ../build_appimage.sh - ../build_appimage.sh - - name: 'Tar files' - working-directory: ./build/package - run: tar -cvf Slic3r_ubu64.AppImage.tar Slic3r_ubu64.AppImage + name: nightly_linux_gtk2.tar + path: build/${{ github.event.repository.name }}.tar - name: Upload appimage uses: actions/upload-artifact@v1.0.0 with: - name: Slic3r-AppImage.tar - path: build/package/Slic3r_ubu64.AppImage.tar - + name: ${{ github.event.repository.name }}-gtk2.AppImage + path: build/${{ github.event.repository.name }}_ubu64.AppImage diff --git a/.github/workflows/ccpp_ubuntu_gtk3.yml b/.github/workflows/ccpp_ubuntu_gtk3.yml index 1267c02fc..ca7cc0971 100644 --- a/.github/workflows/ccpp_ubuntu_gtk3.yml +++ b/.github/workflows/ccpp_ubuntu_gtk3.yml @@ -1,4 +1,4 @@ -name: C/C++ Nigthly ubuntu +name: C/C++ Nigthly ubuntu-GTK3 on: push: @@ -23,72 +23,23 @@ jobs: run: sudo hwclock -s - name: update apt run: sudo apt update - - name: install gtk2 glew + - name: install gtk3 glew run: sudo apt install libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev - - name: mkdir in deps - run: mkdir deps/build - - name: cmake deps - working-directory: ./deps/build - run: cmake .. -DDEP_WX_GTK3=ON - - name: make deps - working-directory: ./deps/build - run: make - - name: rename wxscintilla - working-directory: ./deps/build/destdir/usr/local/lib - run: cp libwxscintilla-3.1.a libwx_gtk3u_scintilla-3.1.a - - name: ls libs - working-directory: ./deps/build - run: ls ./destdir/usr/local/lib - - name: clean deps - working-directory: ./deps/build - run: rm -rf dep_* - - name: mkdir build - run: mkdir build - - name: cmake - working-directory: ./build - run: cmake .. -DSLIC3R_GTK=3 -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - - name: make Slic3r - working-directory: ./build - run: make Slic3r - - name: make .mo - working-directory: ./build - run: make gettext_po_to_mo + - name: build deps & slicer + run: ./BuildLinux.sh -ds - name: make .pot working-directory: ./build run: make gettext_make_pot - - name: create directory and copy into it + - name: build tar & appimage working-directory: ./build - run: | - mkdir package - mkdir package/bin - - name: copy resources - working-directory: ./build - run: cp -Rf ../resources package/resources - - name: copy bin - working-directory: ./build - run: cp -f src/Slic3r package/bin/Slic3r - - name: create sh from echo - working-directory: ./build/package - run: | - echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/Slic3r" "$@"' >Slic3r - chmod u+x Slic3r - tar -cvf ../Slic3r.tar . + run: src/BuildLinuxImage.sh -i - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: - name: nightly_linux.tar - path: build/Slic3r.tar - - name: build appimage - working-directory: ./build/package - run: | - chmod +x ../build_appimage.sh - ../build_appimage.sh - - name: 'Tar files' - working-directory: ./build/package - run: tar -cvf Slic3r_ubu64.AppImage.tar Slic3r_ubu64.AppImage + name: nightly_linux_gtk3.tar + path: build/${{ github.event.repository.name }}.tar - name: Upload appimage uses: actions/upload-artifact@v1.0.0 with: - name: Slic3r-AppImage.tar - path: build/package/Slic3r_ubu64.AppImage.tar - + name: ${{ github.event.repository.name }}-gtk3.AppImage + path: build/${{ github.event.repository.name }}_ubu64.AppImage diff --git a/.github/workflows/ccpp_ubuntu_gtk3_debug.yml b/.github/workflows/ccpp_ubuntu_gtk3_debug.yml index 17c599c4a..0d159554d 100644 --- a/.github/workflows/ccpp_ubuntu_gtk3_debug.yml +++ b/.github/workflows/ccpp_ubuntu_gtk3_debug.yml @@ -1,4 +1,4 @@ -name: C/C++ debug ubuntu +name: C/C++ debug ubuntu-GTK3 on: push: @@ -23,69 +23,24 @@ jobs: run: sudo hwclock -s - name: update apt run: sudo apt update - - name: install gtk2 glew + - name: install gtk3 glew run: sudo apt install libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev - - name: mkdir in deps - run: mkdir deps/build - - name: cmake deps - working-directory: ./deps/build - run: cmake .. -DDEP_WX_GTK3=ON -DCMAKE_BUILD_TYPE=Debug - - name: make deps - working-directory: ./deps/build - run: make - - name: ls libs - working-directory: ./deps/build - run: ls ./destdir/usr/local/lib - - name: rename wxscintilla - working-directory: ./deps/build/destdir/usr/local/lib - run: cp libwxscintilla-3.1.a libwx_gtk3u_scintilla-3.1.a - - name: clean deps - working-directory: ./deps/build - run: rm -rf dep_* - - name: mkdir build - run: mkdir build - - name: cmake + - name: build deps & slicer + run: ./BuildLinux.sh -bds + - name: make .pot working-directory: ./build - run: cmake .. -DSLIC3R_GTK=3 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - - name: make Slic3r + run: make gettext_make_pot + - name: build tar & appimage working-directory: ./build - run: make Slic3r - - name: make .mo - working-directory: ./build - run: make gettext_po_to_mo - - name: create directory and copy into it - working-directory: ./build - run: | - mkdir package - mkdir package/bin - - name: copy resources - working-directory: ./build - run: cp -Rf ../resources package/resources - - name: copy bin - working-directory: ./build - run: cp -f src/Slic3r package/bin/Slic3r - - name: create sh from echo - working-directory: ./build/package - run: | - echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/Slic3r" "$@"' >Slic3r - chmod u+x Slic3r - tar -cvf ../Slic3r.tar . + run: src/BuildLinuxImage.sh -i - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: - name: nightly_linux.tar - path: build/Slic3r.tar - - name: build appimage - working-directory: ./build/package - run: | - chmod +x ../build_appimage.sh - ../build_appimage.sh - - name: 'Tar files' - working-directory: ./build/package - run: tar -cvf Slic3r_ubu64.AppImage.tar Slic3r_ubu64.AppImage + name: nightly_linux_gtk3.tar + path: build/${{ github.event.repository.name }}.tar - name: Upload appimage uses: actions/upload-artifact@v1.0.0 with: - name: Slic3r-AppImage.tar - path: build/package/Slic3r_ubu64.AppImage.tar + name: ${{ github.event.repository.name }}-gtk3.AppImage + path: build/${{ github.event.repository.name }}_ubu64.AppImage diff --git a/.github/workflows/ccpp_ubuntu_gtk3_rc.yml b/.github/workflows/ccpp_ubuntu_gtk3_rc.yml index 961a76b48..bbd0f2661 100644 --- a/.github/workflows/ccpp_ubuntu_gtk3_rc.yml +++ b/.github/workflows/ccpp_ubuntu_gtk3_rc.yml @@ -1,4 +1,4 @@ -name: C/C++ Nigthly ubuntu +name: C/C++ Nigthly ubuntu-GTK3 on: push: @@ -10,6 +10,8 @@ jobs: runs-on: ubuntu-18.04 + env: + EXEC_NAME: "${{ github.event.repository.name }}" steps: - uses: actions/checkout@v2 with: @@ -18,77 +20,28 @@ jobs: working-directory: ./resources/profiles run: git submodule update --init - name: change date in version - run: sed -i "s/+UNKNOWN//" version.inc + run: sed -i "s/+UNKNOWN/_$(date '+%F')/" version.inc - name: update clock run: sudo hwclock -s - name: update apt run: sudo apt update - - name: install gtk2 glew + - name: install gtk3 glew run: sudo apt install libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev - - name: mkdir in deps - run: mkdir deps/build - - name: cmake deps - working-directory: ./deps/build - run: cmake .. -DDEP_WX_GTK3=ON - - name: make deps - working-directory: ./deps/build - run: make - - name: rename wxscintilla - working-directory: ./deps/build/destdir/usr/local/lib - run: cp libwxscintilla-3.1.a libwx_gtk3u_scintilla-3.1.a - - name: ls libs - working-directory: ./deps/build - run: ls ./destdir/usr/local/lib - - name: clean deps - working-directory: ./deps/build - run: rm -rf dep_* - - name: mkdir build - run: mkdir build - - name: cmake - working-directory: ./build - run: cmake .. -DSLIC3R_GTK=3 -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - - name: make Slic3r - working-directory: ./build - run: make Slic3r - - name: make .mo - working-directory: ./build - run: make gettext_po_to_mo + - name: build deps & slicer + run: ./BuildLinux.sh -ds - name: make .pot working-directory: ./build run: make gettext_make_pot - - name: create directory and copy into it + - name: build tar & appimage working-directory: ./build - run: | - mkdir package - mkdir package/bin - - name: copy resources - working-directory: ./build - run: cp -Rf ../resources package/resources - - name: copy bin - working-directory: ./build - run: cp -f src/Slic3r package/bin/Slic3r - - name: create sh from echo - working-directory: ./build/package - run: | - echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/Slic3r" "$@"' >Slic3r - chmod u+x Slic3r - tar -cvf ../Slic3r.tar . + run: src/BuildLinuxImage.sh -i - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: - name: rc_linux.tar - path: build/Slic3r.tar - - name: build appimage - working-directory: ./build/package - run: | - chmod +x ../build_appimage.sh - ../build_appimage.sh - - name: 'Tar files' - working-directory: ./build/package - run: tar -cvf Slic3r_ubu64.AppImage.tar Slic3r_ubu64.AppImage + name: rc_linux_gtk3.tar + path: build/${{ github.event.repository.name }}.tar - name: Upload appimage uses: actions/upload-artifact@v1.0.0 with: - name: rc-Slic3r-AppImage.tar - path: build/package/Slic3r_ubu64.AppImage.tar - + name: rc-${{ github.event.repository.name }}-gtk3.AppImage + path: build/${{ github.event.repository.name }}_ubu64.AppImage diff --git a/.github/workflows/ccpp_ubuntu_rc.yml b/.github/workflows/ccpp_ubuntu_rc.yml index a96ae2d82..03961e40a 100644 --- a/.github/workflows/ccpp_ubuntu_rc.yml +++ b/.github/workflows/ccpp_ubuntu_rc.yml @@ -25,70 +25,21 @@ jobs: run: sudo apt update - name: install gtk2 glew run: sudo apt install libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev - - name: mkdir in deps - run: mkdir deps/build - - name: cmake deps - working-directory: ./deps/build - run: cmake .. - - name: make deps - working-directory: ./deps/build - run: make - - name: rename wxscintilla - working-directory: ./deps/build/destdir/usr/local/lib - run: cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a - - name: ls libs - working-directory: ./deps/build - run: ls ./destdir/usr/local/lib - - name: clean deps - working-directory: ./deps/build - run: rm -rf dep_* - - name: mkdir build - run: mkdir build - - name: cmake - working-directory: ./build - run: cmake .. -DCMAKE_PREFIX_PATH="/home/runner/work/Slic3r/Slic3r/deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - - name: make Slic3r - working-directory: ./build - run: make Slic3r - - name: make .mo - working-directory: ./build - run: make gettext_po_to_mo + - name: build deps & slicer + run: ./BuildLinux.sh -dgs - name: make .pot working-directory: ./build run: make gettext_make_pot - - name: create directory and copy into it + - name: build tar & appimage working-directory: ./build - run: | - mkdir package - mkdir package/bin - - name: copy resources - working-directory: ./build - run: cp -Rf ../resources package/resources - - name: copy bin - working-directory: ./build - run: cp -f src/Slic3r package/bin/Slic3r - - name: create sh from echo - working-directory: ./build/package - run: | - echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/Slic3r" "$@"' >Slic3r - chmod u+x Slic3r - tar -cvf ../Slic3r.tar . + run: src/BuildLinuxImage.sh -i - name: Upload artifact uses: actions/upload-artifact@v1.0.0 with: - name: rc_linux.tar - path: build/Slic3r.tar - - name: build appimage - working-directory: ./build/package - run: | - chmod +x ../build_appimage.sh - ../build_appimage.sh - - name: 'Tar files' - working-directory: ./build/package - run: tar -cvf Slic3r_ubu64.AppImage.tar Slic3r_ubu64.AppImage + name: rc_linux_gtk2.tar + path: build/${{ github.event.repository.name }}.tar - name: Upload appimage uses: actions/upload-artifact@v1.0.0 with: - name: rc-Slic3r-AppImage.tar - path: build/package/Slic3r_ubu64.AppImage.tar - + name: rc-${{ github.event.repository.name }}-gtk2.AppImage + path: build/${{ github.event.repository.name }}_ubu64.AppImage diff --git a/.github/workflows/ccpp_win.yml b/.github/workflows/ccpp_win.yml index c45d6d466..136e4688a 100644 --- a/.github/workflows/ccpp_win.yml +++ b/.github/workflows/ccpp_win.yml @@ -55,7 +55,7 @@ jobs: run: mkdir build - name: cmake working-directory: ./build - run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\Slic3r\Slic3r\deps\destdir\usr\local" + run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local" - name: make working-directory: ./build run: msbuild /m /P:Configuration=Release INSTALL.vcxproj @@ -76,18 +76,18 @@ jobs: - name: copy from release working-directory: ./build shell: powershell - run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer/releases/download/2.3.56.1/SuperSlicer_2.3.56.1_win64_210527.zip", "SuperSlicer_2.3.56.1_win64_210527.zip")' + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/1.75/Slic3r_win_build.zip", "Slic3r_win_build.zip")' - name: unzip working-directory: ./build shell: cmd - run: '"C:/Program Files/7-Zip/7z.exe" x SuperSlicer_2.3.56.1_win64_210527.zip' + run: '"C:/Program Files/7-Zip/7z.exe" x Slic3r_win_build.zip' - name: copy missing dll content from old release working-directory: ./build shell: cmd run: | - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\*.dll package\ - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\*.bat package\ - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\mesa package\ + xcopy /RCYIE Slic3r_win_build\*.dll package\ + xcopy /RCYIE Slic3r_win_build\local-settings.bat package\${{ github.event.repository.name }}_local-settings.bat + xcopy /RCYIE Slic3r_win_build\mesa package\ - name: copy new resources working-directory: ./build shell: cmd diff --git a/.github/workflows/ccpp_win_debug.yml b/.github/workflows/ccpp_win_debug.yml index 75b953c9a..eeb7687b9 100644 --- a/.github/workflows/ccpp_win_debug.yml +++ b/.github/workflows/ccpp_win_debug.yml @@ -55,7 +55,7 @@ jobs: run: mkdir build - name: cmake working-directory: ./build - run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\Slic3r\Slic3r\deps\destdir\usr\local" + run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local" - name: make working-directory: ./build run: msbuild /m /P:Configuration=Debug INSTALL.vcxproj @@ -73,18 +73,18 @@ jobs: - name: copy from release working-directory: ./build shell: powershell - run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer/releases/download/2.3.56.1/SuperSlicer_2.3.56.1_win64_210527.zip", "SuperSlicer_2.3.56.1_win64_210527.zip")' + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/1.75/Slic3r_win_build.zip", "Slic3r_win_build.zip")' - name: unzip working-directory: ./build shell: cmd - run: '"C:/Program Files/7-Zip/7z.exe" x SuperSlicer_2.3.56.1_win64_210527.zip' + run: '"C:/Program Files/7-Zip/7z.exe" x Slic3r_win_build.zip' - name: copy missing dll content from old release working-directory: ./build shell: cmd run: | - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\*.dll package\ - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\*.bat package\ - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\mesa package\ + xcopy /RCYIE Slic3r_win_build\*.dll package\ + xcopy /RCYIE Slic3r_win_build\local-settings.bat package\${{ github.event.repository.name }}_local-settings.bat + xcopy /RCYIE Slic3r_win_build\mesa package\ - name: copy new resources working-directory: ./build shell: cmd diff --git a/.github/workflows/ccpp_win_rc.yml b/.github/workflows/ccpp_win_rc.yml index 52f31389e..5595642fc 100644 --- a/.github/workflows/ccpp_win_rc.yml +++ b/.github/workflows/ccpp_win_rc.yml @@ -55,7 +55,7 @@ jobs: run: mkdir build - name: cmake working-directory: ./build - run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\Slic3r\Slic3r\deps\destdir\usr\local" + run: cmake .. -G "Visual Studio 16 2019" -A x64 -DCMAKE_PREFIX_PATH="d:\a\${{ github.event.repository.name }}\${{ github.event.repository.name }}\deps\destdir\usr\local" - name: make working-directory: ./build run: msbuild /m /P:Configuration=Release INSTALL.vcxproj @@ -76,18 +76,18 @@ jobs: - name: copy from release working-directory: ./build shell: powershell - run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer/releases/download/2.3.56.1/SuperSlicer_2.3.56.1_win64_210527.zip", "SuperSlicer_2.3.56.1_win64_210527.zip")' + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/SuperSlicer_deps/releases/download/1.75/Slic3r_win_build.zip", "Slic3r_win_build.zip")' - name: unzip working-directory: ./build shell: cmd - run: '"C:/Program Files/7-Zip/7z.exe" x SuperSlicer_2.3.56.1_win64_210527.zip' + run: '"C:/Program Files/7-Zip/7z.exe" x Slic3r_win_build.zip' - name: copy missing dll content from old release working-directory: ./build shell: cmd run: | - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\*.dll package\ - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\*.bat package\ - xcopy /RCYIE SuperSlicer_2.3.56.1_win64_210527\mesa package\ + xcopy /RCYIE Slic3r_win_build\*.dll package\ + xcopy /RCYIE Slic3r_win_build\local-settings.bat package\${{ github.event.repository.name }}_local-settings.bat + xcopy /RCYIE Slic3r_win_build\mesa package\ - name: copy new resources working-directory: ./build shell: cmd diff --git a/BuildLinux.sh b/BuildLinux.sh index ac51175a3..6a46817da 100755 --- a/BuildLinux.sh +++ b/BuildLinux.sh @@ -2,9 +2,11 @@ export ROOT=`pwd` export NCORES=`nproc --all` +FOUND_GTK2=$(dpkg -l libgtk* | grep gtk2) +FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3) unset name -while getopts ":dsiuh" opt; do +while getopts ":dsiuhgb" opt; do case ${opt} in u ) UPDATE_LIB="1" @@ -18,8 +20,16 @@ while getopts ":dsiuh" opt; do s ) BUILD_SLIC3R="1" ;; - h ) echo "Usage: ./BuildLinux.sh [-i][-u][-d][-s]" + b ) + BUILD_DEBUG="1" + ;; + g ) + FOUND_GTK3="" + ;; + h ) echo "Usage: ./BuildLinux.sh [-i][-u][-d][-s][-b][-g]" echo " -i: Generate appimage (optional)" + echo " -g: force gtk2 build" + echo " -b: build in debug mode" echo " -d: build deps (optional)" echo " -s: build slic3r (optional)" echo " -u: only update clock & dependency packets (optional and need sudo)" @@ -32,14 +42,16 @@ done if [ $OPTIND -eq 1 ] then - echo "Usage: ./BuildLinux.sh [-i][-u][-d][-s]" - echo " -i: Generate appimage" - echo " -d: build deps" - echo " -s: build slic3r" - echo " -u: only update clock & dependency packets (need sudo)" - echo "For a first use, you want to 'sudo ./BuildLinux.sh -u'" - echo " and then './BuildLinux.sh -dsi'" - exit 0 + echo "Usage: ./BuildLinux.sh [-i][-u][-d][-s][-b][-g]" + echo " -i: Generate appimage (optional)" + echo " -g: force gtk2 build" + echo " -b: build in debug mode" + echo " -d: build deps (optional)" + echo " -s: build slic3r (optional)" + echo " -u: only update clock & dependency packets (optional and need sudo)" + echo "For a first use, you want to 'sudo ./BuildLinux.sh -u'" + echo " and then './BuildLinux.sh -dsi'" + exit 0 fi # mkdir build @@ -48,8 +60,6 @@ then mkdir build fi -FOUND_GTK2=$(dpkg -l libgtk* | grep gtk2) -FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3) if [[ -n "$UPDATE_LIB" ]] then @@ -58,10 +68,10 @@ then apt update if [[ -z "$FOUND_GTK3" ]] then - echo -e "\nInstalling: libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git\n" + echo -e "\nInstalling: libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git\n" apt install libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev cmake git else - echo -e "\nFind libgtk-3, installing: libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev cmake git\n" + echo -e "\nFind libgtk-3, installing: libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev cmake git\n" apt install libgtk-3-dev libglew-dev libudev-dev libdbus-1-dev cmake git fi echo -e "done\n" @@ -88,14 +98,12 @@ echo "[1/9] Updating submodules..." git submodule update --init popd } -# > $ROOT/build/Build.log # Capture all command output echo "[2/9] Changing date in version..." { # change date in version sed -i "s/+UNKNOWN/_$(date '+%F')/" version.inc } -# &> $ROOT/build/Build.log # Capture all command output echo "done" # mkdir in deps @@ -107,77 +115,71 @@ fi if [[ -n "$BUILD_DEPS" ]] then echo "[3/9] Configuring dependencies..." + BUILD_ARGS="" + if [[ -n "$FOUND_GTK3_DEV" ]] + then + BUILD_ARGS="-DDEP_WX_GTK3=ON" + fi + if [[ -n "$BUILD_DEBUG" ]] + then + BUILD_ARGS="${BUILD_ARGS} -DCMAKE_BUILD_TYPE=Debug" + fi - # cmake deps - pushd deps/build - if [[ -z "$FOUND_GTK3_DEV" ]] - then - echo -e "\nusing GTK2\n" - cmake .. - else - echo -e "\nusing GTK3\n" - cmake .. -DDEP_WX_GTK3=ON - fi - - # &> $ROOT/build/Build.log # Capture all command output - echo "done" - - echo "[4/9] Building dependencies..." - + # cmake deps + pushd deps/build + cmake .. $BUILD_ARGS + echo "done" + # make deps + echo "[4/9] Building dependencies..." make -j$NCORES - - # &> $ROOT/build/Build.log # Capture all command output - echo "done" - - echo "[5/9] Renaming wxscintilla library..." - + echo "done" + # rename wxscintilla + echo "[5/9] Renaming wxscintilla library..." pushd destdir/usr/local/lib - if [[ -z "$FOUND_GTK3_DEV" ]] - then - cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a - else - cp libwxscintilla-3.1.a libwx_gtk3u_scintilla-3.1.a - fi + if [[ -z "$FOUND_GTK3_DEV" ]] + then + cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a + else + cp libwxscintilla-3.1.a libwx_gtk3u_scintilla-3.1.a + fi popd - # &> $ROOT/build/Build.log # Capture all command output - echo "done" - - echo "[6/9] Cleaning dependencies..." - + echo "done" + # clean deps + echo "[6/9] Cleaning dependencies..." rm -rf dep_* - popd - # &> $ROOT/build/Build.log # Capture all command output + popd echo "done" fi if [[ -n "$BUILD_SLIC3R" ]] then echo "[7/9] Configuring Slic3r..." + BUILD_ARGS="" + if [[ -n "$FOUND_GTK3_DEV" ]] + then + BUILD_ARGS="-DSLIC3R_GTK=3" + fi + if [[ -n "$BUILD_DEBUG" ]] + then + BUILD_ARGS="${BUILD_ARGS} -DCMAKE_BUILD_TYPE=Debug" + fi - # cmake - pushd build - if [[ -z "$FOUND_GTK3_DEV" ]] - then - cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - else - cmake .. -DSLIC3R_GTK=3 -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 - fi - # &> $ROOT/build/Build.log # Capture all command output - echo "done" - - echo "[8/9] Building Slic3r..." - + # cmake + pushd build + cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DSLIC3R_STATIC=1 ${BUILD_ARGS} + echo "done" + # make Slic3r + echo "[8/9] Building Slic3r..." make -j$NCORES Slic3r - + # make .mo make gettext_po_to_mo - - popd - # &> $ROOT/build/Build.log # Capture all command output + + popd echo "done" fi @@ -186,11 +188,11 @@ chmod 755 $ROOT/build/src/BuildLinuxImage.sh echo "[9/9] Generating Linux app..." pushd build - if [[ -n "$BUILD_IMAGE" ]] - then - $ROOT/build/src/BuildLinuxImage.sh -i - else - $ROOT/build/src/BuildLinuxImage.sh - fi -# &> $ROOT/build/Build.log # Capture all command output + if [[ -n "$BUILD_IMAGE" ]] + then + $ROOT/build/src/BuildLinuxImage.sh -i + else + $ROOT/build/src/BuildLinuxImage.sh + fi + popd echo "done" diff --git a/create_release.py b/create_release.py index f0ba649b1..4e648381b 100644 --- a/create_release.py +++ b/create_release.py @@ -42,7 +42,8 @@ with urlopen("https://api.github.com/repos/"+repo+"/actions/artifacts") as f: artifacts = json.loads(f.read().decode('utf-8')); found_win = False; found_linux = False; - found_linux_appimage = False; + found_linux_appimage_gtk2 = False; + found_linux_appimage_gtk3 = False; found_macos = False; print("there is "+ str(artifacts["total_count"])+ " artifacts in the repo"); for entry in artifacts["artifacts"]: @@ -66,19 +67,23 @@ with urlopen("https://api.github.com/repos/"+repo+"/actions/artifacts") as f: z = zipfile.ZipFile(io.BytesIO(resp.content)); z.extractall(release_path); os.rename(release_path+"/"+program_name+".dmg", release_path+"/"+program_name+"_"+version+"_macos_"+date_str+".dmg"); - if entry["name"] == "rc-"+program_name+"-AppImage.tar" and not found_linux_appimage: - found_linux_appimage = True; + if entry["name"] == "rc-"+program_name+"-gtk2.AppImage" and not found_linux_appimage_gtk2: + found_linux_appimage_gtk2 = True; + print("ask for: "+entry["archive_download_url"]); + resp = requests.get(entry["archive_download_url"], headers={'Authorization': 'token ' + github_auth_token,}, allow_redirects=True); + print("appimage: " +str(resp)); + z = zipfile.ZipFile(io.BytesIO(resp.content)); + z.extractall(release_path); + os.rename(release_path+"/"+program_name+"_ubu64.AppImage", release_path+"/"+program_name+"-ubuntu_18.04-gtk2-" + version + ".AppImage"); + if entry["name"] == "rc-"+program_name+"-gtk3.AppImage" and not found_linux_appimage_gtk3: + found_linux_appimage_gtk3 = True; print("ask for: "+entry["archive_download_url"]); resp = requests.get(entry["archive_download_url"], headers={'Authorization': 'token ' + github_auth_token,}, allow_redirects=True); print("appimage: " +str(resp)); z = zipfile.ZipFile(io.BytesIO(resp.content)); z.extractall(release_path); - my_tar = tarfile.open(release_path+"/"+program_name+"_ubu64.AppImage.tar"); - my_tar.extractall(release_path); - my_tar.close(); - os.remove(release_path+"/"+program_name+"_ubu64.AppImage.tar"); os.rename(release_path+"/"+program_name+"_ubu64.AppImage", release_path+"/"+program_name+"-ubuntu_18.04-" + version + ".AppImage"); - if entry["name"] == "rc_linux.tar" and not found_linux: + if entry["name"] == "rc_linux_gtk3.tar" and not found_linux: found_linux = True; print("ask for: "+entry["archive_download_url"]); resp = requests.get(entry["archive_download_url"], headers={'Authorization': 'token ' + github_auth_token,}, allow_redirects=True);