mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-24 17:26:47 +00:00
Compare commits
20
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b205a8559e | ||
|
|
0335d76d30 | ||
|
|
3e56d25f64 | ||
|
|
4c149b69eb | ||
|
|
57cb60e20f | ||
|
|
8ffe84b1dd | ||
|
|
f4268a0eec | ||
|
|
17e2adc283 | ||
|
|
d87f7e462c | ||
|
|
617df79260 | ||
|
|
0a6a42ecb5 | ||
|
|
762e474433 | ||
|
|
115d6dde46 | ||
|
|
9da2975424 | ||
|
|
7b3228d10d | ||
|
|
2de58e557b | ||
|
|
514ab02525 | ||
|
|
d7688a27d0 | ||
|
|
c2965a1336 | ||
|
|
a587859e84 |
@@ -5,7 +5,6 @@ on:
|
||||
branches:
|
||||
- main
|
||||
- release/*
|
||||
- belt-printer
|
||||
paths:
|
||||
- 'deps/**'
|
||||
- 'src/**'
|
||||
@@ -15,6 +14,7 @@ on:
|
||||
- 'resources/**'
|
||||
- ".github/workflows/build_*.yml"
|
||||
- 'scripts/flatpak/**'
|
||||
- 'snap/**'
|
||||
- 'scripts/msix/**'
|
||||
- 'tests/**'
|
||||
|
||||
@@ -30,10 +30,10 @@ on:
|
||||
- 'version.inc'
|
||||
- ".github/workflows/build_*.yml"
|
||||
- 'build_linux.sh'
|
||||
- 'build_release_vs.bat'
|
||||
- 'build_release_vs2022.bat'
|
||||
- 'build_release_macos.sh'
|
||||
- 'scripts/flatpak/**'
|
||||
- 'snap/**'
|
||||
- 'scripts/msix/**'
|
||||
- 'tests/**'
|
||||
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
# Build both arches on every event (PRs included), through the same
|
||||
# build_check_cache -> build_deps -> build_orca chain (the AppImage).
|
||||
# build_check_cache -> build_deps -> build_orca chain (AppImage + snap).
|
||||
# aarch64 always uses the GitHub-hosted arm runner (there is no arm
|
||||
# self-hosted server). amd64's empty arch is load-bearing: it keeps the
|
||||
# historical 'linux-clang' deps cache key and the unsuffixed asset names.
|
||||
@@ -77,22 +77,11 @@ jobs:
|
||||
build-deps-only: ${{ inputs.build-deps-only || false }}
|
||||
secrets: inherit
|
||||
build_windows:
|
||||
name: Build Windows ${{ matrix.arch }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- arch: x64
|
||||
os: windows-latest
|
||||
- arch: arm64
|
||||
os: windows-11-arm
|
||||
# Don't run scheduled builds on forks:
|
||||
if: ${{ !cancelled() && (github.event_name != 'schedule' || github.repository == 'OrcaSlicer/OrcaSlicer') }}
|
||||
uses: ./.github/workflows/build_check_cache.yml
|
||||
with:
|
||||
# Self-hosted runner is x64-only; ARM64 always uses the GitHub-hosted runner.
|
||||
os: ${{ (matrix.arch == 'x64' && vars.SELF_HOSTED) && 'orca-win-server' || matrix.os }}
|
||||
arch: ${{ matrix.arch }}
|
||||
os: ${{ vars.SELF_HOSTED && 'orca-win-server' || 'windows-latest' }}
|
||||
build-deps-only: ${{ inputs.build-deps-only || false }}
|
||||
force-build: ${{ github.event_name == 'schedule' }}
|
||||
secrets: inherit
|
||||
@@ -197,9 +186,6 @@ jobs:
|
||||
date:
|
||||
ver:
|
||||
ver_pure:
|
||||
# Belt-printer nightlies share the main nightly release but carry a `_belt`
|
||||
# suffix so they never overwrite the main assets.
|
||||
nightly_suffix: ${{ github.ref == 'refs/heads/belt-printer' && '_belt' || '' }}
|
||||
steps:
|
||||
- name: "Remove unneeded stuff to free disk space"
|
||||
run:
|
||||
@@ -258,12 +244,12 @@ jobs:
|
||||
name: OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
|
||||
path: '/__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak'
|
||||
- name: Deploy Flatpak to nightly release
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer')
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main'
|
||||
uses: WebFreak001/deploy-nightly@v3.2.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: /__w/OrcaSlicer/OrcaSlicer/OrcaSlicer-Linux-flatpak_${{ env.ver }}_${{ matrix.variant.arch }}.flatpak
|
||||
asset_name: OrcaSlicer-Linux-flatpak_nightly${{ env.nightly_suffix }}_${{ matrix.variant.arch }}.flatpak
|
||||
asset_name: OrcaSlicer-Linux-flatpak_nightly_${{ matrix.variant.arch }}.flatpak
|
||||
asset_content_type: application/octet-stream
|
||||
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
||||
|
||||
@@ -33,12 +33,11 @@ jobs:
|
||||
- name: set outputs
|
||||
id: set_outputs
|
||||
env:
|
||||
# Keep macOS/Windows cache keys architecture-specific. amd64 Linux passes
|
||||
# Keep macOS/Linux cache keys architecture-specific. amd64 Linux passes
|
||||
# no arch (key stays 'linux-clang', preserving the existing cache);
|
||||
# aarch64 gets its own 'linux-clang-aarch64' key.
|
||||
cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && format('windows-{0}', inputs.arch) || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }}
|
||||
# ARM64 builds use the build-arm64 tree (see build_release_vs.bat); x64/other use build.
|
||||
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || (runner.os == 'Windows' && inputs.arch == 'arm64') && '-arm64/OrcaSlicer_dep' || '/OrcaSlicer_dep' }}
|
||||
cache-os: ${{ runner.os == 'macOS' && format('macos-{0}', inputs.arch) || (runner.os == 'Windows' && 'windows' || format('linux-clang{0}', inputs.arch && format('-{0}', inputs.arch) || '')) }}
|
||||
dep-folder-name: ${{ runner.os == 'macOS' && format('/{0}', inputs.arch) || '/OrcaSlicer_dep' }}
|
||||
output-cmd: ${{ runner.os == 'Windows' && '$env:GITHUB_OUTPUT' || '"$GITHUB_OUTPUT"'}}
|
||||
run: |
|
||||
echo cache-key=${{ env.cache-os }}-cache-orcaslicer_deps-build-${{ hashFiles('deps/**') }} >> ${{ env.output-cmd }}
|
||||
|
||||
@@ -45,28 +45,11 @@ jobs:
|
||||
key: ${{ inputs.cache-key }}
|
||||
|
||||
- uses: lukka/get-cmake@latest
|
||||
# The windows-11-arm runner needs CMake <= 3.31 (handled in the next step).
|
||||
if: ${{ !(runner.os == 'Windows' && inputs.arch == 'arm64') }}
|
||||
with:
|
||||
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
|
||||
useLocalCache: true # <--= Use the local cache (default is 'false').
|
||||
useCloudCache: true
|
||||
|
||||
- name: Install CMake 3.31.x (Windows ARM64)
|
||||
# windows-11-arm ships CMake 4.x, which removed pre-3.5 policy
|
||||
# compatibility AND has incomplete ASM_ARMASM linker modules
|
||||
# (breaks Boost.Context on ARM64). Pin to the last 3.x release.
|
||||
if: runner.os == 'Windows' && inputs.arch == 'arm64'
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ver = "3.31.6"
|
||||
$url = "https://github.com/Kitware/CMake/releases/download/v$ver/cmake-$ver-windows-arm64.zip"
|
||||
Invoke-WebRequest -Uri $url -OutFile "$env:RUNNER_TEMP\cmake.zip"
|
||||
Expand-Archive -Path "$env:RUNNER_TEMP\cmake.zip" -DestinationPath "$env:RUNNER_TEMP\cmake" -Force
|
||||
$cmakeBin = "$env:RUNNER_TEMP\cmake\cmake-$ver-windows-arm64\bin"
|
||||
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
|
||||
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
|
||||
|
||||
- name: setup dev on Windows
|
||||
if: runner.os == 'Windows'
|
||||
uses: microsoft/setup-msbuild@v3
|
||||
@@ -82,50 +65,6 @@ jobs:
|
||||
shell: pwsh
|
||||
|
||||
|
||||
- name: Install MSYS2 (clangarm64) with GMP/MPFR and LLVM tools
|
||||
if: runner.os == 'Windows' && inputs.arch == 'arm64'
|
||||
uses: msys2/setup-msys2@v2
|
||||
with:
|
||||
msystem: CLANGARM64
|
||||
update: true
|
||||
install: >-
|
||||
mingw-w64-clang-aarch64-gmp
|
||||
mingw-w64-clang-aarch64-mpfr
|
||||
mingw-w64-clang-aarch64-llvm
|
||||
|
||||
- name: Stage ARM64 GMP/MPFR (no prebuilt blobs exist for win-arm64)
|
||||
# GMP/MPFR ship prebuilt x64/x86 blobs in-tree but none for ARM64.
|
||||
# Pull them from MSYS2 clangarm64 and generate MSVC import libs via
|
||||
# llvm-dlltool, then stage into deps/{GMP,MPFR}/.../win-arm64 where the
|
||||
# MSVC branch of GMP.cmake/MPFR.cmake copies them into the dep prefix.
|
||||
if: runner.os == 'Windows' && inputs.arch == 'arm64'
|
||||
shell: msys2 {0}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
BIN=/clangarm64/bin
|
||||
REPO=$(cygpath -u "$GITHUB_WORKSPACE")
|
||||
|
||||
make_import_lib() {
|
||||
local dll="$1"; local lib="$2"; local def="/tmp/${dll%.dll}.def"
|
||||
echo "EXPORTS" > "$def"
|
||||
llvm-readobj --coff-exports "$BIN/$dll" | awk '/Name: /{print $2}' >> "$def"
|
||||
llvm-dlltool -m arm64 -D "$dll" -d "$def" -l "$BIN/$lib"
|
||||
}
|
||||
|
||||
make_import_lib libgmp-10.dll libgmp-10.lib
|
||||
|
||||
# MPFR 4.x ships as libmpfr-6.dll; rename to libmpfr-4 BEFORE generating
|
||||
# the import lib so the baked-in runtime DLL name is correct.
|
||||
MPFR_DLL=$(ls $BIN/libmpfr-*.dll | head -1 | xargs basename)
|
||||
if [ "$MPFR_DLL" != "libmpfr-4.dll" ]; then cp "$BIN/$MPFR_DLL" "$BIN/libmpfr-4.dll"; fi
|
||||
make_import_lib libmpfr-4.dll libmpfr-4.lib
|
||||
|
||||
mkdir -p $REPO/deps/GMP/gmp/lib/win-arm64 $REPO/deps/MPFR/mpfr/lib/win-arm64
|
||||
cp $BIN/libgmp-10.dll $BIN/libgmp-10.lib $REPO/deps/GMP/gmp/lib/win-arm64/
|
||||
cp $BIN/libmpfr-4.dll $BIN/libmpfr-4.lib $REPO/deps/MPFR/mpfr/lib/win-arm64/
|
||||
cp /clangarm64/include/gmp.h $REPO/deps/GMP/gmp/include/
|
||||
cp /clangarm64/include/mpfr.h $REPO/deps/MPFR/mpfr/include/ || true
|
||||
|
||||
# Build Dependencies
|
||||
- name: Build on Windows
|
||||
if: runner.os == 'Windows'
|
||||
@@ -134,14 +73,8 @@ jobs:
|
||||
if (-not "${{ vars.SELF_HOSTED }}") {
|
||||
choco install strawberryperl
|
||||
}
|
||||
$arch = "${{ inputs.arch }}"
|
||||
if ($arch -eq "arm64") {
|
||||
.\build_release_vs.bat deps arm64
|
||||
.\build_release_vs.bat pack arm64
|
||||
} else {
|
||||
.\build_release_vs.bat deps
|
||||
.\build_release_vs.bat pack
|
||||
}
|
||||
.\build_release_vs.bat deps
|
||||
.\build_release_vs.bat pack
|
||||
shell: pwsh
|
||||
|
||||
- name: Build on Mac ${{ inputs.arch }}
|
||||
|
||||
@@ -29,11 +29,6 @@ jobs:
|
||||
ubuntu-ver: '2404'
|
||||
ubuntu-ver-str: '_Ubuntu2404'
|
||||
ORCA_UPDATER_SIG_KEY: ${{ secrets.ORCA_UPDATER_SIG_KEY }}
|
||||
# Branches whose builds are published to the nightly release. The
|
||||
# belt-printer branch ships alongside main but its assets carry a `_belt`
|
||||
# suffix (nightly_suffix) so they never overwrite the main nightly assets.
|
||||
deploy_nightly: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer' }}
|
||||
nightly_suffix: ${{ github.ref == 'refs/heads/belt-printer' && '_belt' || '' }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
@@ -50,28 +45,11 @@ jobs:
|
||||
fail-on-cache-miss: true
|
||||
|
||||
- uses: lukka/get-cmake@latest
|
||||
# The windows-11-arm runner needs CMake <= 3.31 (handled in the next step).
|
||||
if: ${{ !(runner.os == 'Windows' && inputs.arch == 'arm64') }}
|
||||
with:
|
||||
cmakeVersion: "~4.3.0" # use most recent 4.3.x version
|
||||
useLocalCache: true # <--= Use the local cache (default is 'false').
|
||||
useCloudCache: true
|
||||
|
||||
- name: Install CMake 3.31.x (Windows ARM64)
|
||||
# windows-11-arm ships CMake 4.x, which removed pre-3.5 policy
|
||||
# compatibility AND has incomplete ASM_ARMASM linker modules
|
||||
# (breaks Boost.Context on ARM64). Pin to the last 3.x release.
|
||||
if: runner.os == 'Windows' && inputs.arch == 'arm64'
|
||||
shell: pwsh
|
||||
run: |
|
||||
$ver = "3.31.6"
|
||||
$url = "https://github.com/Kitware/CMake/releases/download/v$ver/cmake-$ver-windows-arm64.zip"
|
||||
Invoke-WebRequest -Uri $url -OutFile "$env:RUNNER_TEMP\cmake.zip"
|
||||
Expand-Archive -Path "$env:RUNNER_TEMP\cmake.zip" -DestinationPath "$env:RUNNER_TEMP\cmake" -Force
|
||||
$cmakeBin = "$env:RUNNER_TEMP\cmake\cmake-$ver-windows-arm64\bin"
|
||||
if (-not (Test-Path "$cmakeBin\cmake.exe")) { throw "cmake.exe not found at $cmakeBin" }
|
||||
Add-Content -Path $env:GITHUB_PATH -Value $cmakeBin
|
||||
|
||||
- name: Get the version and date on Ubuntu and macOS
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
@@ -87,10 +65,14 @@ jobs:
|
||||
echo "ver_pure=$ver_pure" >> $GITHUB_ENV
|
||||
echo "date=$(date +'%Y%m%d')" >> $GITHUB_ENV
|
||||
echo "git_commit_hash=$git_commit_hash" >> $GITHUB_ENV
|
||||
# Per-arch Linux AppImage naming: amd64 keeps the historical unsuffixed
|
||||
# name (arch_suffix empty). Unused on macOS/Windows.
|
||||
# Per-arch Linux naming, computed once: amd64 keeps the historical
|
||||
# unsuffixed names (arch_suffix empty); snap_arch is snapcraft's token.
|
||||
# Unused on macOS/Windows.
|
||||
if [ '${{ inputs.arch }}' = 'aarch64' ]; then
|
||||
echo "arch_suffix=_aarch64" >> $GITHUB_ENV
|
||||
echo "snap_arch=arm64" >> $GITHUB_ENV
|
||||
else
|
||||
echo "snap_arch=amd64" >> $GITHUB_ENV
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
@@ -182,7 +164,7 @@ jobs:
|
||||
|
||||
# Thanks to RaySajuuk, it's working now
|
||||
- name: Sign app and notary
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/belt-printer' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && runner.os == 'macOS' && inputs.macos-combine-only
|
||||
working-directory: ${{ github.workspace }}
|
||||
env:
|
||||
BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }}
|
||||
@@ -238,7 +220,7 @@ jobs:
|
||||
fi
|
||||
|
||||
- name: Create DMG without notary
|
||||
if: github.ref != 'refs/heads/main' && github.ref != 'refs/heads/belt-printer' && runner.os == 'macOS' && inputs.macos-combine-only
|
||||
if: github.ref != 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
# Load the `retry` helper (retries flaky commands such as `hdiutil create`).
|
||||
@@ -284,13 +266,13 @@ jobs:
|
||||
if-no-files-found: ignore
|
||||
|
||||
- name: Deploy Mac release
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'macOS' && inputs.macos-combine-only && !vars.SELF_HOSTED
|
||||
uses: WebFreak001/deploy-nightly@v3.2.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ${{ github.workspace }}/OrcaSlicer_Mac_universal_${{ env.ver }}.dmg
|
||||
asset_name: OrcaSlicer_Mac_universal_nightly${{ env.nightly_suffix }}.dmg
|
||||
asset_name: OrcaSlicer_Mac_universal_nightly.dmg
|
||||
asset_content_type: application/octet-stream
|
||||
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
||||
|
||||
@@ -306,18 +288,6 @@ jobs:
|
||||
max_releases: 1
|
||||
|
||||
# Windows
|
||||
- name: Set Windows build variables
|
||||
if: runner.os == 'Windows'
|
||||
shell: pwsh
|
||||
run: |
|
||||
if ("${{ inputs.arch }}" -eq "arm64") {
|
||||
"BUILD_DIR=build-arm64" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
"ARCH_SUFFIX=_arm64" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
} else {
|
||||
"BUILD_DIR=build" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
"ARCH_SUFFIX=_x64" | Out-File -Append -FilePath $env:GITHUB_ENV -Encoding utf8
|
||||
}
|
||||
|
||||
- name: setup MSVC
|
||||
if: runner.os == 'Windows'
|
||||
uses: microsoft/setup-msbuild@v3
|
||||
@@ -335,28 +305,23 @@ jobs:
|
||||
# env:
|
||||
# WindowsSdkDir: 'C:\Program Files (x86)\Windows Kits\10\'
|
||||
# WindowsSDKVersion: '10.0.26100.0\'
|
||||
run: |
|
||||
$arch = "${{ inputs.arch }}"
|
||||
if ($arch -eq "arm64") { .\build_release_vs.bat slicer arm64 } else { .\build_release_vs.bat slicer }
|
||||
shell: pwsh
|
||||
run: .\build_release_vs.bat slicer
|
||||
|
||||
# NSIS is x86-only; it runs (and the installer it emits runs) under ARM64's
|
||||
# x86 emulation, packaging the native arm64 payload from build-arm64.
|
||||
- name: Create installer Win
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
working-directory: ${{ github.workspace }}/${{ env.BUILD_DIR }}
|
||||
working-directory: ${{ github.workspace }}/build
|
||||
run: |
|
||||
cpack -G NSIS
|
||||
|
||||
- name: Pack app
|
||||
if: runner.os == 'Windows'
|
||||
working-directory: ${{ github.workspace }}/${{ env.BUILD_DIR }}
|
||||
working-directory: ${{ github.workspace }}/build
|
||||
shell: cmd
|
||||
run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}_portable.zip ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer'
|
||||
run: '"C:/Program Files/7-Zip/7z.exe" a -tzip OrcaSlicer_Windows_${{ env.ver }}_portable.zip ${{ github.workspace }}/build/OrcaSlicer'
|
||||
|
||||
- name: Pack PDB
|
||||
if: runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
|
||||
working-directory: ${{ github.workspace }}/${{ env.BUILD_DIR }}/src/Release
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
working-directory: ${{ github.workspace }}/build/src/Release
|
||||
shell: cmd
|
||||
run: '"C:/Program Files/7-Zip/7z.exe" a -m0=lzma2 -mx9 Debug_PDB_${{ env.ver }}_for_developers_only.7z *.pdb'
|
||||
|
||||
@@ -364,54 +329,54 @@ jobs:
|
||||
if: runner.os == 'Windows'
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}_portable
|
||||
path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer
|
||||
name: OrcaSlicer_Windows_${{ env.ver }}_portable
|
||||
path: ${{ github.workspace }}/build/OrcaSlicer
|
||||
|
||||
- name: Upload artifacts Win installer
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}
|
||||
path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer*.exe
|
||||
name: OrcaSlicer_Windows_${{ env.ver }}
|
||||
path: ${{ github.workspace }}/build/OrcaSlicer*.exe
|
||||
|
||||
- name: Upload artifacts Win PDB
|
||||
if: runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: PDB
|
||||
path: ${{ github.workspace }}/build/src/Release/Debug_PDB_${{ env.ver }}_for_developers_only.7z
|
||||
|
||||
- name: Upload OrcaSlicer_profile_validator Win
|
||||
if: runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: OrcaSlicer_profile_validator_Windows_${{ env.ver }}
|
||||
path: ${{ github.workspace }}/build/src/Release/OrcaSlicer_profile_validator.exe
|
||||
|
||||
- name: Deploy Windows release portable
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: WebFreak001/deploy-nightly@v3.2.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_${{ env.ver }}${{ env.ARCH_SUFFIX }}_portable.zip
|
||||
asset_name: OrcaSlicer_Windows${{ env.ARCH_SUFFIX }}_nightly${{ env.nightly_suffix }}_portable.zip
|
||||
asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_${{ env.ver }}_portable.zip
|
||||
asset_name: OrcaSlicer_Windows_nightly_portable.zip
|
||||
asset_content_type: application/x-zip-compressed
|
||||
max_releases: 1
|
||||
|
||||
- name: Deploy Windows release installer
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && env.deploy_nightly == 'true' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: WebFreak001/deploy-nightly@v3.2.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_Installer_${{ env.ver }}${{ env.ARCH_SUFFIX }}.exe
|
||||
asset_name: OrcaSlicer_Windows_Installer${{ env.ARCH_SUFFIX }}_nightly${{ env.nightly_suffix }}.exe
|
||||
asset_path: ${{ github.workspace }}/build/OrcaSlicer_Windows_Installer_${{ env.ver }}.exe
|
||||
asset_name: OrcaSlicer_Windows_Installer_nightly.exe
|
||||
asset_content_type: application/x-msdownload
|
||||
max_releases: 1
|
||||
|
||||
- name: Deploy Windows OrcaSlicer_profile_validator release
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && inputs.arch != 'arm64' && !vars.SELF_HOSTED
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: WebFreak001/deploy-nightly@v3.2.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
@@ -427,9 +392,8 @@ jobs:
|
||||
shell: pwsh
|
||||
run: |
|
||||
./scripts/msix/build_msix.ps1 `
|
||||
-InstallDir "${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer" `
|
||||
-OutputPath "${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_MSIX_${{ env.ver }}${{ env.ARCH_SUFFIX }}.msix" `
|
||||
-Architecture "${{ inputs.arch }}" `
|
||||
-InstallDir "${{ github.workspace }}/build/OrcaSlicer" `
|
||||
-OutputPath "${{ github.workspace }}/build/OrcaSlicer_Windows_MSIX_${{ env.ver }}.msix" `
|
||||
-IdentityName "${{ vars.ORCA_MSIX_IDENTITY_NAME || 'OrcaSlicer.OrcaSlicer' }}" `
|
||||
-Publisher "${{ vars.ORCA_MSIX_PUBLISHER || 'CN=38F7EA55-C73B-4072-B3B2-C8E0EA15BB82' }}" `
|
||||
-PublisherDisplayName "${{ vars.ORCA_MSIX_PUBLISHER_DISPLAY_NAME || 'OrcaSlicer' }}"
|
||||
@@ -438,8 +402,8 @@ jobs:
|
||||
if: runner.os == 'Windows' && !vars.SELF_HOSTED
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: OrcaSlicer_Windows_MSIX_${{ env.ver }}${{ env.ARCH_SUFFIX }}
|
||||
path: ${{ github.workspace }}/${{ env.BUILD_DIR }}/OrcaSlicer_Windows_MSIX_${{ env.ver }}${{ env.ARCH_SUFFIX }}.msix
|
||||
name: OrcaSlicer_Windows_MSIX_${{ env.ver }}
|
||||
path: ${{ github.workspace }}/build/OrcaSlicer_Windows_MSIX_${{ env.ver }}.msix
|
||||
|
||||
# Ubuntu
|
||||
- name: Apt-Install Dependencies
|
||||
@@ -465,6 +429,37 @@ jobs:
|
||||
chmod +x "$appimage"
|
||||
if $tests; then tar -cvpf build_tests.tar build/tests; fi
|
||||
|
||||
# Build the snap right here, reusing the AppDir we just produced
|
||||
# (build/package): the compiled binary + bundled libs + resources are
|
||||
# repackaged as-is, for both amd64 and aarch64. Skipped on PRs (snapcraft
|
||||
# adds several minutes per arch). The snap is Store-only; it is never
|
||||
# attached to a GitHub release.
|
||||
- name: Free disk space for snap build
|
||||
if: runner.os == 'Linux' && !vars.SELF_HOSTED && github.event_name != 'pull_request'
|
||||
run: sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc /opt/hostedtoolcache || true
|
||||
- name: Build snap
|
||||
if: runner.os == 'Linux' && !vars.SELF_HOSTED && github.event_name != 'pull_request'
|
||||
id: snapbuild
|
||||
uses: snapcore/action-build@v1
|
||||
- name: Upload snap artifact
|
||||
if: ${{ ! env.ACT && runner.os == 'Linux' && !vars.SELF_HOSTED && github.event_name != 'pull_request' }}
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: OrcaSlicer-Linux-snap_${{ env.ver }}_${{ env.snap_arch }}.snap
|
||||
path: ${{ steps.snapbuild.outputs.snap }}
|
||||
retention-days: 5
|
||||
if-no-files-found: error
|
||||
# Nightly -> Snap Store 'edge'. NOTE: classic confinement means the Store
|
||||
# holds uploads for manual review until classic is granted (snap/README.md).
|
||||
- name: Publish snap to edge (nightly)
|
||||
if: github.repository == 'OrcaSlicer/OrcaSlicer' && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED
|
||||
uses: snapcore/action-publish@v1
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
|
||||
with:
|
||||
snap: ${{ steps.snapbuild.outputs.snap }}
|
||||
release: edge
|
||||
|
||||
# Use tar because upload-artifacts won't always preserve directory structure
|
||||
# and doesn't preserve file permissions
|
||||
- name: Upload Test Artifact
|
||||
@@ -511,13 +506,13 @@ jobs:
|
||||
path: './build/src/Release/OrcaSlicer_profile_validator'
|
||||
|
||||
- name: Deploy Ubuntu release
|
||||
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && env.deploy_nightly == 'true' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
|
||||
if: ${{ github.repository == 'OrcaSlicer/OrcaSlicer' && ! env.ACT && github.ref == 'refs/heads/main' && runner.os == 'Linux' && !vars.SELF_HOSTED }}
|
||||
uses: WebFreak001/deploy-nightly@v3.2.0
|
||||
with:
|
||||
upload_url: https://uploads.github.com/repos/OrcaSlicer/OrcaSlicer/releases/137995723/assets{?name,label}
|
||||
release_id: 137995723
|
||||
asset_path: ./build/OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_${{ env.ver }}.AppImage
|
||||
asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_nightly${{ env.nightly_suffix }}.AppImage
|
||||
asset_name: OrcaSlicer_Linux_AppImage${{ env.ubuntu-ver-str }}${{ env.arch_suffix }}_nightly.AppImage
|
||||
asset_content_type: application/octet-stream
|
||||
max_releases: 1 # optional, if there are more releases than this matching the asset_name, the oldest ones are going to be deleted
|
||||
- name: Deploy Ubuntu release
|
||||
|
||||
@@ -38,10 +38,10 @@ jobs:
|
||||
- name: Download
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
curl -L -o OrcaSlicer_profile_validator https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds/OrcaSlicer_profile_validator_Linux_Ubuntu2404_nightly
|
||||
curl -LJO https://github.com/SoftFever/Orca_tools/releases/download/1/OrcaSlicer_profile_validator
|
||||
chmod +x ./OrcaSlicer_profile_validator
|
||||
|
||||
# Validate all system profiles.
|
||||
# validate profiles
|
||||
- name: validate system profiles
|
||||
id: validate_system
|
||||
continue-on-error: true
|
||||
@@ -49,115 +49,17 @@ jobs:
|
||||
set +e
|
||||
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_system.log
|
||||
exit ${PIPESTATUS[0]}
|
||||
# For now run filament subtype check only for BBL profiles until we fix other vendors' profiles.
|
||||
- name: validate filament subtype check for BBL profiles
|
||||
id: validate_filament_subtypes
|
||||
continue-on-error: true
|
||||
run: |
|
||||
set +e
|
||||
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 -v BBL -f 2>&1 | tee ${{ runner.temp }}/validate_filament_subtypes.log
|
||||
exit ${PIPESTATUS[0]}
|
||||
|
||||
- name: validate custom presets
|
||||
id: validate_custom
|
||||
continue-on-error: true
|
||||
working-directory: ${{ github.workspace }}
|
||||
run: |
|
||||
fixtures_dir="${{ runner.temp }}/profile-fixtures"
|
||||
output_dir="${{ runner.temp }}/custom-preset-validation"
|
||||
combined_log="${{ runner.temp }}/validate_custom.log"
|
||||
summary="${output_dir}/summary.md"
|
||||
release_url="https://github.com/OrcaSlicer/OrcaSlicer-profile-validator/releases/download/fixture-archive"
|
||||
|
||||
rm -rf "${fixtures_dir}" "${output_dir}"
|
||||
mkdir -p "${fixtures_dir}" "${output_dir}"
|
||||
|
||||
curl -fsSL -o "${fixtures_dir}/manifest.json" "${release_url}/manifest.json"
|
||||
|
||||
MANIFEST_PATH="${fixtures_dir}/manifest.json" python3 <<'PY' > "${fixtures_dir}/fixtures.tsv"
|
||||
import json
|
||||
import os
|
||||
|
||||
with open(os.environ["MANIFEST_PATH"], encoding="utf-8") as fh:
|
||||
manifest = json.load(fh)
|
||||
|
||||
if isinstance(manifest, dict):
|
||||
entries = manifest.get("fixtures", [])
|
||||
else:
|
||||
entries = manifest
|
||||
|
||||
for entry in entries:
|
||||
version = entry.get("version", "")
|
||||
asset = entry.get("asset", "")
|
||||
sha256 = entry.get("asset_sha256", "")
|
||||
if not version or not asset:
|
||||
continue
|
||||
print(f"{version}\t{asset}\t{sha256}")
|
||||
PY
|
||||
|
||||
if [ ! -s "${fixtures_dir}/fixtures.tsv" ]; then
|
||||
echo "No custom preset fixtures found in ${release_url}/manifest.json" | tee "${combined_log}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
{
|
||||
echo "## Custom Preset Fixture Validation"
|
||||
echo ""
|
||||
echo "| Version | Status | Log |"
|
||||
echo "| --- | --- | --- |"
|
||||
} > "${summary}"
|
||||
|
||||
status=0
|
||||
failed_logs=()
|
||||
|
||||
while IFS=$'\t' read -r version asset expected_sha256; do
|
||||
fixture_zip="${fixtures_dir}/${asset}"
|
||||
asset_url_name="$(python3 -c 'import sys, urllib.parse; print(urllib.parse.quote(sys.argv[1], safe=""))' "${asset}")"
|
||||
profile_tree="${output_dir}/profiles-${version}"
|
||||
log_path="${output_dir}/${version}.log"
|
||||
|
||||
curl -fsSL -o "${fixture_zip}" "${release_url}/${asset_url_name}"
|
||||
|
||||
if [ -n "${expected_sha256}" ] && [ "${expected_sha256}" != "<sha256>" ]; then
|
||||
echo "${expected_sha256} ${fixture_zip}" | sha256sum -c -
|
||||
fi
|
||||
|
||||
rm -rf "${profile_tree}"
|
||||
mkdir -p "${profile_tree}"
|
||||
cp -a "${{ github.workspace }}/resources/profiles/." "${profile_tree}/"
|
||||
rm -rf "${profile_tree}/user"
|
||||
unzip -q "${fixture_zip}" -d "${profile_tree}"
|
||||
|
||||
set +e
|
||||
./OrcaSlicer_profile_validator -p "${profile_tree}" -l 2 > "${log_path}" 2>&1
|
||||
result=$?
|
||||
set -e
|
||||
|
||||
if [ "${result}" -eq 0 ]; then
|
||||
echo "| ${version} | PASS | ${version}.log |" >> "${summary}"
|
||||
else
|
||||
echo "| ${version} | FAIL | ${version}.log |" >> "${summary}"
|
||||
failed_logs+=("${log_path}")
|
||||
status=1
|
||||
fi
|
||||
done < "${fixtures_dir}/fixtures.tsv"
|
||||
|
||||
{
|
||||
cat "${summary}"
|
||||
if [ "${#failed_logs[@]}" -gt 0 ]; then
|
||||
echo ""
|
||||
echo "## Failed Fixture Logs"
|
||||
for log_path in "${failed_logs[@]}"; do
|
||||
echo ""
|
||||
echo "### $(basename "${log_path}" .log)"
|
||||
echo '```'
|
||||
head -c 12000 "${log_path}" || echo "No output captured"
|
||||
echo '```'
|
||||
done
|
||||
fi
|
||||
} | tee "${combined_log}"
|
||||
|
||||
exit "${status}"
|
||||
set +e
|
||||
curl -LJO https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds/orca_custom_preset_tests.zip
|
||||
unzip -q ./orca_custom_preset_tests.zip -d ${{ github.workspace }}/resources/profiles
|
||||
./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 2>&1 | tee ${{ runner.temp }}/validate_custom.log
|
||||
exit ${PIPESTATUS[0]}
|
||||
|
||||
- name: Prepare PR number for comment workflow
|
||||
if: ${{ always() && github.event_name == 'pull_request' }}
|
||||
@@ -166,7 +68,7 @@ jobs:
|
||||
echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt
|
||||
|
||||
- name: Prepare comment artifact
|
||||
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
|
||||
if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
|
||||
run: |
|
||||
{
|
||||
# Marker matched by check_profiles_comment.yml to delete prior comments.
|
||||
@@ -192,15 +94,6 @@ jobs:
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if [ "${{ steps.validate_filament_subtypes.outcome }}" = "failure" ]; then
|
||||
echo "### BBL Filament Subtype Validation Failed"
|
||||
echo ""
|
||||
echo '```'
|
||||
head -c 30000 ${{ runner.temp }}/validate_filament_subtypes.log || echo "No output captured"
|
||||
echo '```'
|
||||
echo ""
|
||||
fi
|
||||
|
||||
if [ "${{ steps.validate_custom.outcome }}" = "failure" ]; then
|
||||
echo "### Custom Preset Validation Failed"
|
||||
echo ""
|
||||
@@ -223,7 +116,7 @@ jobs:
|
||||
retention-days: 1
|
||||
|
||||
- name: Fail if any check failed
|
||||
if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
|
||||
if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }}
|
||||
run: |
|
||||
echo "One or more profile checks failed. See above for details."
|
||||
exit 1
|
||||
|
||||
@@ -24,7 +24,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Ask PR author for label
|
||||
uses: actions/github-script@v9
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
function isPermissionDenied(error) {
|
||||
@@ -88,7 +88,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Apply label command from PR author
|
||||
uses: actions/github-script@v9
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
function isPermissionDenied(error) {
|
||||
|
||||
@@ -17,7 +17,7 @@ on:
|
||||
required: true
|
||||
type: string
|
||||
tag:
|
||||
description: 'Tag of the draft release to upload to (e.g. v2.4.0)'
|
||||
description: 'Tag of the draft release to upload to (e.g. v2.4.0-beta)'
|
||||
required: true
|
||||
type: string
|
||||
|
||||
@@ -79,6 +79,7 @@ jobs:
|
||||
-p 'OrcaSlicer_Mac_universal_*' \
|
||||
-p 'OrcaSlicer_Linux_ubuntu_*' \
|
||||
-p 'OrcaSlicer-Linux-flatpak_*' \
|
||||
-p 'OrcaSlicer-Linux-snap_*' \
|
||||
-p 'PDB'
|
||||
echo "Downloaded artifact folders:"
|
||||
ls -1 artifacts
|
||||
@@ -92,30 +93,30 @@ jobs:
|
||||
# binaries are already unzipped. Copy the inner binary for each platform.
|
||||
# -type f is required (some artifact *folders* are named "*.flatpak").
|
||||
|
||||
# Windows installers (x64 + arm64): the .exe inside each installer
|
||||
# artifact, NOT the orca-slicer.exe in the portable app folder. CPack
|
||||
# now bakes the arch into the filename (…_x64.exe / …_arm64.exe), so
|
||||
# copy them straight through.
|
||||
find artifacts -type f -name '*.exe' -path '*OrcaSlicer_Windows_V*' ! -path '*_portable*' -exec cp -v {} upload/ \;
|
||||
# Windows installer: the .exe inside the installer artifact, NOT the
|
||||
# orca-slicer.exe that lives in the portable app folder.
|
||||
find artifacts -type f -name '*.exe' -path '*OrcaSlicer_Windows_*' ! -path '*_portable*' -exec cp -v {} upload/ \;
|
||||
# macOS universal DMG (profile-validator DMG isn't downloaded).
|
||||
find artifacts -type f -name '*.dmg' -path '*OrcaSlicer_Mac_universal_*' -exec cp -v {} upload/ \;
|
||||
# Linux AppImage.
|
||||
find artifacts -type f -name '*.AppImage' -exec cp -v {} upload/ \;
|
||||
# Flatpak bundles (x86_64 + aarch64).
|
||||
find artifacts -type f -name '*.flatpak' -exec cp -v {} upload/ \;
|
||||
# Snaps are intentionally NOT copied here: they go to the Snap Store
|
||||
# only (see the "Publish snaps to the Snap Store" step), not to the
|
||||
# GitHub release.
|
||||
# Windows debug symbols (PDB archive, for developers).
|
||||
find artifacts -type f -name 'Debug_PDB_*.7z' -exec cp -v {} upload/ \;
|
||||
|
||||
# Portable Windows builds (x64 + arm64) are unzipped folder artifacts;
|
||||
# re-zip each to its released filename (these stay .zip on the release).
|
||||
mapfile -t portable_dirs < <(find artifacts -maxdepth 1 -type d -name 'OrcaSlicer_Windows_*_portable')
|
||||
if [ ${#portable_dirs[@]} -eq 0 ]; then
|
||||
echo "::warning::Windows portable artifact not found."
|
||||
fi
|
||||
for portable_dir in "${portable_dirs[@]}"; do
|
||||
# Portable Windows build is an unzipped folder artifact; re-zip it to the
|
||||
# released filename (this one stays a .zip on the release).
|
||||
portable_dir=$(find artifacts -maxdepth 1 -type d -name 'OrcaSlicer_Windows_*_portable' | head -n1)
|
||||
if [ -n "${portable_dir:-}" ]; then
|
||||
( cd "$portable_dir" && zip -qr "$GITHUB_WORKSPACE/upload/$(basename "$portable_dir").zip" . )
|
||||
echo "Zipped portable -> $(basename "$portable_dir").zip"
|
||||
done
|
||||
else
|
||||
echo "::warning::Windows portable artifact not found."
|
||||
fi
|
||||
|
||||
echo "Assets to upload:"
|
||||
ls -lh upload
|
||||
@@ -129,3 +130,30 @@ jobs:
|
||||
gh release upload "$TAG" upload/* --repo "$GITHUB_REPOSITORY" --clobber
|
||||
echo "Uploaded to draft release: $TAG"
|
||||
gh release view "$TAG" --repo "$GITHUB_REPOSITORY" --json assets --jq '.assets[].name'
|
||||
|
||||
- name: Publish snaps to the Snap Store
|
||||
# Snaps ship to the Store only (not as release assets). Channel comes from
|
||||
# the tag suffix; nightly -> edge is handled in the build workflows.
|
||||
# NOTE: classic confinement means the Store holds uploads for manual
|
||||
# review until classic is granted (see snap/README.md).
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
mapfile -t snaps < <(find artifacts -type f -name '*.snap')
|
||||
if [ ${#snaps[@]} -eq 0 ]; then
|
||||
echo "::warning::No .snap artifacts in run $RUN_ID; skipping Snap Store publish."
|
||||
exit 0
|
||||
fi
|
||||
case "$TAG" in
|
||||
*-rc*) channel=candidate ;;
|
||||
*-beta*|*-alpha*) channel=beta ;;
|
||||
*) channel=stable ;;
|
||||
esac
|
||||
echo "Releasing $TAG to Snap Store channel: $channel"
|
||||
sudo snap install snapcraft --classic
|
||||
for s in "${snaps[@]}"; do
|
||||
echo "::group::snapcraft upload $s --release=$channel"
|
||||
snapcraft upload "$s" --release="$channel"
|
||||
echo "::endgroup::"
|
||||
done
|
||||
|
||||
+1
-4
@@ -45,7 +45,4 @@ test.js
|
||||
.clangd
|
||||
internal_docs/
|
||||
*.flatpak
|
||||
/flatpak-repo/
|
||||
# Python bytecode
|
||||
__pycache__/
|
||||
*.pyc
|
||||
/flatpak-repo/
|
||||
@@ -934,16 +934,6 @@ set (CPACK_PACKAGE_VERSION_MAJOR "${ORCA_VERSION_MAJOR}")
|
||||
set (CPACK_PACKAGE_VERSION_MINOR "${ORCA_VERSION_MINOR}")
|
||||
set (CPACK_PACKAGE_VERSION_PATCH "${ORCA_VERSION_PATCH}")
|
||||
set (CPACK_PACKAGE_FILE_NAME "OrcaSlicer_Windows_Installer_V${SoftFever_VERSION}")
|
||||
# Suffix the Windows installer with its target arch so the x64 and arm64 builds
|
||||
# produce distinct filenames (matches ARCH_SUFFIX in build_orca.yml). Same
|
||||
# CMAKE_SYSTEM_PROCESSOR mapping used by orcaslicer_copy_dlls() above.
|
||||
if (WIN32)
|
||||
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
|
||||
string (APPEND CPACK_PACKAGE_FILE_NAME "_arm64")
|
||||
else ()
|
||||
string (APPEND CPACK_PACKAGE_FILE_NAME "_x64")
|
||||
endif ()
|
||||
endif ()
|
||||
set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Orca Slicer is an open source slicer for FDM printers")
|
||||
set (CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/OrcaSlicer/OrcaSlicer")
|
||||
set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
|
||||
|
||||
@@ -159,6 +159,28 @@ flatpak run com.orcaslicer.OrcaSlicer
|
||||
|
||||
It can also be installed through graphical software managers (KDE Discover, GNOME Software, etc.) when Flathub is enabled. Search for **OrcaSlicer** in your software center.
|
||||
|
||||
### Snap Store
|
||||
|
||||
OrcaSlicer is available from the Snap Store:
|
||||
|
||||
[](https://snapcraft.io/orcaslicer)
|
||||
|
||||
```shell
|
||||
sudo snap install orcaslicer --classic
|
||||
```
|
||||
|
||||
Use a different channel for pre-releases or bleeding-edge builds:
|
||||
|
||||
```shell
|
||||
sudo snap install orcaslicer --classic --candidate # release candidates (vX.Y.Z-rc)
|
||||
sudo snap install orcaslicer --classic --beta # alpha / beta pre-releases
|
||||
sudo snap install orcaslicer --classic --edge # nightly builds
|
||||
```
|
||||
|
||||
The snap uses classic confinement, so it has full hardware and filesystem access just like the
|
||||
AppImage — including USB/serial printers, removable media, network shares, and 3D mice
|
||||
(3Dconnexion SpaceMouse via `spacenavd`). No extra setup is required after install.
|
||||
|
||||
### AppImage
|
||||
|
||||
AppImages are published for both **x86_64** and **aarch64** (ARM64). Pick the file matching your CPU — the ARM64 build has `aarch64` in its name (e.g. `OrcaSlicer_Linux_AppImage_Ubuntu2404_aarch64_*.AppImage`).
|
||||
|
||||
+7
-20
@@ -3,17 +3,6 @@
|
||||
set WP=%CD%
|
||||
set _START_TIME=%TIME%
|
||||
|
||||
@REM Default target architecture to the host CPU arch; override by passing
|
||||
@REM "x64" or "arm64" as an argument. PROCESSOR_ARCHITEW6432 covers a 32-bit
|
||||
@REM shell running on a 64-bit OS, where PROCESSOR_ARCHITECTURE reads "x86".
|
||||
set arch=x64
|
||||
if /I "%PROCESSOR_ARCHITECTURE%"=="ARM64" set arch=ARM64
|
||||
if /I "%PROCESSOR_ARCHITEW6432%"=="ARM64" set arch=ARM64
|
||||
if /I "%1"=="arm64" set arch=ARM64
|
||||
if /I "%2"=="arm64" set arch=ARM64
|
||||
if /I "%1"=="x64" set arch=x64
|
||||
if /I "%2"=="x64" set arch=x64
|
||||
|
||||
@REM Check for Ninja Multi-Config option (-x)
|
||||
set USE_NINJA=0
|
||||
for %%a in (%*) do (
|
||||
@@ -79,13 +68,12 @@ echo Using CMake generator: %CMAKE_GENERATOR%
|
||||
|
||||
@REM Pack deps
|
||||
if "%1"=="pack" (
|
||||
setlocal ENABLEDELAYEDEXPANSION
|
||||
setlocal ENABLEDELAYEDEXPANSION
|
||||
cd %WP%/deps/build
|
||||
if "%arch%"=="ARM64" cd %WP%/deps/build-arm64
|
||||
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do set build_date=%%c%%b%%a
|
||||
echo packing deps: OrcaSlicer_dep_win-!arch!_!build_date!_vs!VS_VERSION!.zip
|
||||
echo packing deps: OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip
|
||||
|
||||
%WP%/tools/7z.exe a OrcaSlicer_dep_win-!arch!_!build_date!_vs!VS_VERSION!.zip OrcaSlicer_dep
|
||||
%WP%/tools/7z.exe a OrcaSlicer_dep_win64_!build_date!_vs!VS_VERSION!.zip OrcaSlicer_dep
|
||||
goto :done
|
||||
)
|
||||
|
||||
@@ -107,10 +95,9 @@ if "%debug%"=="ON" (
|
||||
set build_dir=build
|
||||
)
|
||||
)
|
||||
if "%arch%"=="ARM64" set build_dir=%build_dir%-arm64
|
||||
echo build type set to %build_type%, arch=%arch%
|
||||
echo build type set to %build_type%
|
||||
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
cd deps
|
||||
mkdir %build_dir%
|
||||
cd %build_dir%
|
||||
@@ -129,7 +116,7 @@ if "%USE_NINJA%"=="1" (
|
||||
cmake ../ -G %CMAKE_GENERATOR% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target deps
|
||||
) else (
|
||||
cmake ../ -G %CMAKE_GENERATOR% -A %arch% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake ../ -G %CMAKE_GENERATOR% -A x64 -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target deps -- -m
|
||||
)
|
||||
@echo off
|
||||
@@ -148,7 +135,7 @@ if "%USE_NINJA%"=="1" (
|
||||
cmake .. -G %CMAKE_GENERATOR% -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target ALL_BUILD
|
||||
) else (
|
||||
cmake .. -G %CMAKE_GENERATOR% -A %arch% -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake .. -G %CMAKE_GENERATOR% -A x64 -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target ALL_BUILD -- -m
|
||||
)
|
||||
@echo off
|
||||
|
||||
@@ -15,18 +15,10 @@ if "%1"=="pack" (
|
||||
|
||||
set debug=OFF
|
||||
set debuginfo=OFF
|
||||
@REM Default target architecture to the host CPU arch; override with x64/arm64 arg.
|
||||
set arch=x64
|
||||
if /I "%PROCESSOR_ARCHITECTURE%"=="ARM64" set arch=ARM64
|
||||
if /I "%PROCESSOR_ARCHITEW6432%"=="ARM64" set arch=ARM64
|
||||
if "%1"=="debug" set debug=ON
|
||||
if "%2"=="debug" set debug=ON
|
||||
if "%1"=="debuginfo" set debuginfo=ON
|
||||
if "%2"=="debuginfo" set debuginfo=ON
|
||||
if /I "%1"=="arm64" set arch=ARM64
|
||||
if /I "%2"=="arm64" set arch=ARM64
|
||||
if /I "%1"=="x64" set arch=x64
|
||||
if /I "%2"=="x64" set arch=x64
|
||||
if "%debug%"=="ON" (
|
||||
set build_type=Debug
|
||||
set build_dir=build-dbg
|
||||
@@ -39,8 +31,7 @@ if "%debug%"=="ON" (
|
||||
set build_dir=build
|
||||
)
|
||||
)
|
||||
if "%arch%"=="ARM64" set build_dir=%build_dir%-arm64
|
||||
echo build type set to %build_type%, arch=%arch%
|
||||
echo build type set to %build_type%
|
||||
|
||||
setlocal DISABLEDELAYEDEXPANSION
|
||||
cd deps
|
||||
@@ -57,7 +48,7 @@ echo "building deps.."
|
||||
echo on
|
||||
REM Set minimum CMake policy to avoid <3.5 errors
|
||||
set CMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||
cmake ../ -G "Visual Studio 17 2022" -A %arch% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake ../ -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target deps -- -m
|
||||
@echo off
|
||||
|
||||
@@ -71,7 +62,7 @@ cd %build_dir%
|
||||
|
||||
echo on
|
||||
set CMAKE_POLICY_VERSION_MINIMUM=3.5
|
||||
cmake .. -G "Visual Studio 17 2022" -A %arch% -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake .. -G "Visual Studio 17 2022" -A x64 -DORCA_TOOLS=ON %SIG_FLAG% -DCMAKE_BUILD_TYPE=%build_type%
|
||||
cmake --build . --config %build_type% --target ALL_BUILD -- -m
|
||||
@echo off
|
||||
cd ..
|
||||
|
||||
@@ -124,8 +124,6 @@ endif()
|
||||
|
||||
if("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64" OR "${CMAKE_GENERATOR}" MATCHES "Win64")
|
||||
set(_arch "x64")
|
||||
elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "ARM64")
|
||||
set(_arch "x64") # GLEW ships one header set; ARM64 uses the x64 import path
|
||||
else()
|
||||
set(_arch "Win32")
|
||||
endif()
|
||||
|
||||
Vendored
+1
-10
@@ -10,21 +10,13 @@ if (APPLE AND CMAKE_OSX_ARCHITECTURES)
|
||||
set(_context_arch_line "-DBOOST_CONTEXT_ARCHITECTURE:STRING=${CMAKE_OSX_ARCHITECTURES}")
|
||||
endif ()
|
||||
|
||||
# Windows ARM64: Boost.Context's default fcontext implementation assembles .asm
|
||||
# via armasm64, which trips a CMake ASM_ARMASM linker-module bug under the VS
|
||||
# generator. The winfib implementation (Windows Fiber API) avoids assembly while
|
||||
# keeping the Boost::context target that Boost.Asio's stackful coroutines need.
|
||||
set(_context_impl_line "")
|
||||
if (MSVC AND "${DEPS_ARCH}" STREQUAL "arm64")
|
||||
set(_context_impl_line "-DBOOST_CONTEXT_IMPLEMENTATION:STRING=winfib")
|
||||
endif ()
|
||||
|
||||
set(_options "")
|
||||
if (MSVC AND DEP_DEBUG)
|
||||
set(_options "FORWARD_CONFIG")
|
||||
endif ()
|
||||
|
||||
orcaslicer_add_cmake_project(Boost
|
||||
${_options}
|
||||
URL "https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz"
|
||||
URL_HASH SHA256=4d27e9efed0f6f152dc28db6430b9d3dfb40c0345da7342eaa5a987dde57bd95
|
||||
LIST_SEPARATOR |
|
||||
@@ -36,7 +28,6 @@ orcaslicer_add_cmake_project(Boost
|
||||
-DBOOST_IOSTREAMS_ENABLE_ZSTD:BOOL=OFF
|
||||
"${_context_abi_line}"
|
||||
"${_context_arch_line}"
|
||||
"${_context_impl_line}"
|
||||
)
|
||||
|
||||
set(DEP_Boost_DEPENDS ZLIB)
|
||||
Vendored
+14
-6
@@ -155,17 +155,25 @@ if (NOT _is_multi AND NOT CMAKE_BUILD_TYPE)
|
||||
endif ()
|
||||
|
||||
function(orcaslicer_add_cmake_project projectname)
|
||||
cmake_parse_arguments(P_ARGS "" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
|
||||
cmake_parse_arguments(P_ARGS "FORWARD_CONFIG" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
|
||||
|
||||
set(_configs_line -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
|
||||
if (_is_multi OR MSVC)
|
||||
if (ORCA_INCLUDE_DEBUG_INFO AND NOT DEP_DEBUG)
|
||||
if (P_ARGS_FORWARD_CONFIG)
|
||||
set(_configs_line -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
|
||||
elseif (ORCA_INCLUDE_DEBUG_INFO AND NOT DEP_DEBUG)
|
||||
set(_configs_line "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO} -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
|
||||
else ()
|
||||
set(_configs_line "")
|
||||
endif ()
|
||||
endif ()
|
||||
|
||||
if (P_ARGS_FORWARD_CONFIG)
|
||||
set(_target_config "$<CONFIG>")
|
||||
else()
|
||||
set(_target_config "Release")
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
set(_gen CMAKE_GENERATOR "${DEP_MSVC_GEN}" CMAKE_GENERATOR_PLATFORM "${DEP_PLATFORM}")
|
||||
else()
|
||||
@@ -208,8 +216,8 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
|
||||
${DEP_CMAKE_OPTS}
|
||||
${P_ARGS_CMAKE_ARGS}
|
||||
${P_ARGS_UNPARSED_ARGUMENTS}
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release -- ${_build_j}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config Release
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${_target_config} -- ${_build_j}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${_target_config}
|
||||
)
|
||||
|
||||
if (FLATPAK)
|
||||
@@ -251,8 +259,8 @@ else()
|
||||
${DEP_CMAKE_OPTS}
|
||||
${P_ARGS_CMAKE_ARGS}
|
||||
${P_ARGS_UNPARSED_ARGUMENTS}
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config Release -- ${_build_j}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config Release
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${_target_config} -- ${_build_j}
|
||||
INSTALL_COMMAND ${CMAKE_COMMAND} --build . --target install --config ${_target_config}
|
||||
)
|
||||
|
||||
endif()
|
||||
|
||||
Vendored
+6
@@ -1,4 +1,10 @@
|
||||
set(_options "")
|
||||
if (MSVC AND DEP_DEBUG)
|
||||
set(_options "FORWARD_CONFIG")
|
||||
endif ()
|
||||
|
||||
orcaslicer_add_cmake_project(Draco
|
||||
${_options}
|
||||
URL https://github.com/google/draco/archive/refs/tags/1.5.7.zip
|
||||
URL_HASH SHA256=27b72ba2d5ff3d0a9814ad40d4cb88f8dc89a35491c0866d952473f8f9416b77
|
||||
)
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Vendored
+6
-3
@@ -1,9 +1,11 @@
|
||||
# Intel IPP / IPP-ICV is x86/x64 only — there is no ARM64 build, so enabling it
|
||||
# leaves ~200 unresolved ippicv* externals at link time on Windows ARM64.
|
||||
if (MSVC AND NOT "${DEPS_ARCH}" STREQUAL "arm64")
|
||||
if (MSVC)
|
||||
set(_use_IPP "-DWITH_IPP=ON")
|
||||
if (DEP_DEBUG)
|
||||
set(_options "FORWARD_CONFIG")
|
||||
endif ()
|
||||
else ()
|
||||
set(_use_IPP "-DWITH_IPP=OFF")
|
||||
set(_options "")
|
||||
endif ()
|
||||
|
||||
if (IN_GIT_REPO)
|
||||
@@ -11,6 +13,7 @@ if (IN_GIT_REPO)
|
||||
endif ()
|
||||
|
||||
orcaslicer_add_cmake_project(OpenCV
|
||||
${_options}
|
||||
URL https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
|
||||
URL_HASH SHA256=1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
|
||||
PATCH_COMMAND git apply ${OpenCV_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-vs.patch ${CMAKE_CURRENT_LIST_DIR}/0002-clang19-macos.patch
|
||||
|
||||
Vendored
-12
@@ -32,17 +32,6 @@ else()
|
||||
|
||||
if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||
set(_patch_cmd ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OpenEXR-GCC13.patch)
|
||||
elseif (MSVC AND "${DEPS_ARCH}" STREQUAL "arm64")
|
||||
# Windows ARM64: OpenEXR 2.5.5 hard-codes IMF_HAVE_SSE2 for any MSVC
|
||||
# (ImfSimd.h: `_MSC_VER >= 1300`), pulling in <emmintrin.h> (x86-only) -> C1189.
|
||||
# Patch the header to require an x86 target, and force the SSE cache vars off.
|
||||
set(_patch_cmd ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_LIST_DIR}/patch_openexr_arm64.cmake)
|
||||
set(_openexr_arm64_args
|
||||
-DOPENEXR_IMF_HAVE_SSE2:BOOL=OFF
|
||||
-DOPENEXR_IMF_HAVE_SSSE3:BOOL=OFF
|
||||
-DILMBASE_HAVE_SSE:BOOL=OFF
|
||||
-DILMBASE_FORCE_DISABLE_INTEL_SSE:BOOL=ON
|
||||
)
|
||||
else ()
|
||||
set(_patch_cmd "")
|
||||
endif ()
|
||||
@@ -60,7 +49,6 @@ orcaslicer_add_cmake_project(OpenEXR
|
||||
-DPYILMBASE_ENABLE:BOOL=OFF
|
||||
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
|
||||
-DOPENEXR_BUILD_UTILS:BOOL=OFF
|
||||
${_openexr_arm64_args}
|
||||
)
|
||||
endif()
|
||||
|
||||
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
# Applied as PATCH_COMMAND for OpenEXR 2.5.5 on Windows ARM64.
|
||||
#
|
||||
# Root cause of the ARM64 build failure: OpenEXR/IlmImf/ImfSimd.h hard-codes
|
||||
# #if defined __SSE2__ || (_MSC_VER >= 1300 && !_M_CEE_PURE)
|
||||
# #define IMF_HAVE_SSE2 1
|
||||
# #endif
|
||||
# The `_MSC_VER >= 1300` arm is true for *every* MSVC, including ARM64, so
|
||||
# IMF_HAVE_SSE2 gets defined and <emmintrin.h> (an x86-only header) is pulled
|
||||
# in -> error C1189. This is a pure-preprocessor decision, so no CMake cache
|
||||
# variable can suppress it. Patch the header to also require an x86 target.
|
||||
|
||||
set(_simd "OpenEXR/IlmImf/ImfSimd.h")
|
||||
if(EXISTS "${_simd}")
|
||||
file(READ "${_simd}" _content)
|
||||
set(_old "#if defined __SSE2__ || (_MSC_VER >= 1300 && !_M_CEE_PURE)")
|
||||
set(_new "#if (defined __SSE2__ || (_MSC_VER >= 1300 && !_M_CEE_PURE)) && (defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__x86_64__))")
|
||||
if(_content MATCHES "_M_IX86")
|
||||
message(STATUS "[ARM64 patch] ImfSimd.h already guarded")
|
||||
else()
|
||||
string(REPLACE "${_old}" "${_new}" _patched "${_content}")
|
||||
if(_patched STREQUAL _content)
|
||||
message(FATAL_ERROR "[ARM64 patch] Failed to match SSE2 guard in ${_simd}")
|
||||
endif()
|
||||
file(WRITE "${_simd}" "${_patched}")
|
||||
message(STATUS "[ARM64 patch] Guarded IMF_HAVE_SSE2 with x86 arch check in ${_simd}")
|
||||
endif()
|
||||
else()
|
||||
message(FATAL_ERROR "[ARM64 patch] Not found: ${_simd}")
|
||||
endif()
|
||||
Vendored
+1
-5
@@ -6,11 +6,7 @@ if(DEFINED OPENSSL_ARCH)
|
||||
set(_cross_arch ${OPENSSL_ARCH})
|
||||
else()
|
||||
if(WIN32)
|
||||
if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "ARM64")
|
||||
set(_cross_arch "VC-WIN64-ARM")
|
||||
else()
|
||||
set(_cross_arch "VC-WIN64A")
|
||||
endif()
|
||||
set(_cross_arch "VC-WIN64A")
|
||||
elseif(APPLE)
|
||||
set(_cross_arch "darwin64-${CMAKE_OSX_ARCHITECTURES}-cc")
|
||||
endif()
|
||||
|
||||
@@ -267,7 +267,7 @@ void ImGui::Text(const char* fmt, ...)
|
||||
void ImGui::TextCentered(const char* text, ...)
|
||||
{
|
||||
va_list vaList;
|
||||
va_start(vaList, text);
|
||||
va_start(vaList,&text);
|
||||
|
||||
float font_size = ImGui::GetFontSize() * strlen(text) / 2;
|
||||
ImGui::SameLine(ImGui::GetCursorPos().x / 2 - font_size + (font_size / 2));
|
||||
|
||||
@@ -1123,18 +1123,17 @@ private:
|
||||
|
||||
std::vector<RawShape> objs,excludes;
|
||||
for (const Item &item : items_) {
|
||||
if (item.isFixed()) continue;
|
||||
objs.push_back(item.transformedShape());
|
||||
if (item.isFixed())
|
||||
excludes.push_back(item.transformedShape());
|
||||
else
|
||||
objs.push_back(item.transformedShape());
|
||||
}
|
||||
if (objs.empty())
|
||||
return;
|
||||
// Without fixed items this inner-fit NFP can exceed clipper's range and crash MSVC.
|
||||
if (!excludes.empty())
|
||||
{ // find a best position inside NFP of fixed items (excluded regions), so the center of pile is cloest to bed center
|
||||
RawShape objs_convex_hull = sl::convexHull(objs);
|
||||
for (const Item &item : items_) {
|
||||
if (item.isFixed()) {
|
||||
excludes.push_back(item.transformedShape());
|
||||
}
|
||||
}
|
||||
|
||||
auto nfps = calcnfp(objs_convex_hull, excludes, bbin, Lvl<MaxNfpLevel::value>());
|
||||
if (nfps.empty()) {
|
||||
|
||||
+1417
-3851
File diff suppressed because it is too large
Load Diff
+3643
-9028
File diff suppressed because it is too large
Load Diff
+3175
-7322
File diff suppressed because it is too large
Load Diff
+4105
-10523
File diff suppressed because it is too large
Load Diff
+1862
-5036
File diff suppressed because it is too large
Load Diff
+4048
-10640
File diff suppressed because it is too large
Load Diff
+3729
-10768
File diff suppressed because it is too large
Load Diff
+3349
-8287
File diff suppressed because it is too large
Load Diff
+3793
-9785
File diff suppressed because it is too large
Load Diff
+2761
-6203
File diff suppressed because it is too large
Load Diff
+3191
-7373
File diff suppressed because it is too large
Load Diff
+3902
-9071
File diff suppressed because it is too large
Load Diff
+4422
-9922
File diff suppressed because it is too large
Load Diff
+3658
-9001
File diff suppressed because it is too large
Load Diff
+3528
-9083
File diff suppressed because it is too large
Load Diff
+3452
-8378
File diff suppressed because it is too large
Load Diff
+4519
-9777
File diff suppressed because it is too large
Load Diff
+1267
-1095
File diff suppressed because it is too large
Load Diff
+3246
-7819
File diff suppressed because it is too large
Load Diff
+3112
-7323
File diff suppressed because it is too large
Load Diff
+3686
-8139
File diff suppressed because it is too large
Load Diff
+2951
-5294
File diff suppressed because it is too large
Load Diff
+2535
-5605
File diff suppressed because it is too large
Load Diff
@@ -146,16 +146,16 @@ text = Fine-tuning for flow rate\nDid you know that flow rate can be fine-tuned
|
||||
text = Split your prints into plates\nDid you know that you can split a model that has a lot of parts into individual plates ready to print? This will simplify the process of keeping track of all the parts.
|
||||
|
||||
[hint:Speed up your print with Adaptive Layer Height]
|
||||
text = Speed up your print with Adaptive Layer Height\nDid you know that you can print a model even faster, by using the Adaptive Layer Height option? Check it out!
|
||||
text = Speed up your print with Adaptive Layer Height\nDid you know that you can print a model even faster by using the Adaptive Layer Height option? Check it out!
|
||||
|
||||
[hint:Support painting]
|
||||
text = Support painting\nDid you know that you can paint the location of your supports? This feature makes it easy to place the support material only on the sections of the model that actually need it.
|
||||
|
||||
[hint:Different types of supports]
|
||||
text = Different types of supports\nDid you know that you can choose from multiple types of supports? Tree supports work great for organic models, while saving filament and improving print speed. Check them out!
|
||||
text = Different types of supports\nDid you know that you can choose from multiple types of supports? Tree supports work great for organic models while saving filament and improving print speed. Check them out!
|
||||
|
||||
[hint:Printing Silk Filament]
|
||||
text = Printing Silk Filament\nDid you know that Silk filament needs special consideration to print it successfully? Higher temperature and lower speed are always recommended for the best results.
|
||||
text = Printing Silk Filament\nDid you know that Silk filament needs special consideration to print successfully? A higher temperature and lower speed are always recommended for the best results.
|
||||
|
||||
[hint:Brim for better adhesion]
|
||||
text = Brim for better adhesion\nDid you know that when printed models have a small contact interface with the printing surface, it's recommended to use a brim?
|
||||
@@ -167,13 +167,13 @@ text = Set parameters for multiple objects\nDid you know that you can set slicin
|
||||
text = Stack objects\nDid you know that you can stack objects as a whole one?
|
||||
|
||||
[hint:Flush into support/objects/infill]
|
||||
text = Flush into support/objects/infill\nDid you know that you can reduce wasted filament by flushing it into support/objects/infill during filament change?
|
||||
text = Flush into support/objects/infill\nDid you know that you can reduce wasted filament by flushing it into support/objects/infill during filament changes?
|
||||
|
||||
[hint:Improve strength]
|
||||
text = Improve strength\nDid you know that you can use more wall loops and higher sparse infill density to improve the strength of the model?
|
||||
|
||||
[hint:When do you need to print with the printer door opened]
|
||||
text = When do you need to print with the printer door opened?\nDid you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? More info about this in the Wiki.
|
||||
text = When do you need to print with the printer door opened?\nDid you know that opening the printer door can reduce the probability of extruder/hotend clogging when printing lower temperature filament with a higher enclosure temperature? There is more info about this in the Wiki.
|
||||
|
||||
[hint:Avoid warping]
|
||||
text = Avoid warping\nDid you know that when printing materials that are prone to warping such as ABS, appropriately increasing the heatbed temperature can reduce the probability of warping?
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Afinia",
|
||||
"version": "02.04.00.02",
|
||||
"version": "02.04.00.00",
|
||||
"force_update": "0",
|
||||
"description": "Afinia configurations",
|
||||
"machine_model_list": [
|
||||
@@ -124,6 +124,14 @@
|
||||
"name": "fdm_filament_tpu",
|
||||
"sub_path": "filament/fdm_filament_tpu.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia ABS",
|
||||
"sub_path": "filament/Afinia ABS.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia ABS+",
|
||||
"sub_path": "filament/Afinia ABS+.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia ABS+@HS",
|
||||
"sub_path": "filament/Afinia ABS+@HS.json"
|
||||
@@ -132,18 +140,34 @@
|
||||
"name": "Afinia ABS@HS",
|
||||
"sub_path": "filament/Afinia ABS@HS.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia Value ABS",
|
||||
"sub_path": "filament/Afinia Value ABS.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia Value ABS@HS",
|
||||
"sub_path": "filament/Afinia Value ABS@HS.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia PLA",
|
||||
"sub_path": "filament/Afinia PLA.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia PLA@HS",
|
||||
"sub_path": "filament/Afinia PLA@HS.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia Value PLA",
|
||||
"sub_path": "filament/Afinia Value PLA.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia Value PLA@HS",
|
||||
"sub_path": "filament/Afinia Value PLA@HS.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia TPU",
|
||||
"sub_path": "filament/Afinia TPU.json"
|
||||
},
|
||||
{
|
||||
"name": "Afinia TPU@HS",
|
||||
"sub_path": "filament/Afinia TPU@HS.json"
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFB00",
|
||||
"setting_id": "GFSB00",
|
||||
"name": "Afinia ABS+",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_filament_abs",
|
||||
"filament_flow_ratio": [
|
||||
"0.95"
|
||||
],
|
||||
"filament_cost": [
|
||||
"24.99"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Afinia"
|
||||
],
|
||||
"fan_max_speed": [
|
||||
"60"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"16"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"275"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"275"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"12"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Afinia H400 Pro 0.4 nozzle",
|
||||
"Afinia H400 Pro 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFB00_01",
|
||||
"setting_id": "wAJTMxtCY7EoavRi",
|
||||
"setting_id": "GFSB00",
|
||||
"name": "Afinia ABS+@HS",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFB00",
|
||||
"setting_id": "GFSB00",
|
||||
"name": "Afinia ABS",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_filament_abs",
|
||||
"filament_flow_ratio": [
|
||||
"0.95"
|
||||
],
|
||||
"filament_cost": [
|
||||
"24.99"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Afinia"
|
||||
],
|
||||
"fan_max_speed": [
|
||||
"60"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"16"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"12"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Afinia H400 Pro 0.4 nozzle",
|
||||
"Afinia H400 Pro 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFB00_01",
|
||||
"setting_id": "qCDnb2iBaz4hd4vX",
|
||||
"setting_id": "GFSB00",
|
||||
"name": "Afinia ABS@HS",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFA00",
|
||||
"setting_id": "GFSA00",
|
||||
"name": "Afinia PLA",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_filament_pla",
|
||||
"filament_cost": [
|
||||
"24.99"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.26"
|
||||
],
|
||||
"filament_flow_ratio": [
|
||||
"0.98"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"21"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Afinia"
|
||||
],
|
||||
"filament_long_retractions_when_cut": [
|
||||
"1"
|
||||
],
|
||||
"filament_retraction_distances_when_cut": [
|
||||
"18"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Afinia H400 Pro 0.4 nozzle",
|
||||
"Afinia H400 Pro 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFA00_01",
|
||||
"setting_id": "N3sCgjdjvp6FTtw9",
|
||||
"setting_id": "GFSA00",
|
||||
"name": "Afinia PLA@HS",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"name": "Afinia TPU",
|
||||
"inherits": "fdm_filament_tpu",
|
||||
"from": "system",
|
||||
"filament_id": "GFU01",
|
||||
"instantiation": "true",
|
||||
"filament_vendor": [
|
||||
"Afinia"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.22"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"230"
|
||||
],
|
||||
"filament_cost": [
|
||||
"41.99"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"230"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Afinia H400 Pro 0.4 nozzle",
|
||||
"Afinia H400 Pro 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -3,7 +3,6 @@
|
||||
"name": "Afinia TPU@HS",
|
||||
"inherits": "fdm_filament_tpu",
|
||||
"from": "system",
|
||||
"setting_id": "zUqTgAEbqTN1EdRl",
|
||||
"filament_id": "GFU01_01",
|
||||
"instantiation": "true",
|
||||
"filament_vendor": [
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFB00",
|
||||
"setting_id": "GFSB00",
|
||||
"name": "Afinia Value ABS",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_filament_abs",
|
||||
"filament_flow_ratio": [
|
||||
"0.95"
|
||||
],
|
||||
"filament_cost": [
|
||||
"24.99"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Afinia"
|
||||
],
|
||||
"fan_max_speed": [
|
||||
"60"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"16"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"245"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"245"
|
||||
],
|
||||
"slow_down_layer_time": [
|
||||
"12"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Afinia H400 Pro 0.4 nozzle",
|
||||
"Afinia H400 Pro 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFB00_01",
|
||||
"setting_id": "OxIiEYjbhEvSykaQ",
|
||||
"setting_id": "GFSB00",
|
||||
"name": "Afinia Value ABS@HS",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFA00",
|
||||
"setting_id": "GFSA00",
|
||||
"name": "Afinia Value PLA",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
"inherits": "fdm_filament_pla",
|
||||
"filament_cost": [
|
||||
"24.99"
|
||||
],
|
||||
"filament_density": [
|
||||
"1.26"
|
||||
],
|
||||
"filament_flow_ratio": [
|
||||
"0.98"
|
||||
],
|
||||
"filament_max_volumetric_speed": [
|
||||
"21"
|
||||
],
|
||||
"filament_vendor": [
|
||||
"Afinia"
|
||||
],
|
||||
"filament_long_retractions_when_cut": [
|
||||
"1"
|
||||
],
|
||||
"filament_retraction_distances_when_cut": [
|
||||
"18"
|
||||
],
|
||||
"nozzle_temperature": [
|
||||
"190"
|
||||
],
|
||||
"nozzle_temperature_initial_layer": [
|
||||
"190"
|
||||
],
|
||||
"compatible_printers": [
|
||||
"Afinia H400 Pro 0.4 nozzle",
|
||||
"Afinia H400 Pro 0.6 nozzle"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"type": "filament",
|
||||
"filament_id": "GFA00_01",
|
||||
"setting_id": "BASsUdyvElEVJ9AA",
|
||||
"setting_id": "GFSA00",
|
||||
"name": "Afinia Value PLA@HS",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "machine",
|
||||
"setting_id": "iwkXfmEyz9RLZTvh",
|
||||
"setting_id": "GM001",
|
||||
"name": "Afinia H+1(HS) 0.4 nozzle",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "machine",
|
||||
"setting_id": "vngsrxKvEIsmr8tQ",
|
||||
"setting_id": "GM001",
|
||||
"name": "Afinia H+1(HS) 0.6 nozzle",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "FueWYijuvLNWzNmL",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.12mm Fine @Afinia H+1(HS)",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "Ntf0ZMcETTPz7EY1",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.16mm Optimal @Afinia H+1(HS)",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "0.18mm Fine @Afinia H+1(HS) 0.6 nozzle",
|
||||
"inherits": "fdm_process_afinia_0.18_nozzle_0.6_HS",
|
||||
"from": "system",
|
||||
"setting_id": "b7oGgrSCik70LqdL",
|
||||
"setting_id": "GP021",
|
||||
"instantiation": "true",
|
||||
"description": "It has a smaller layer height and results in smoother surface and higher printing quality.",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "Lxid5Z2e0fvVDMMm",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.20mm Standard @Afinia H+1(HS)",
|
||||
"from": "system",
|
||||
"inherits": "fdm_process_afinia_HS_common",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "APeSqnRZh6I9OTFr",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.24mm Draft @Afinia H+1(HS)",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "0.24mm Standard @Afinia H+1(HS) 0.6 nozzle",
|
||||
"inherits": "fdm_process_afinia_0.24_nozzle_0.6_HS",
|
||||
"from": "system",
|
||||
"setting_id": "QlOnQEeUXkGaxZS5",
|
||||
"setting_id": "GP022",
|
||||
"instantiation": "true",
|
||||
"description": "It has a balanced layer height for good quality and reasonable printing time.",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"type": "process",
|
||||
"setting_id": "VZ3NOVzdVWqZ37Ge",
|
||||
"setting_id": "GP004",
|
||||
"name": "0.28mm Extra Draft @Afinia H+1(HS)",
|
||||
"from": "system",
|
||||
"instantiation": "true",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "0.30mm Standard @Afinia H+1(HS) 0.6 nozzle",
|
||||
"inherits": "fdm_process_afinia_0.30_nozzle_0.6_HS",
|
||||
"from": "system",
|
||||
"setting_id": "7PPJm0girx11EP80",
|
||||
"setting_id": "GP023",
|
||||
"instantiation": "true",
|
||||
"description": "It has a big layer height, and results in apparent layer lines and ordinary printing quality and printing time.",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "0.30mm Strength @Afinia H+1(HS) 0.6 nozzle",
|
||||
"inherits": "fdm_process_afinia_0.30_nozzle_0.6_HS",
|
||||
"from": "system",
|
||||
"setting_id": "BewLobRVuiw6HPuc",
|
||||
"setting_id": "GP024",
|
||||
"instantiation": "true",
|
||||
"description": "It has a big layer height with optimized settings for stronger parts.",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "0.36mm Draft @Afinia H+1(HS) 0.6 nozzle",
|
||||
"inherits": "fdm_process_afinia_0.36_nozzle_0.6_HS",
|
||||
"from": "system",
|
||||
"setting_id": "pBS3NpSZPjtySd3X",
|
||||
"setting_id": "GP025",
|
||||
"instantiation": "true",
|
||||
"description": "It has a bigger layer height for faster printing but with more visible layer lines.",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
|
||||
+1
-1
@@ -3,7 +3,7 @@
|
||||
"name": "0.42mm Extra Draft @Afinia H+1(HS) 0.6 nozzle",
|
||||
"inherits": "fdm_process_afinia_0.42_nozzle_0.6_HS",
|
||||
"from": "system",
|
||||
"setting_id": "kHUEpY5ZMtYrLKtO",
|
||||
"setting_id": "GP026",
|
||||
"instantiation": "true",
|
||||
"description": "It has the biggest layer height for fastest printing but with very visible layer lines.",
|
||||
"elefant_foot_compensation": "0.15",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "Anker",
|
||||
"version": "02.04.00.01",
|
||||
"version": "02.04.00.00",
|
||||
"force_update": "0",
|
||||
"description": "Anker configurations",
|
||||
"machine_model_list": [
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic ABS 0.2 nozzle",
|
||||
"inherits": "Anker Generic ABS @base",
|
||||
"from": "system",
|
||||
"setting_id": "BD5ODYVM90Ig44C5",
|
||||
"setting_id": "GFSB99_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic ABS 0.25 nozzle",
|
||||
"inherits": "Anker Generic ABS @base",
|
||||
"from": "system",
|
||||
"setting_id": "WS5wXckNuiQqSVwO",
|
||||
"setting_id": "GFSB99_25",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic ABS",
|
||||
"inherits": "Anker Generic ABS @base",
|
||||
"from": "system",
|
||||
"setting_id": "axEspGzFJnrnidm4",
|
||||
"setting_id": "GFSB99",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic ASA 0.2 nozzle",
|
||||
"inherits": "Anker Generic ASA @base",
|
||||
"from": "system",
|
||||
"setting_id": "G7pzEyyhPFDnae3R",
|
||||
"setting_id": "GFSB98_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic ASA 0.25 nozzle",
|
||||
"inherits": "Anker Generic ASA @base",
|
||||
"from": "system",
|
||||
"setting_id": "ErUUDTQ7h1wNHAKT",
|
||||
"setting_id": "GFSB98_25",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic ASA",
|
||||
"inherits": "Anker Generic ASA @base",
|
||||
"from": "system",
|
||||
"setting_id": "QiFoBW5WuDUJGmFZ",
|
||||
"setting_id": "GFSB98",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PA 0.2 nozzle",
|
||||
"inherits": "Anker Generic PA @base",
|
||||
"from": "system",
|
||||
"setting_id": "NZB26MSD9WbOeY2S",
|
||||
"setting_id": "GFSN99_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PA 0.25 nozzle",
|
||||
"inherits": "Anker Generic PA @base",
|
||||
"from": "system",
|
||||
"setting_id": "Wj7oXTGUxo8lie1B",
|
||||
"setting_id": "GFSN99_25",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PA-CF",
|
||||
"inherits": "Anker Generic PA-CF @base",
|
||||
"from": "system",
|
||||
"setting_id": "qdsEps11ugFHJkn7",
|
||||
"setting_id": "GFSN98",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PA",
|
||||
"inherits": "Anker Generic PA @base",
|
||||
"from": "system",
|
||||
"setting_id": "QbIiX554Yee6vb32",
|
||||
"setting_id": "GFSN99",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PC 0.2 nozzle",
|
||||
"inherits": "Anker Generic PC @base",
|
||||
"from": "system",
|
||||
"setting_id": "GhIOAidtgDkzh9Aj",
|
||||
"setting_id": "GFSC99_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PC 0.25 nozzle",
|
||||
"inherits": "Anker Generic PC @base",
|
||||
"from": "system",
|
||||
"setting_id": "TQm9EPdenyGJMvgP",
|
||||
"setting_id": "GFSC99_25",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PC",
|
||||
"inherits": "Anker Generic PC @base",
|
||||
"from": "system",
|
||||
"setting_id": "xY25QcIsR9pWai3n",
|
||||
"setting_id": "GFSC99",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 All-Metal 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PETG 0.2 nozzle",
|
||||
"inherits": "Anker Generic PETG @base",
|
||||
"from": "system",
|
||||
"setting_id": "VItvDP6zmenWXwPO",
|
||||
"setting_id": "GFSG99_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PETG 0.25 nozzle",
|
||||
"inherits": "Anker Generic PETG @base",
|
||||
"from": "system",
|
||||
"setting_id": "UgKfPuleh1xnoJLT",
|
||||
"setting_id": "GFSG99_25",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PETG-CF",
|
||||
"inherits": "Anker Generic PETG-CF @base",
|
||||
"from": "system",
|
||||
"setting_id": "j8PLF6AZD0R0oVs8",
|
||||
"setting_id": "GFSG98",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PETG",
|
||||
"inherits": "Anker Generic PETG @base",
|
||||
"from": "system",
|
||||
"setting_id": "FMnK9qOMiqDcGqhd",
|
||||
"setting_id": "GFSG99",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PLA 0.2 nozzle",
|
||||
"inherits": "Anker Generic PLA @base",
|
||||
"from": "system",
|
||||
"setting_id": "j6QmCITPJoP7bWHq",
|
||||
"setting_id": "GFSL99_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PLA 0.25 nozzle",
|
||||
"inherits": "Anker Generic PLA @base",
|
||||
"from": "system",
|
||||
"setting_id": "uKfcnPWdXxAGB5Ls",
|
||||
"setting_id": "GFSL99_25",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PLA Silk 0.2 nozzle",
|
||||
"inherits": "Anker Generic PLA Silk @base",
|
||||
"from": "system",
|
||||
"setting_id": "A1l6NiwRrasdV556",
|
||||
"setting_id": "GFSL96_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PLA Silk 0.25 nozzle",
|
||||
"inherits": "Anker Generic PLA Silk @base",
|
||||
"from": "system",
|
||||
"setting_id": "yzHmKTOtA9JamlNf",
|
||||
"setting_id": "GFSL96_25",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"3"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PLA Silk",
|
||||
"inherits": "Anker Generic PLA Silk @base",
|
||||
"from": "system",
|
||||
"setting_id": "BGttYO9m2rGcnrEG",
|
||||
"setting_id": "GFSL96",
|
||||
"instantiation": "true",
|
||||
"compatible_printers": [
|
||||
"Anker M5 0.4 nozzle",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"name": "Anker Generic PLA+ 0.2 nozzle",
|
||||
"inherits": "Anker Generic PLA+ @base",
|
||||
"from": "system",
|
||||
"setting_id": "6IcMSjyxt0szdUuY",
|
||||
"setting_id": "GFSL95_20",
|
||||
"instantiation": "true",
|
||||
"filament_max_volumetric_speed": [
|
||||
"2"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user