diff --git a/.github/workflows/ccpp_mac_rc.yml b/.github/workflows/ccpp_mac_rc.yml new file mode 100644 index 000000000..05b4b565b --- /dev/null +++ b/.github/workflows/ccpp_mac_rc.yml @@ -0,0 +1,101 @@ +name: C/C++ Nigthly macos + +on: + push: + branches: + - rc + +jobs: + build: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v2 + with: + ref: 'Nigthly' + - name: update submodule profiles + working-directory: ./resources/profiles + run: git submodule update --init + - name: change date in version + run: | + sed "s/+UNKNOWN//" version.inc > version.date.inc + mv version.date.inc version.inc + - name: mkdir in deps + run: mkdir deps/build + - name: cmake deps + working-directory: ./deps/build + run: cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" + - 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_osx_cocoau_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="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -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: update Info.plist + working-directory: ./build/src + run: sed "s/+UNKNOWN/_$(date '+%F')/" Info.plist >Info.date.plist + - name: create directory and copy into it + 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 + - 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 + echo -n -e 'APPL????\x0a' > PkgInfo + cp PkgInfo pack/Slic3r/Slic3r.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 + - 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 +# - name: signing Resources (creating CodeResources inside _CodeSignature) +# working-directory: . +# run: codesign -s Resources +# maybe i should just try to do that on a separate pc and copy the file here, more secure as a signing process. + - name: Upload artifact + uses: actions/upload-artifact@v1.0.0 + with: + name: nightly_macos.tar + path: build/Slic3r.tar + - name: Upload artifact + uses: actions/upload-artifact@v1.0.0 + with: + name: nightly_macos.dmg + path: build/Slic3r.dmg diff --git a/.github/workflows/ccpp_ubuntu_rc.yml b/.github/workflows/ccpp_ubuntu_rc.yml new file mode 100644 index 000000000..651955107 --- /dev/null +++ b/.github/workflows/ccpp_ubuntu_rc.yml @@ -0,0 +1,91 @@ +name: C/C++ Nigthly ubuntu + +on: + push: + branches: + - rc + +jobs: + build: + + runs-on: ubuntu-18.04 + + steps: + - uses: actions/checkout@v2 + with: + ref: 'Nigthly' + - name: update submodule profiles + working-directory: ./resources/profiles + run: git submodule update --init + - name: change date in version + run: sed -i "s/+UNKNOWN//" version.inc + - name: update clock + run: sudo hwclock -s + - name: update apt + 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: 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 . + - 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: Upload appimage + uses: actions/upload-artifact@v1.0.0 + with: + name: Slic3r-AppImage.tar + path: build/package/Slic3r_ubu64.AppImage.tar + diff --git a/.github/workflows/ccpp_win_rc.yml b/.github/workflows/ccpp_win_rc.yml new file mode 100644 index 000000000..3229623a2 --- /dev/null +++ b/.github/workflows/ccpp_win_rc.yml @@ -0,0 +1,112 @@ +name: C/C++ Nigthly windows x64 + +on: + push: + branches: + - rc + +jobs: + build_dep: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + with: + ref: 'Nigthly' + - uses: ilammy/msvc-dev-cmd@v1 + - name: mkdir in deps + run: mkdir deps/build + - name: cmake and make deps + working-directory: ./deps/build + run: | + cmake .. -G "Visual Studio 16 2019" -A x64 + msbuild /m ALL_BUILD.vcxproj + - name: Upload artifact + uses: actions/upload-artifact@v1.0.0 + with: + name: deps_win + path: ./deps/build/destdir/ + + build: + runs-on: windows-latest + needs: build_dep + + steps: + - uses: actions/checkout@v1 + - uses: ilammy/msvc-dev-cmd@v1 + - name: update submodule profiles + working-directory: ./resources/profiles + run: git submodule update --init + - name: change date in version + shell: powershell + run: (Get-Content version.inc) | Foreach-Object {$_ -replace "\+UNKNOWN", ("")} | Set-Content version.inc + - name: mkdir in deps directory + run: mkdir deps/destdir + - name: download deps + uses: actions/download-artifact@v1 + with: + name: deps_win + path: deps/destdir + - name: echo dir deps + run: dir deps + - name: echo dir deps destdir + run: dir deps/destdir + - name: mkdir + 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" + - name: make + working-directory: ./build + run: msbuild /m /P:Configuration=Release INSTALL.vcxproj + - name: make .mo + working-directory: ./build + run: msbuild /m /P:Configuration=Release gettext_po_to_mo.vcxproj + - name: create directory and copy into it + working-directory: ./build + run: ls + - name: create directory and copy into it + working-directory: ./build + shell: powershell + #todo: add the opengl folder + run: mkdir package + - name: copy from release + working-directory: ./build + shell: powershell + run: '(new-object System.Net.WebClient).DownloadFile("https://github.com/supermerill/Slic3r/releases/download/2.2.53.3/Slic3r_2.2.53.3_win64_20201005.zip", "Slic3r_2.2.53.3_win64_20201005.zip")' + - name: unzip + working-directory: ./build + shell: cmd + run: '"C:/Program Files/7-Zip/7z.exe" x Slic3r_2.2.53.3_win64_20201005.zip' + - name: copy missing dll content from old release + working-directory: ./build + shell: cmd + run: | + xcopy /RCYIE Slic3r_2.2.53.3_win64_20201005\*.dll package\ + xcopy /RCYIE Slic3r_2.2.53.3_win64_20201005\*.bat package\ + xcopy /RCYIE Slic3r_2.2.53.3_win64_20201005\mesa package\ + - name: copy new resources + working-directory: ./build + shell: cmd + run: xcopy /RCYIE ..\resources package\resources + - name: copy dll + working-directory: ./build + shell: cmd + run: xcopy /RCYIE src\release\*.dll package\ + - name: copy exe + working-directory: ./build + shell: cmd + run: xcopy /RCYIE src\release\*.exe package\ + - name: copy ms runtime + working-directory: ./build + shell: cmd + run: xcopy /RCYIE c:\windows\system32\VCRUNTIME140* package\ +# - name: create zip +# working-directory: ./build +# shell: cmd +# run: '"C:/Program Files/7-Zip/7z.exe" a -tzip nightly.zip *' + - name: Upload artifact + uses: actions/upload-artifact@v1.0.0 + with: + name: nightly_win64 + path: build/package/ diff --git a/BuildLinux.sh b/BuildLinux.sh new file mode 100644 index 000000000..b272e03db --- /dev/null +++ b/BuildLinux.sh @@ -0,0 +1,119 @@ +#!/bin/bash + +export ROOT=`pwd` +export NCORES=`sysctl -n hw.ncpu` + +while getopts ":ih" opt; do + case ${opt} in + i ) + export BUILD_IMAGE="1" + ;; + h ) echo "Usage: ./BuildLinux.sh [-i][-u]" + echo " -i: Generate appimage (optional)" + echo " -u: only update clock & dependency packets (optional and need sudo)" + exit 0 + ;; + esac +done + +# mkdir build +if [ ! -d "build" ] +then + mkdir build +fi + + +if [[ -n "$BUILD_IMAGE" ]] +then + echo -n "Updating linux ..." + { + hwclock -s + apt update + apt install libgtk2.0-dev libglew-dev libudev-dev libdbus-1-dev + } > $ROOT/build/Build.log # Capture all command output + echo "done" + exit 0 +fi + +echo -n "[1/9] Updating submodules..." +{ + # update submodule profiles + pushd resources/profiles + git submodule update --init + popd +} > $ROOT/build/Build.log # Capture all command output + + +echo -n "[2/9] Changing date in version..." +{ + # change date in version + sed "s/+UNKNOWN/_$(date '+%F')/" version.inc > version.date.inc + mv version.date.inc version.inc +} &> $ROOT/build/Build.log # Capture all command output +echo "done" + +# mkdir in deps +if [ ! -d "deps/build" ] +then + mkdir deps/build +fi + +echo -n "[3/9] Configuring dependencies..." +{ + # cmake deps + pushd deps/build + cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" +} &> $ROOT/build/Build.log # Capture all command output +echo "done" + +echo -n "[4/9] Building dependencies..." +{ + # make deps + make -j$NCORES +} &> $ROOT/build/Build.log # Capture all command output +echo "done" + +echo -n "[5/9] Renaming wxscintilla library..." +{ + # rename wxscintilla + pushd destdir/usr/local/lib + cp libwxscintilla-3.1.a libwx_gtk2u_scintilla-3.1.a + popd +} &> $ROOT/build/Build.log # Capture all command output +echo "done" + +echo -n "[6/9] Cleaning dependencies..." +{ + # clean deps + rm -rf dep_* + popd +} &> $ROOT/build/Build.log # Capture all command output +echo "done" + +echo -n "[7/9] Configuring Slic3r..." +{ + # cmake + pushd build + cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -DSLIC3R_STATIC=1 +} &> $ROOT/build/Build.log # Capture all command output +echo "done" + +echo -n "[8/9] Building Slic3r..." +{ + # make Slic3r + make -j$NCORES Slic3r + + # make .mo + make gettext_po_to_mo +} &> $ROOT/build/Build.log # Capture all command output +echo "done" + +echo -n "[9/9] Generating Linux app..." +{ + if [[ -n "$BUILD_IMAGE" ]] + then + $ROOT/build/BuildLinuxImage.sh -i + else + $ROOT/build/BuildLinuxImage.sh + fi +} &> $ROOT/build/Build.log # Capture all command output diff --git a/BuildMacOS.sh b/BuildMacOS.sh index 9e6f537e9..6105add8e 100755 --- a/BuildMacOS.sh +++ b/BuildMacOS.sh @@ -27,7 +27,7 @@ echo -n "[1/9] Updating submodules..." pushd resources/profiles git submodule update --init popd -} > $ROOT/build/MacOS_Build.log # Capture all command output +} > $ROOT/build/Build.log # Capture all command output echo "done" echo -n "[2/9] Changing date in version..." @@ -35,7 +35,7 @@ echo -n "[2/9] Changing date in version..." # change date in version sed "s/+UNKNOWN/_$(date '+%F')/" version.inc > version.date.inc mv version.date.inc version.inc -} &> $ROOT/build/MacOS_Build.log # Capture all command output +} &> $ROOT/build/Build.log # Capture all command output echo "done" # mkdir in deps @@ -49,14 +49,14 @@ echo -n "[3/9] Configuring dependencies..." # cmake deps pushd deps/build cmake .. -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -} &> $ROOT/build/MacOS_Build.log # Capture all command output +} &> $ROOT/build/Build.log # Capture all command output echo "done" echo -n "[4/9] Building dependencies..." { # make deps make -j$NCORES -} &> $ROOT/build/MacOS_Build.log # Capture all command output +} &> $ROOT/build/Build.log # Capture all command output echo "done" echo -n "[5/9] Renaming wxscintilla library..." @@ -65,7 +65,7 @@ echo -n "[5/9] Renaming wxscintilla library..." pushd destdir/usr/local/lib cp libwxscintilla-3.1.a libwx_osx_cocoau_scintilla-3.1.a popd -} &> $ROOT/build/MacOS_Build.log # Capture all command output +} &> $ROOT/build/Build.log # Capture all command output echo "done" echo -n "[6/9] Cleaning dependencies..." @@ -73,70 +73,30 @@ echo -n "[6/9] Cleaning dependencies..." # clean deps rm -rf dep_* popd -} &> $ROOT/build/MacOS_Build.log # Capture all command output +} &> $ROOT/build/Build.log # Capture all command output echo "done" -echo -n "[7/9] Configuring SuperSlicer..." +echo -n "[7/9] Configuring Slic3r..." { # cmake pushd build cmake .. -DCMAKE_PREFIX_PATH="$PWD/../deps/build/destdir/usr/local" -DCMAKE_OSX_DEPLOYMENT_TARGET="10.13" -DSLIC3R_STATIC=1 -} &> $ROOT/build/MacOS_Build.log # Capture all command output +} &> $ROOT/build/Build.log # Capture all command output echo "done" -echo -n "[8/9] Building SuperSlicer..." +echo -n "[8/9] Building Slic3r..." { - # make SuperSlicer + # make Slic3r make -j$NCORES Slic3r # make .mo make gettext_po_to_mo -} &> $ROOT/build/MacOS_Build.log # Capture all command output -echo "done" - -echo -n "[9/9] Generating MacOS app..." -{ - # update Info.plist - pushd src - sed "s/+UNKNOWN/_$(date '+%F')/" Info.plist >Info.date.plist - popd - - # create directory and copy into it - if [ -d "pack" ] - then - rm -rf pack/* - fi - mkdir pack - mkdir pack/SuperSlicer - mkdir pack/SuperSlicer/SuperSlicer.app - mkdir pack/SuperSlicer/SuperSlicer.app/Contents - mkdir pack/SuperSlicer/SuperSlicer.app/Contents/_CodeSignature - mkdir pack/SuperSlicer/SuperSlicer.app/Contents/Frameworks - mkdir pack/SuperSlicer/SuperSlicer.app/Contents/MacOS - - # copy Resources - cp -Rf ../resources pack/SuperSlicer/SuperSlicer.app/Contents/Resources - cp pack/SuperSlicer/SuperSlicer.app/Contents/Resources/icons/SuperSlicer.icns pack/SuperSlicer/SuperSlicer.app/Contents/resources/SuperSlicer.icns - cp src/Info.date.plist pack/SuperSlicer/SuperSlicer.app/Contents/Info.plist - echo -n -e 'APPL????\x0a' > PkgInfo - cp PkgInfo pack/SuperSlicer/SuperSlicer.app/Contents/PkgInfo - - # copy bin and do not let it lower case - cp -f src/superslicer pack/SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer - chmod u+x pack/SuperSlicer/SuperSlicer.app/Contents/MacOS/SuperSlicer -} &> $ROOT/build/MacOS_Build.log # Capture all command output +} &> $ROOT/build/Build.log # Capture all command output echo "done" if [[ -n "$BUILD_IMAGE" ]] then -echo -n "Creating DMG Image for distribution..." -{ - tar -cvf SuperSlicer.tar pack/SuperSlicer - - # create dmg - hdiutil create -ov -fs HFS+ -volname "SuperSlicer" -srcfolder "pack/SuperSlicer" temp.dmg - hdiutil convert temp.dmg -format UDZO -o SuperSlicer.dmg - popd -} &> $ROOT/build/MacOS_Build.log # Capture all command output -echo "done" + $ROOT/build/BuildMacOSImage.sh -i +else + $ROOT/build/BuildMacOSImage.sh fi diff --git a/create_release.py b/create_release.py index 52fce3fa8..36239176b 100644 --- a/create_release.py +++ b/create_release.py @@ -32,7 +32,7 @@ def get_version(): date_str = date.today().strftime('%y%m%d'); version = get_version(); print("create release for: " + str(version)); -release_path = "./release_"+str(version); +release_path = "./build/release_"+str(version); if(os.path.isdir(release_path)): rmtree(release_path); print("deleting old directory"); diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f7a8a579a..fa9bdb728 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -93,10 +93,19 @@ endif() # Create a Slic3r executable # Process mainfests for various platforms. -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/Slic3r.rc.in ${CMAKE_CURRENT_BINARY_DIR}/${SLIC3R_APP_KEY}.rc @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/gcodeviewer.rc.in ${CMAKE_CURRENT_BINARY_DIR}/${SLIC3R_APP_KEY}-gcodeviewer.rc @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/PrusaSlicer.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/${SLIC3R_APP_KEY}.manifest @ONLY) -configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/osx/Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist @ONLY) +if (WIN32) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/Slic3r.rc.in ${CMAKE_CURRENT_BINARY_DIR}/${SLIC3R_APP_KEY}.rc @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/gcodeviewer.rc.in ${CMAKE_CURRENT_BINARY_DIR}/${SLIC3R_APP_KEY}-gcodeviewer.rc @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/msw/PrusaSlicer.manifest.in ${CMAKE_CURRENT_BINARY_DIR}/${SLIC3R_APP_KEY}.manifest @ONLY) +endif () +if (APPLE) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/osx/Info.plist.in ${CMAKE_CURRENT_BINARY_DIR}/Info.plist @ONLY) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/osx/BuildMacOSImage.sh.in ${CMAKE_CURRENT_BINARY_DIR}/BuildMacOSImage.sh @ONLY) +endif () +if (NOT WIN32 AND NOT APPLE) + configure_file(${CMAKE_CURRENT_SOURCE_DIR}/platform/unix/BuildLinuxImage.sh.in ${CMAKE_CURRENT_BINARY_DIR}/BuildLinuxImage.sh @ONLY) +endif () + if (WIN32) add_library(Slic3r SHARED PrusaSlicer.cpp PrusaSlicer.hpp) else () diff --git a/src/platform/osx/BuildMacOSImage.sh.in b/src/platform/osx/BuildMacOSImage.sh.in new file mode 100644 index 000000000..15cb5af6e --- /dev/null +++ b/src/platform/osx/BuildMacOSImage.sh.in @@ -0,0 +1,63 @@ +#!/bin/bash + +export ROOT=`pwd` +export NCORES=`sysctl -n hw.ncpu` + +while getopts ":ih" opt; do + case ${opt} in + i ) + export BUILD_IMAGE="1" + ;; + h ) echo "Usage: ./BuildMacOSImage.sh [-i]" + echo " -i: Generate DMG image (optional)" + exit 0 + ;; + esac +done + +echo -n "[9/9] Generating MacOS app..." +{ + # update Info.plist + pushd src + sed "s/+UNKNOWN/_$(date '+%F')/" Info.plist >Info.date.plist + popd + + # create directory and copy into it + if [ -d "pack" ] + then + rm -rf pack/* + fi + mkdir pack + mkdir pack/@SLIC3R_APP_KEY@ + mkdir pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app + mkdir pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents + mkdir pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/_CodeSignature + mkdir pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/Frameworks + mkdir pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/MacOS + + # copy Resources + cp -Rf ../resources pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/Resources + cp pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/Resources/icons/@SLIC3R_APP_KEY@.icns pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/resources/@SLIC3R_APP_KEY@.icns + cp src/Info.date.plist pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/Info.plist + echo -n -e 'APPL????\x0a' > PkgInfo + cp PkgInfo pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/PkgInfo + + # copy bin and do not let it lower case + cp -f src/@SLIC3R_APP_CMD@ pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/MacOS/@SLIC3R_APP_KEY@ + chmod u+x pack/@SLIC3R_APP_KEY@/@SLIC3R_APP_KEY@.app/Contents/MacOS/@SLIC3R_APP_KEY@ +} &> $ROOT/build/MacOS_Build.log # Capture all command output +echo "done" + +if [[ -n "$BUILD_IMAGE" ]] +then +echo -n "Creating DMG Image for distribution..." +{ + tar -cvf @SLIC3R_APP_KEY@.tar pack/@SLIC3R_APP_KEY@ + + # create dmg + hdiutil create -ov -fs HFS+ -volname "@SLIC3R_APP_KEY@" -srcfolder "pack/@SLIC3R_APP_KEY@" temp.dmg + hdiutil convert temp.dmg -format UDZO -o @SLIC3R_APP_KEY@.dmg + popd +} &> $ROOT/build/MacOS_Build.log # Capture all command output +echo "done" +fi diff --git a/src/platform/unix/BuildLinuxImage.sh.in b/src/platform/unix/BuildLinuxImage.sh.in new file mode 100644 index 000000000..75ecadc29 --- /dev/null +++ b/src/platform/unix/BuildLinuxImage.sh.in @@ -0,0 +1,48 @@ +#!/bin/bash + +export ROOT=`pwd` +export NCORES=`sysctl -n hw.ncpu` + +while getopts ":ih" opt; do + case ${opt} in + i ) + export BUILD_IMAGE="1" + ;; + h ) echo "Usage: ./BuildLinuxImage.sh [-i]" + echo " -i: Generate DMG image (optional)" + exit 0 + ;; + esac +done + +echo -n "[9/9] Generating MacOS app..." +{ + + # create directory and copy into it + if [ -d "package" ] + then + rm -rf package/* + fi + mkdir package + mkdir package/bin + + # copy Resources + cp -Rf ../resources package/resources + cp -f src/@SLIC3R_APP_CMD@ package/bin/@SLIC3R_APP_CMD@ + + # create bin + echo -e '#!/bin/bash\nDIR=$(readlink -f "$0" | xargs dirname)\nexport LD_LIBRARY_PATH="$DIR/bin"\nexec "$DIR/bin/@SLIC3R_APP_CMD@" "$@"' >@SLIC3R_APP_CMD@ + chmod u+x @SLIC3R_APP_CMD@ + tar -cvf ../@SLIC3R_APP_KEY@.tar . +} &> $ROOT/build/MacOS_Build.log # Capture all command output +echo "done" + +if [[ -n "$BUILD_IMAGE" ]] +then +echo -n "Creating Appimage for distribution..." +{ + chmod +x ../build_appimage.sh + ../build_appimage.sh +} &> $ROOT/build/MacOS_Build.log # Capture all command output +echo "done" +fi diff --git a/version.inc b/version.inc index a2577b2a6..4fac72e29 100644 --- a/version.inc +++ b/version.inc @@ -10,7 +10,7 @@ set(SLIC3R_APP_CMD "Slic3r") # versions set(SLIC3R_VERSION "2.4") set(SLIC3R_VERSION_FULL "2.4.00.0") -set(SLIC3R_BUILD_ID "${SLIC3R_APP_KEY}_${SLIC3R_VERSION_FULL}") +set(SLIC3R_BUILD_ID "${SLIC3R_APP_KEY}_${SLIC3R_VERSION_FULL}+UNKNOWN") set(SLIC3R_RC_VERSION "2,4,00,0") set(SLIC3R_RC_VERSION_DOTS "${SLIC3R_VERSION_FULL}")