Compare commits
35 Commits
v2.01.01.5
...
v2.03.01.7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8cdbd765df | ||
|
|
8ce31ed7e1 | ||
|
|
2809d34cb6 | ||
|
|
82268132e9 | ||
|
|
81ea36fdd8 | ||
|
|
96cf7d2194 | ||
|
|
7878c0d2f4 | ||
|
|
6db0e20de9 | ||
|
|
300b4e046d | ||
|
|
9ffbc2c959 | ||
|
|
d8620a4d4d | ||
|
|
6b46f9fd48 | ||
|
|
71252cf326 | ||
|
|
6ec016a6f8 | ||
|
|
8177bf8912 | ||
|
|
523aea89af | ||
|
|
f16489db9c | ||
|
|
56232999f5 | ||
|
|
4648145b67 | ||
|
|
89a8103bad | ||
|
|
5cdfef9f9e | ||
|
|
0c78224f1a | ||
|
|
eec6d77112 | ||
|
|
72a3a1e841 | ||
|
|
87acaa14f7 | ||
|
|
dab82d0248 | ||
|
|
15dd71693d | ||
|
|
2fa18f50c6 | ||
|
|
38c3592758 | ||
|
|
8a68adb427 | ||
|
|
661b112a68 | ||
|
|
8d4d60ec48 | ||
|
|
e3f49c2fb5 | ||
|
|
5effa59bd0 | ||
|
|
8ed41b9f06 |
4
.gitignore
vendored
@@ -28,3 +28,7 @@ SVG
|
|||||||
**/machine_full/
|
**/machine_full/
|
||||||
**/filament_full/
|
**/filament_full/
|
||||||
.idea/
|
.idea/
|
||||||
|
test.js
|
||||||
|
/.cache/
|
||||||
|
.clangd
|
||||||
|
/src/slic3r/QIDI/
|
||||||
244
BuildMac.sh
Normal file
@@ -0,0 +1,244 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
while getopts "1dpa:st:xbc:h" opt; do
|
||||||
|
case "${opt}" in
|
||||||
|
d )
|
||||||
|
export BUILD_TARGET="deps"
|
||||||
|
;;
|
||||||
|
p )
|
||||||
|
export PACK_DEPS="1"
|
||||||
|
;;
|
||||||
|
a )
|
||||||
|
export ARCH="$OPTARG"
|
||||||
|
;;
|
||||||
|
s )
|
||||||
|
export BUILD_TARGET="slicer"
|
||||||
|
;;
|
||||||
|
t )
|
||||||
|
export OSX_DEPLOYMENT_TARGET="$OPTARG"
|
||||||
|
;;
|
||||||
|
x )
|
||||||
|
export SLICER_CMAKE_GENERATOR="Ninja"
|
||||||
|
export SLICER_BUILD_TARGET="all"
|
||||||
|
export DEPS_CMAKE_GENERATOR="Ninja"
|
||||||
|
;;
|
||||||
|
b )
|
||||||
|
export BUILD_ONLY="1"
|
||||||
|
;;
|
||||||
|
c )
|
||||||
|
export BUILD_CONFIG="$OPTARG"
|
||||||
|
;;
|
||||||
|
1 )
|
||||||
|
export CMAKE_BUILD_PARALLEL_LEVEL=1
|
||||||
|
;;
|
||||||
|
h ) echo "Usage: ./BuildMac.sh [-1][-d][-s][-x][-b][-c]"
|
||||||
|
echo " -d: Build deps"
|
||||||
|
echo " -a: Set ARCHITECTURE (arm64 or x86_64 or universal)"
|
||||||
|
echo " -s: Build slicer only"
|
||||||
|
echo " -t: Specify minimum version of the target platform, default is 10.15"
|
||||||
|
echo " -x: Use Ninja CMake generator, default is Xcode"
|
||||||
|
echo " -b: Build without reconfiguring CMake"
|
||||||
|
echo " -c: Set CMake build configuration, default is Release"
|
||||||
|
echo " -1: limit builds to 1 core (where possible)"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
* )
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$ARCH" ]; then
|
||||||
|
ARCH="$(uname -m)"
|
||||||
|
export ARCH
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$BUILD_CONFIG" ]; then
|
||||||
|
export BUILD_CONFIG="Release"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$BUILD_TARGET" ]; then
|
||||||
|
export BUILD_TARGET="all"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$SLICER_CMAKE_GENERATOR" ]; then
|
||||||
|
export SLICER_CMAKE_GENERATOR="Xcode"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$SLICER_BUILD_TARGET" ]; then
|
||||||
|
export SLICER_BUILD_TARGET="ALL_BUILD"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DEPS_CMAKE_GENERATOR" ]; then
|
||||||
|
export DEPS_CMAKE_GENERATOR="Unix Makefiles"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$OSX_DEPLOYMENT_TARGET" ]; then
|
||||||
|
export OSX_DEPLOYMENT_TARGET="10.15"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Build params:"
|
||||||
|
echo " - ARCH: $ARCH"
|
||||||
|
echo " - BUILD_CONFIG: $BUILD_CONFIG"
|
||||||
|
echo " - BUILD_TARGET: $BUILD_TARGET"
|
||||||
|
echo " - CMAKE_GENERATOR: $SLICER_CMAKE_GENERATOR for Slicer, $DEPS_CMAKE_GENERATOR for deps"
|
||||||
|
echo " - OSX_DEPLOYMENT_TARGET: $OSX_DEPLOYMENT_TARGET"
|
||||||
|
echo " - CMAKE_BUILD_PARALLEL_LEVEL: $CMAKE_BUILD_PARALLEL_LEVEL"
|
||||||
|
echo
|
||||||
|
|
||||||
|
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$ARCH"
|
||||||
|
DEPS_DIR="$PROJECT_DIR/deps"
|
||||||
|
DEPS_BUILD_DIR="$DEPS_DIR/build/$ARCH"
|
||||||
|
DEPS="$DEPS_BUILD_DIR/QIDIStudio_deps"
|
||||||
|
|
||||||
|
if [ "$SLICER_CMAKE_GENERATOR" == "Xcode" ]; then
|
||||||
|
export BUILD_DIR_CONFIG_SUBDIR="/$BUILD_CONFIG"
|
||||||
|
else
|
||||||
|
export BUILD_DIR_CONFIG_SUBDIR=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
function build_deps() {
|
||||||
|
# iterate over two architectures: x86_64 and arm64
|
||||||
|
for _ARCH in x86_64 arm64; do
|
||||||
|
# if ARCH is universal or equal to _ARCH
|
||||||
|
if [ "$ARCH" == "universal" ] || [ "$ARCH" == "$_ARCH" ]; then
|
||||||
|
|
||||||
|
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$_ARCH"
|
||||||
|
DEPS_BUILD_DIR="$DEPS_DIR/build/$_ARCH"
|
||||||
|
DEPS="$DEPS_BUILD_DIR/QIDIStudio_deps"
|
||||||
|
|
||||||
|
echo "Building deps..."
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
mkdir -p "$DEPS"
|
||||||
|
cd "$DEPS_BUILD_DIR"
|
||||||
|
if [ "1." != "$BUILD_ONLY". ]; then
|
||||||
|
cmake "${DEPS_DIR}" \
|
||||||
|
-G "${DEPS_CMAKE_GENERATOR}" \
|
||||||
|
-DDESTDIR="$DEPS" \
|
||||||
|
-DOPENSSL_ARCH="darwin64-${_ARCH}-cc" \
|
||||||
|
-DCMAKE_BUILD_TYPE="$BUILD_CONFIG" \
|
||||||
|
-DCMAKE_OSX_ARCHITECTURES:STRING="${_ARCH}" \
|
||||||
|
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}"
|
||||||
|
fi
|
||||||
|
cmake --build . --parallel ${CMAKE_BUILD_PARALLEL_LEVEL} --config "$BUILD_CONFIG" --target deps
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function pack_deps() {
|
||||||
|
echo "Packing deps..."
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
cd "$DEPS_DIR"
|
||||||
|
tar -zcvf "QIDIStudio_dep_mac_${ARCH}_$(date +"%Y%m%d").tar.gz" "build"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
function build_slicer() {
|
||||||
|
# iterate over two architectures: x86_64 and arm64
|
||||||
|
for _ARCH in x86_64 arm64; do
|
||||||
|
# if ARCH is universal or equal to _ARCH
|
||||||
|
if [ "$ARCH" == "universal" ] || [ "$ARCH" == "$_ARCH" ]; then
|
||||||
|
|
||||||
|
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$_ARCH"
|
||||||
|
DEPS_BUILD_DIR="$DEPS_DIR/build/$_ARCH"
|
||||||
|
DEPS="$DEPS_BUILD_DIR/QIDIStudio_deps"
|
||||||
|
|
||||||
|
echo "Building slicer for $_ARCH..."
|
||||||
|
(
|
||||||
|
set -x
|
||||||
|
mkdir -p "$PROJECT_BUILD_DIR"
|
||||||
|
cd "$PROJECT_BUILD_DIR"
|
||||||
|
if [ "1." != "$BUILD_ONLY". ]; then
|
||||||
|
cmake "${PROJECT_DIR}" \
|
||||||
|
-G "${SLICER_CMAKE_GENERATOR}" \
|
||||||
|
-DQDT_RELEASE_TO_PUBLIC=1 \
|
||||||
|
-DQDT_INTERNAL_TESTING=0 \
|
||||||
|
-DCMAKE_PREFIX_PATH="$DEPS/usr/local" \
|
||||||
|
-DCMAKE_INSTALL_PREFIX="$PWD/QIDIStudio" \
|
||||||
|
-DCMAKE_BUILD_TYPE="$BUILD_CONFIG" \
|
||||||
|
-DCMAKE_MACOSX_RPATH=ON \
|
||||||
|
-DCMAKE_INSTALL_RPATH="${DEPS}/usr/local" \
|
||||||
|
-DCMAKE_MACOSX_BUNDLE=ON \
|
||||||
|
-DCMAKE_OSX_ARCHITECTURES="${_ARCH}" \
|
||||||
|
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}"
|
||||||
|
fi
|
||||||
|
cmake --build . --config "$BUILD_CONFIG" --target "$SLICER_BUILD_TARGET"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
echo "Fix macOS app package..."
|
||||||
|
(
|
||||||
|
cd "$PROJECT_BUILD_DIR"
|
||||||
|
mkdir -p QIDIStudio
|
||||||
|
cd QIDIStudio
|
||||||
|
# remove previously built app
|
||||||
|
rm -rf ./QIDIStudio.app
|
||||||
|
# fully copy newly built app
|
||||||
|
cp -pR "../src$BUILD_DIR_CONFIG_SUBDIR/QIDIStudio.app" ./QIDIStudio.app
|
||||||
|
# fix resources
|
||||||
|
resources_path=$(readlink ./QIDIStudio.app/Contents/Resources)
|
||||||
|
rm ./QIDIStudio.app/Contents/Resources
|
||||||
|
cp -R "$resources_path" ./QIDIStudio.app/Contents/Resources
|
||||||
|
# delete .DS_Store file
|
||||||
|
find ./QIDIStudio.app/ -name '.DS_Store' -delete
|
||||||
|
)
|
||||||
|
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function build_universal() {
|
||||||
|
echo "Building universal binary..."
|
||||||
|
|
||||||
|
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$ARCH"
|
||||||
|
|
||||||
|
# Create universal binary
|
||||||
|
echo "Creating universal binary..."
|
||||||
|
# PROJECT_BUILD_DIR="$PROJECT_DIR/build_Universal"
|
||||||
|
mkdir -p "$PROJECT_BUILD_DIR/QIDIStudio"
|
||||||
|
UNIVERSAL_APP="$PROJECT_BUILD_DIR/QIDIStudio/QIDIStudio.app"
|
||||||
|
rm -rf "$UNIVERSAL_APP"
|
||||||
|
cp -R "$PROJECT_DIR/build/arm64/QIDIStudio/QIDIStudio.app" "$UNIVERSAL_APP"
|
||||||
|
|
||||||
|
# Get the binary path inside the .app bundle
|
||||||
|
BINARY_PATH="Contents/MacOS/QIDIStudio"
|
||||||
|
|
||||||
|
# Create universal binary using lipo
|
||||||
|
lipo -create \
|
||||||
|
"$PROJECT_DIR/build/x86_64/QIDIStudio/QIDIStudio.app/$BINARY_PATH" \
|
||||||
|
"$PROJECT_DIR/build/arm64/QIDIStudio/QIDIStudio.app/$BINARY_PATH" \
|
||||||
|
-output "$UNIVERSAL_APP/$BINARY_PATH"
|
||||||
|
|
||||||
|
echo "Universal binary created at $UNIVERSAL_APP"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "${BUILD_TARGET}" in
|
||||||
|
all)
|
||||||
|
build_deps
|
||||||
|
build_slicer
|
||||||
|
;;
|
||||||
|
deps)
|
||||||
|
build_deps
|
||||||
|
;;
|
||||||
|
slicer)
|
||||||
|
build_slicer
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Unknown target: $BUILD_TARGET. Available targets: deps, slicer, all."
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
if [ "$ARCH" = "universal" ] && [ "$BUILD_TARGET" != "deps" ]; then
|
||||||
|
build_universal
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "1." == "$PACK_DEPS". ]; then
|
||||||
|
pack_deps
|
||||||
|
fi
|
||||||
@@ -1,4 +1,10 @@
|
|||||||
cmake_minimum_required(VERSION 3.13)
|
cmake_minimum_required(VERSION 3.13)
|
||||||
|
|
||||||
|
# The CMake version on Windows must not be greater than 4.0.
|
||||||
|
if ( ((MSVC) OR (WIN32)) AND (${CMAKE_VERSION} VERSION_GREATER_EQUAL "4.0") )
|
||||||
|
message(FATAL_ERROR "Only cmake versions between 3.13.x and 4.0.x is supported on windows. Detected version: ${CMAKE_VERSION}")
|
||||||
|
endif()
|
||||||
|
|
||||||
project(QIDIStudio)
|
project(QIDIStudio)
|
||||||
|
|
||||||
include("version.inc")
|
include("version.inc")
|
||||||
@@ -55,7 +61,10 @@ if (APPLE)
|
|||||||
if (CMAKE_MACOSX_BUNDLE)
|
if (CMAKE_MACOSX_BUNDLE)
|
||||||
set(CMAKE_INSTALL_RPATH @executable_path/../Frameworks)
|
set(CMAKE_INSTALL_RPATH @executable_path/../Frameworks)
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE)
|
if (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
|
||||||
|
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE)
|
||||||
|
endif ()
|
||||||
|
message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
|
||||||
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
set(CMAKE_INSTALL_RPATH "$ORIGIN")
|
set(CMAKE_INSTALL_RPATH "$ORIGIN")
|
||||||
endif ()
|
endif ()
|
||||||
@@ -247,6 +256,8 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
|
|||||||
# On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error.
|
# On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error.
|
||||||
add_compile_options(-Werror=return-type)
|
add_compile_options(-Werror=return-type)
|
||||||
|
|
||||||
|
# add_compile_options(-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-label -Wno-unused-local-typedefs)
|
||||||
|
|
||||||
# removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1)
|
# removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1)
|
||||||
# https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
|
# https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
|
||||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
|
||||||
@@ -260,6 +271,10 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
|
|||||||
add_compile_options(-Wno-deprecated-declarations)
|
add_compile_options(-Wno-deprecated-declarations)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 15)
|
||||||
|
add_compile_options(-Wno-error=enum-constexpr-conversion)
|
||||||
|
endif()
|
||||||
|
|
||||||
#GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see
|
#GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66943 or
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66943 or
|
||||||
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
|
||||||
@@ -314,7 +329,7 @@ if(WIN32)
|
|||||||
add_definitions(-D_USE_MATH_DEFINES -D_WIN32 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
|
add_definitions(-D_USE_MATH_DEFINES -D_WIN32 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
# BOOST_ALL_NO_LIB: Avoid the automatic linking of Boost libraries on Windows. Rather rely on explicit linking.
|
# BOOST_ALL_NO_LIB: Avoid the automatic linking of Boost libraries on Windows. Rather rely on explicit linking.
|
||||||
add_definitions(-DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x601 -DBOOST_SYSTEM_USE_UTF8 )
|
add_definitions(-DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x602 -DBOOST_SYSTEM_USE_UTF8 )
|
||||||
# Force the source code encoding to UTF-8. See QIDIStudio GH pull request #5583
|
# Force the source code encoding to UTF-8. See QIDIStudio GH pull request #5583
|
||||||
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
|
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
|
||||||
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
|
||||||
@@ -356,7 +371,7 @@ endif()
|
|||||||
# set(Boost_COMPILER "-mgw81")
|
# set(Boost_COMPILER "-mgw81")
|
||||||
# boost::process was introduced first in version 1.64.0,
|
# boost::process was introduced first in version 1.64.0,
|
||||||
# boost::beast::detail::base64 was introduced first in version 1.66.0
|
# boost::beast::detail::base64 was introduced first in version 1.66.0
|
||||||
set(MINIMUM_BOOST_VERSION "1.66.0")
|
set(MINIMUM_BOOST_VERSION "1.83.0")
|
||||||
set(_boost_components "system;filesystem;thread;log;locale;regex;chrono;atomic;date_time;iostreams")
|
set(_boost_components "system;filesystem;thread;log;locale;regex;chrono;atomic;date_time;iostreams")
|
||||||
find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS ${_boost_components})
|
find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS ${_boost_components})
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +1,73 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
PROJECT_ROOT=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
|
PROJECT_ROOT=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
|
||||||
|
|
||||||
set -x
|
set -e
|
||||||
|
|
||||||
# Wishlist hint: For developers, creating a Docker Compose
|
function usage() {
|
||||||
# setup with persistent volumes for the build & deps directories
|
echo "Usage: ./DockerBuild.sh [-c][-d][-i][-v]"
|
||||||
# would speed up recompile times significantly. For end users,
|
echo " -c: Build a self-contained Docker image that can be run directly"
|
||||||
# the simplicity of a single Docker image and a one-time compilation
|
echo " -d: disable safe parallel number limit(By default, the maximum number of parallels is set to free memory/2.5)"
|
||||||
# seems better.
|
echo " -i: Build and export an AppImage"
|
||||||
docker build -t qidistudio \
|
echo " -v: Build System Version:ubu22 or ubu24"
|
||||||
--build-arg USER=${USER:-root} \
|
echo " -h: this help output"
|
||||||
--build-arg UID=$(id -u) \
|
echo "If you only need to run the program on a built Docker container, just use './DockerBuild.sh -c'"
|
||||||
--build-arg GID=$(id -g) \
|
echo "If you need to build an AppImage using Docker, first run './DockerBuild.sh -d', then run './DockerBuild.sh -s'."
|
||||||
$PROJECT_ROOT
|
}
|
||||||
|
|
||||||
|
unset name
|
||||||
|
while getopts "hcdiv:" opt; do
|
||||||
|
case ${opt} in
|
||||||
|
c )
|
||||||
|
BUILD_RUNNER=1
|
||||||
|
;;
|
||||||
|
d )
|
||||||
|
BUILD_DEPS=1
|
||||||
|
;;
|
||||||
|
i )
|
||||||
|
BUILD_APPIMAGE=1
|
||||||
|
;;
|
||||||
|
v )
|
||||||
|
SYSTEM_VERSION="$OPTARG"
|
||||||
|
;;
|
||||||
|
h ) usage
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -z "$SYSTEM_VERSION" ]; then
|
||||||
|
SYSTEM_VERSION="ubu22"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${BUILD_DEPS}" ]]; then
|
||||||
|
if [ "$SYSTEM_VERSION" == "ubu22" ]; then
|
||||||
|
echo "Building dependencies for Ubuntu 22.04..."
|
||||||
|
docker build -f docker/BuildDepsDockerfile -t studio_dep_22:1.0 .
|
||||||
|
else
|
||||||
|
docker build -f docker/BuildDepsDockerfile24 -t studio_dep_24:1.0 .
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${BUILD_APPIMAGE}" ]]; then
|
||||||
|
if [ "$SYSTEM_VERSION" == "ubu22" ]; then
|
||||||
|
docker build -f docker/BuildAppimageDockerfile --build-arg VERSION=studio_dep_22 -o type=local,dest=./build .
|
||||||
|
mv build/QIDIStudio_ubu64.AppImage build/QIDIStudio_ubu22.AppImage
|
||||||
|
else
|
||||||
|
docker build -f docker/BuildAppimageDockerfile --build-arg VERSION=studio_dep_24 -o type=local,dest=./build .
|
||||||
|
mv build/QIDIStudio_ubu64.AppImage build/QIDIStudio_ubu24.AppImage
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "${BUILD_RUNNER}" ]]
|
||||||
|
then
|
||||||
|
# Wishlist hint: For developers, creating a Docker Compose
|
||||||
|
# setup with persistent volumes for the build & deps directories
|
||||||
|
# would speed up recompile times significantly. For end users,
|
||||||
|
# the simplicity of a single Docker image and a one-time compilation
|
||||||
|
# seems better.
|
||||||
|
docker build -t qidistudio \
|
||||||
|
--build-arg USER=${USER:-root} \
|
||||||
|
--build-arg UID=$(id -u) \
|
||||||
|
--build-arg GID=$(id -g) \
|
||||||
|
$PROJECT_ROOT
|
||||||
|
fi
|
||||||
@@ -68,7 +68,7 @@ WORKDIR /QIDIStudio
|
|||||||
# It might conflict with your mapped user, remove if user ubuntu exist
|
# It might conflict with your mapped user, remove if user ubuntu exist
|
||||||
RUN if id "ubuntu" >/dev/null 2>&1; then userdel -r ubuntu; fi
|
RUN if id "ubuntu" >/dev/null 2>&1; then userdel -r ubuntu; fi
|
||||||
|
|
||||||
# It's easier to run Bambu Studio as the same username,
|
# It's easier to run QIDI Studio as the same username,
|
||||||
# UID and GID as your workstation. Since we bind mount
|
# UID and GID as your workstation. Since we bind mount
|
||||||
# your home directory into the container, it's handy
|
# your home directory into the container, it's handy
|
||||||
# to keep permissions the same. Just in case, defaults
|
# to keep permissions the same. Just in case, defaults
|
||||||
|
|||||||
174
deps/Boost/Boost.cmake
vendored
@@ -1,160 +1,26 @@
|
|||||||
include(ExternalProject)
|
|
||||||
|
|
||||||
if (WIN32)
|
set(_context_abi_line "")
|
||||||
set(_bootstrap_cmd bootstrap.bat)
|
set(_context_arch_line "")
|
||||||
set(_build_cmd b2.exe)
|
if (APPLE AND CMAKE_OSX_ARCHITECTURES)
|
||||||
else()
|
if (CMAKE_OSX_ARCHITECTURES MATCHES "x86")
|
||||||
set(_bootstrap_cmd ./bootstrap.sh)
|
set(_context_abi_line "-DBOOST_CONTEXT_ABI:STRING=sysv")
|
||||||
set(_build_cmd ./b2)
|
elseif (CMAKE_OSX_ARCHITECTURES MATCHES "arm")
|
||||||
endif()
|
set (_context_abi_line "-DBOOST_CONTEXT_ABI:STRING=aapcs")
|
||||||
|
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
|
||||||
set(_boost_toolset gcc)
|
|
||||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/user-config.jam boost-user-config.jam)
|
|
||||||
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/boost-user-config.jam ./tools/build/src/tools/user-config.jam)
|
|
||||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
|
||||||
# https://cmake.org/cmake/help/latest/variable/MSVC_VERSION.html
|
|
||||||
if (MSVC_VERSION EQUAL 1800)
|
|
||||||
# 1800 = VS 12.0 (v120 toolset)
|
|
||||||
set(_boost_toolset "msvc-12.0")
|
|
||||||
elseif (MSVC_VERSION EQUAL 1900)
|
|
||||||
# 1900 = VS 14.0 (v140 toolset)
|
|
||||||
set(_boost_toolset "msvc-14.0")
|
|
||||||
elseif (MSVC_VERSION LESS 1920)
|
|
||||||
# 1910-1919 = VS 15.0 (v141 toolset)
|
|
||||||
set(_boost_toolset "msvc-14.1")
|
|
||||||
elseif (MSVC_VERSION LESS 1930)
|
|
||||||
# 1920-1929 = VS 16.0 (v142 toolset)
|
|
||||||
set(_boost_toolset "msvc-14.2")
|
|
||||||
elseif (MSVC_VERSION LESS 1950)
|
|
||||||
# 1930-1949 = VS 17.0 (v143 toolset)
|
|
||||||
set(_boost_toolset "msvc-14.3")
|
|
||||||
else ()
|
|
||||||
message(FATAL_ERROR "Unsupported MSVC version")
|
|
||||||
endif ()
|
endif ()
|
||||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
set(_context_arch_line "-DBOOST_CONTEXT_ARCHITECTURE:STRING=${CMAKE_OSX_ARCHITECTURES}")
|
||||||
if (WIN32)
|
message(STATUS "BOOST param: ${_context_abi_line} ${_context_arch_line}")
|
||||||
set(_boost_toolset "clang-win")
|
|
||||||
elseif (APPLE)
|
|
||||||
set(_boost_toolset "clang")
|
|
||||||
else()
|
|
||||||
set(_boost_toolset clang)
|
|
||||||
configure_file(${CMAKE_CURRENT_LIST_DIR}/user-config.jam boost-user-config.jam)
|
|
||||||
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/boost-user-config.jam ./tools/build/src/tools/user-config.jam)
|
|
||||||
endif()
|
|
||||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
|
|
||||||
set(_boost_toolset "intel")
|
|
||||||
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
|
|
||||||
set(_boost_toolset "clang")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
message(STATUS "Deduced boost toolset: ${_boost_toolset} based on ${CMAKE_CXX_COMPILER_ID} compiler")
|
|
||||||
|
|
||||||
set(_libs "")
|
|
||||||
foreach(_comp ${DEP_Boost_COMPONENTS})
|
|
||||||
list(APPEND _libs "--with-${_comp}")
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
|
||||||
set(_link shared)
|
|
||||||
else()
|
|
||||||
set(_link static)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_bits "")
|
|
||||||
if ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
|
|
||||||
set(_bits 64)
|
|
||||||
elseif ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
|
|
||||||
set(_bits 32)
|
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
include(ProcessorCount)
|
qidistudio_add_cmake_project(Boost
|
||||||
ProcessorCount(NPROC)
|
URL "https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz"
|
||||||
file(TO_NATIVE_PATH ${DESTDIR}/usr/local/ _prefix)
|
URL_HASH SHA256=4d27e9efed0f6f152dc28db6430b9d3dfb40c0345da7342eaa5a987dde57bd95
|
||||||
|
LIST_SEPARATOR |
|
||||||
set(_boost_flags "")
|
CMAKE_ARGS
|
||||||
if (UNIX)
|
-DBOOST_EXCLUDE_LIBRARIES:STRING=contract|fiber|numpy|wave|test
|
||||||
set(_boost_flags "cflags=-fPIC;cxxflags=-fPIC")
|
-DBOOST_LOCALE_ENABLE_ICU:BOOL=OFF # do not link to libicu, breaks compatibility between distros
|
||||||
endif ()
|
-DBUILD_TESTING:BOOL=OFF
|
||||||
|
"${_context_abi_line}"
|
||||||
if(APPLE)
|
"${_context_arch_line}"
|
||||||
set(_boost_flags
|
|
||||||
"cflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
|
|
||||||
"cxxflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
|
|
||||||
"mflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
|
|
||||||
"mmflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_boost_variants "")
|
|
||||||
if(CMAKE_BUILD_TYPE)
|
|
||||||
list(APPEND CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
|
|
||||||
list(REMOVE_DUPLICATES CMAKE_CONFIGURATION_TYPES)
|
|
||||||
endif()
|
|
||||||
list(FIND CMAKE_CONFIGURATION_TYPES "Release" _cfg_rel)
|
|
||||||
list(FIND CMAKE_CONFIGURATION_TYPES "RelWithDebInfo" _cfg_relwdeb)
|
|
||||||
list(FIND CMAKE_CONFIGURATION_TYPES "MinSizeRel" _cfg_minsizerel)
|
|
||||||
list(FIND CMAKE_CONFIGURATION_TYPES "Debug" _cfg_deb)
|
|
||||||
|
|
||||||
if (_cfg_rel GREATER -1 OR _cfg_relwdeb GREATER -1 OR _cfg_minsizerel GREATER -1)
|
|
||||||
list(APPEND _boost_variants release)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if ( (NOT MSVC AND _cfg_deb GREATER -1) OR (MSVC AND ${DEP_DEBUG}) )
|
|
||||||
list(APPEND _boost_variants debug)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (NOT _boost_variants)
|
|
||||||
set(_boost_variants release)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
set(_build_cmd ${_build_cmd}
|
|
||||||
${_boost_flags}
|
|
||||||
-j${NPROC}
|
|
||||||
${_libs}
|
|
||||||
--layout=versioned
|
|
||||||
--debug-configuration
|
|
||||||
toolset=${_boost_toolset}
|
|
||||||
address-model=${_bits}
|
|
||||||
link=${_link}
|
|
||||||
threading=multi
|
|
||||||
boost.locale.icu=off
|
|
||||||
--disable-icu
|
|
||||||
${_boost_variants}
|
|
||||||
stage)
|
|
||||||
|
|
||||||
set(_install_cmd ${_build_cmd} --prefix=${_prefix} install)
|
|
||||||
|
|
||||||
list(APPEND _patch_command COMMAND git init && ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-Boost-fix.patch)
|
|
||||||
|
|
||||||
ExternalProject_Add(
|
|
||||||
dep_Boost
|
|
||||||
#URL "https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.zip"
|
|
||||||
URL "https://github.com/bambulab/boost/releases/download/1.78.0/boost_1_78_0.zip"
|
|
||||||
URL_HASH SHA256=f22143b5528e081123c3c5ed437e92f648fe69748e95fa6e2bd41484e2986cc3
|
|
||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/Boost
|
|
||||||
CONFIGURE_COMMAND "${_bootstrap_cmd}"
|
|
||||||
PATCH_COMMAND ${_patch_command}
|
|
||||||
BUILD_COMMAND "${_build_cmd}"
|
|
||||||
BUILD_IN_SOURCE ON
|
|
||||||
INSTALL_COMMAND "${_install_cmd}"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
|
set(DEP_Boost_DEPENDS ZLIB)
|
||||||
# Patch the boost::polygon library with a custom one.
|
|
||||||
ExternalProject_Add(dep_boost_polygon
|
|
||||||
EXCLUDE_FROM_ALL ON
|
|
||||||
# GIT_REPOSITORY "https://github.com/prusa3d/polygon"
|
|
||||||
# GIT_TAG prusaslicer_gmp
|
|
||||||
URL https://github.com/prusa3d/polygon/archive/refs/heads/prusaslicer_gmp.zip
|
|
||||||
URL_HASH SHA256=abeb9710f0a7069fb9b22181ae5c56f6066002f125db210e7ffb27032aed6824
|
|
||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/boost_polygon
|
|
||||||
DEPENDS dep_Boost
|
|
||||||
CONFIGURE_COMMAND ""
|
|
||||||
BUILD_COMMAND ""
|
|
||||||
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
|
|
||||||
"${CMAKE_CURRENT_BINARY_DIR}/dep_boost_polygon-prefix/src/dep_boost_polygon/include/boost/polygon"
|
|
||||||
"${DESTDIR}/usr/local/include/boost/polygon"
|
|
||||||
)
|
|
||||||
# Only override boost::Polygon Voronoi implementation with Vojtech's GMP hacks on 64bit platforms.
|
|
||||||
list(APPEND _dep_list "dep_boost_polygon")
|
|
||||||
endif ()
|
|
||||||
59
deps/CGAL/0001-clang19.patch
vendored
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
--- a/BGL/include/CGAL/boost/graph/iterator.h 2022-10-07 19:04:41 UTC
|
||||||
|
+++ b/BGL/include/CGAL/boost/graph/iterator.h
|
||||||
|
@@ -213,18 +213,7 @@ class Halfedge_around_source_iterator { (public)
|
||||||
|
{}
|
||||||
|
|
||||||
|
#ifndef DOXYGEN_RUNNING
|
||||||
|
- // design patter: "safe bool"
|
||||||
|
- // will be replaced by explicit operator bool with C++11
|
||||||
|
- typedef void (Halfedge_around_source_iterator::*bool_type)() const;
|
||||||
|
|
||||||
|
- void this_type_does_not_support_comparisons() const {}
|
||||||
|
-
|
||||||
|
- operator bool_type() const
|
||||||
|
- {
|
||||||
|
- return (! (this->base() == nullptr)) ?
|
||||||
|
- &Halfedge_around_source_iterator::this_type_does_not_support_comparisons : 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
bool operator==( const Self& i) const {
|
||||||
|
CGAL_assertion( anchor == anchor);
|
||||||
|
return ( g == i.g) && ( pos == i.pos) && ( winding == i.winding);
|
||||||
|
@@ -313,18 +302,7 @@ class Halfedge_around_target_iterator { (public)
|
||||||
|
{}
|
||||||
|
|
||||||
|
#ifndef DOXYGEN_RUNNING
|
||||||
|
- // design patter: "safe bool"
|
||||||
|
- // will be replaced by explicit operator bool with C++11
|
||||||
|
- typedef void (Halfedge_around_target_iterator::*bool_type)() const;
|
||||||
|
|
||||||
|
- void this_type_does_not_support_comparisons() const {}
|
||||||
|
-
|
||||||
|
- operator bool_type() const
|
||||||
|
- {
|
||||||
|
- return (! (this->base() == nullptr)) ?
|
||||||
|
- &Halfedge_around_target_iterator::this_type_does_not_support_comparisons : 0;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
bool operator==( const Self& i) const {
|
||||||
|
CGAL_assertion( anchor == anchor);
|
||||||
|
return ( g == i.g) && ( pos == i.pos) && ( winding == i.winding);
|
||||||
|
@@ -411,18 +389,6 @@ class Halfedge_around_face_iterator { (public)
|
||||||
|
const value_type& operator * ( ) const { return pos; }
|
||||||
|
pointer operator -> ( ) { return &pos; }
|
||||||
|
const value_type* operator -> ( ) const { return &pos; }
|
||||||
|
-
|
||||||
|
- // design patter: "safe bool"
|
||||||
|
- // will be replaced by explicit operator bool with C++11
|
||||||
|
- typedef void (Halfedge_around_face_iterator::*bool_type)() const;
|
||||||
|
-
|
||||||
|
- void this_type_does_not_support_comparisons() const {}
|
||||||
|
-
|
||||||
|
- operator bool_type() const
|
||||||
|
- {
|
||||||
|
- return (! (this->base() == nullptr)) ?
|
||||||
|
- &Halfedge_around_face_iterator::this_type_does_not_support_comparisons : 0;
|
||||||
|
- }
|
||||||
|
|
||||||
|
bool operator==( const Self& i) const {
|
||||||
|
CGAL_assertion( anchor == anchor);
|
||||||
8
deps/CGAL/CGAL.cmake
vendored
@@ -1,10 +1,12 @@
|
|||||||
|
if (IN_GIT_REPO)
|
||||||
|
set(CGAL_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_CGAL-prefix/src/dep_CGAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
qidistudio_add_cmake_project(
|
qidistudio_add_cmake_project(
|
||||||
CGAL
|
CGAL
|
||||||
# GIT_REPOSITORY https://github.com/CGAL/cgal.git
|
|
||||||
# GIT_TAG caacd806dc55c61cc68adaad99f2240f00493b29 # releases/CGAL-5.3
|
|
||||||
# For whatever reason, this keeps downloading forever (repeats downloads if finished)
|
|
||||||
URL https://github.com/CGAL/cgal/archive/refs/tags/v5.4.zip
|
URL https://github.com/CGAL/cgal/archive/refs/tags/v5.4.zip
|
||||||
URL_HASH SHA256=d7605e0a5a5ca17da7547592f6f6e4a59430a0bc861948974254d0de43eab4c0
|
URL_HASH SHA256=d7605e0a5a5ca17da7547592f6f6e4a59430a0bc861948974254d0de43eab4c0
|
||||||
|
PATCH_COMMAND git apply ${CGAL_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-clang19.patch
|
||||||
DEPENDS ${BOOST_PKG} dep_GMP dep_MPFR
|
DEPENDS ${BOOST_PKG} dep_GMP dep_MPFR
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
33
deps/CMakeLists.txt
vendored
@@ -27,6 +27,9 @@ include(ExternalProject)
|
|||||||
include(ProcessorCount)
|
include(ProcessorCount)
|
||||||
|
|
||||||
ProcessorCount(NPROC)
|
ProcessorCount(NPROC)
|
||||||
|
if(DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL})
|
||||||
|
set(NPROC $ENV{CMAKE_BUILD_PARALLEL_LEVEL})
|
||||||
|
endif()
|
||||||
if (NPROC EQUAL 0)
|
if (NPROC EQUAL 0)
|
||||||
set(NPROC 1)
|
set(NPROC 1)
|
||||||
endif ()
|
endif ()
|
||||||
@@ -50,6 +53,24 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|||||||
option(DEP_WX_GTK3 "Build wxWidgets against GTK3" OFF)
|
option(DEP_WX_GTK3 "Build wxWidgets against GTK3" OFF)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(IS_CROSS_COMPILE FALSE)
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
set(CMAKE_FIND_FRAMEWORK LAST)
|
||||||
|
set(CMAKE_FIND_APPBUNDLE LAST)
|
||||||
|
list(FIND CMAKE_OSX_ARCHITECTURES ${CMAKE_SYSTEM_PROCESSOR} _arch_idx)
|
||||||
|
message(STATUS "qidistudio_add_cmake_project for Apple")
|
||||||
|
if (CMAKE_OSX_ARCHITECTURES AND _arch_idx LESS 0)
|
||||||
|
message(STATUS "qidistudio_add_cmake_project for Apple crosscompiling")
|
||||||
|
set(IS_CROSS_COMPILE TRUE)
|
||||||
|
set(CMAKE_CXX_COMPILER_ID "Clang")
|
||||||
|
string(REPLACE ";" "$<SEMICOLON>" CMAKE_OSX_ARCHS "${CMAKE_OSX_ARCHITECTURES}")
|
||||||
|
set(_cmake_osx_arch -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHS})
|
||||||
|
set(_cmake_args_osx_arch CMAKE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHS})
|
||||||
|
message(STATUS "Detect Cross-compilation. Will build for target ${CMAKE_OSX_ARCHS}" )
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
# On developer machines, it can be enabled to speed up compilation and suppress warnings coming from IGL.
|
# On developer machines, it can be enabled to speed up compilation and suppress warnings coming from IGL.
|
||||||
# FIXME:
|
# FIXME:
|
||||||
# Enabling this option is not safe. IGL will compile itself with its own version of Eigen while
|
# Enabling this option is not safe. IGL will compile itself with its own version of Eigen while
|
||||||
@@ -72,6 +93,17 @@ if (NOT _is_multi AND NOT CMAKE_BUILD_TYPE)
|
|||||||
message(STATUS "Forcing CMAKE_BUILD_TYPE to Release as it was not specified.")
|
message(STATUS "Forcing CMAKE_BUILD_TYPE to Release as it was not specified.")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
execute_process(
|
||||||
|
COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree
|
||||||
|
RESULT_VARIABLE REV_PARSE_RESULT
|
||||||
|
OUTPUT_VARIABLE REV_PARSE_OUTPUT
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
if((REV_PARSE_RESULT EQUAL 0) AND (REV_PARSE_OUTPUT STREQUAL "true"))
|
||||||
|
# Find relative path from root to source used for adjusting patch command
|
||||||
|
file(RELATIVE_PATH BINARY_DIR_REL ${CMAKE_SOURCE_DIR}/.. ${CMAKE_BINARY_DIR})
|
||||||
|
endif ()
|
||||||
|
|
||||||
function(qidistudio_add_cmake_project projectname)
|
function(qidistudio_add_cmake_project projectname)
|
||||||
cmake_parse_arguments(P_ARGS "" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
|
cmake_parse_arguments(P_ARGS "" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
|
||||||
|
|
||||||
@@ -102,6 +134,7 @@ function(qidistudio_add_cmake_project projectname)
|
|||||||
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
|
||||||
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
|
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
|
||||||
-DBUILD_SHARED_LIBS:BOOL=OFF
|
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||||
|
${_cmake_osx_arch}
|
||||||
"${_configs_line}"
|
"${_configs_line}"
|
||||||
${DEP_CMAKE_OPTS}
|
${DEP_CMAKE_OPTS}
|
||||||
${P_ARGS_CMAKE_ARGS}
|
${P_ARGS_CMAKE_ARGS}
|
||||||
|
|||||||
64
deps/FFMPEG/FFMPEG.cmake
vendored
@@ -28,32 +28,58 @@ else ()
|
|||||||
string(APPEND _extra_cmd "--enable-gpl")
|
string(APPEND _extra_cmd "--enable-gpl")
|
||||||
string(APPEND _extra_cmd "--enable-nonfree")
|
string(APPEND _extra_cmd "--enable-nonfree")
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
set(_minos_cmd
|
||||||
|
"CFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}"
|
||||||
|
"LDFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}"
|
||||||
|
)
|
||||||
|
if (IS_CROSS_COMPILE)
|
||||||
|
set(_cross_cmd --enable-cross-compile)
|
||||||
|
set(_pic_cmd --enable-pic)
|
||||||
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
|
||||||
|
set(_arch_cmd --arch=arm64)
|
||||||
|
set(_cc_cmd "--cc=clang -arch arm64")
|
||||||
|
else()
|
||||||
|
set(_arch_cmd --arch=x86_64)
|
||||||
|
set(_cc_cmd "--cc=clang -arch x86_64")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(_build_j -j)
|
||||||
|
if(DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL})
|
||||||
|
set(_build_j "-j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}")
|
||||||
|
endif()
|
||||||
|
|
||||||
ExternalProject_Add(dep_FFMPEG
|
ExternalProject_Add(dep_FFMPEG
|
||||||
URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.2.tar.gz
|
URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.2.tar.gz
|
||||||
URL_HASH SHA256=5EB46D18D664A0CCADF7B0ADEE03BD3B7FA72893D667F36C69E202A807E6D533
|
URL_HASH SHA256=5EB46D18D664A0CCADF7B0ADEE03BD3B7FA72893D667F36C69E202A807E6D533
|
||||||
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
|
||||||
CONFIGURE_COMMAND ${_conf_cmd}
|
CONFIGURE_COMMAND ${_conf_cmd}
|
||||||
"--prefix=${DESTDIR}/usr/local"
|
${_cross_cmd}
|
||||||
"--enable-shared"
|
${_pic_cmd}
|
||||||
"--disable-doc"
|
${_arch_cmd}
|
||||||
"--enable-small"
|
${_cc_cmd}
|
||||||
"--disable-outdevs"
|
--prefix="${DESTDIR}/usr/local"
|
||||||
"--disable-filters"
|
--enable-shared
|
||||||
"--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*"
|
--disable-doc
|
||||||
"--disable-protocols"
|
--enable-small
|
||||||
"--enable-protocol=file,fd,pipe,rtp,udp"
|
--disable-outdevs
|
||||||
"--disable-muxers"
|
--disable-filters
|
||||||
"--enable-muxer=rtp"
|
--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*
|
||||||
"--disable-encoders"
|
--disable-protocols
|
||||||
"--disable-decoders"
|
--enable-protocol=file,fd,pipe,rtp,udp
|
||||||
"--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*"
|
--disable-muxers
|
||||||
"--disable-demuxers"
|
--enable-muxer=rtp
|
||||||
"--enable-demuxer=h264,mp3,mov"
|
--disable-encoders
|
||||||
"--disable-zlib"
|
--disable-decoders
|
||||||
"--disable-avdevice"
|
--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*
|
||||||
|
--disable-demuxers
|
||||||
|
--enable-demuxer=h264,mp3,mov
|
||||||
|
--disable-zlib
|
||||||
|
--disable-avdevice
|
||||||
BUILD_IN_SOURCE ON
|
BUILD_IN_SOURCE ON
|
||||||
BUILD_COMMAND make -j
|
BUILD_COMMAND make ${_build_j}
|
||||||
INSTALL_COMMAND make install
|
INSTALL_COMMAND make install
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
9
deps/GLEW/glew/CMakeLists.txt
vendored
@@ -3,9 +3,12 @@ project(GLEW)
|
|||||||
|
|
||||||
find_package(OpenGL REQUIRED)
|
find_package(OpenGL REQUIRED)
|
||||||
|
|
||||||
if(OpenGL_EGL_FOUND)
|
# we do not support wayland for now
|
||||||
message(STATUS "building GLEW for EGL (hope that wxWidgets agrees, otherwise you won't have any output!)")
|
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGLEW_EGL")
|
if(OpenGL_EGL_FOUND)
|
||||||
|
message(STATUS "building GLEW for EGL (hope that wxWidgets agrees, otherwise you won't have any output!)")
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGLEW_EGL")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(GLEW src/glew.c)
|
add_library(GLEW src/glew.c)
|
||||||
|
|||||||
20
deps/GMP/GMP.cmake
vendored
@@ -22,10 +22,24 @@ else ()
|
|||||||
|
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
||||||
set(_gmp_build_tgt aarch64)
|
set(_gmp_build_arch aarch64)
|
||||||
|
else ()
|
||||||
|
set(_gmp_build_arch ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
|
endif()
|
||||||
|
if (IS_CROSS_COMPILE)
|
||||||
|
if (${CMAKE_OSX_ARCHITECTURES} MATCHES "arm")
|
||||||
|
set(_gmp_host_arch aarch64)
|
||||||
|
set(_gmp_host_arch_flags "-arch arm64")
|
||||||
|
elseif (${CMAKE_OSX_ARCHITECTURES} MATCHES "x86_64")
|
||||||
|
set(_gmp_host_arch x86_64)
|
||||||
|
set(_gmp_host_arch_flags "-arch x86_64")
|
||||||
|
endif()
|
||||||
|
set(_gmp_ccflags "${_gmp_ccflags} ${_gmp_host_arch_flags} -mmacosx-version-min=${DEP_OSX_TARGET}")
|
||||||
|
set(_gmp_build_tgt --build=${_gmp_build_arch}-apple-darwin --host=${_gmp_host_arch}-apple-darwin)
|
||||||
|
else ()
|
||||||
|
set(_gmp_ccflags "${_gmp_ccflags} -mmacosx-version-min=${DEP_OSX_TARGET}")
|
||||||
|
set(_gmp_build_tgt "--build=${_gmp_build_arch}-apple-darwin")
|
||||||
endif()
|
endif()
|
||||||
set(_gmp_ccflags "${_gmp_ccflags} -mmacosx-version-min=${DEP_OSX_TARGET}")
|
|
||||||
set(_gmp_build_tgt "--build=${_gmp_build_tgt}-apple-darwin")
|
|
||||||
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
||||||
set(_gmp_ccflags "${_gmp_ccflags} -march=armv7-a") # Works on RPi-4
|
set(_gmp_ccflags "${_gmp_ccflags} -march=armv7-a") # Works on RPi-4
|
||||||
|
|||||||
4
deps/JPEG/JPEG.cmake
vendored
@@ -12,8 +12,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
qidistudio_add_cmake_project(JPEG
|
qidistudio_add_cmake_project(JPEG
|
||||||
URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/2.0.6.zip
|
URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.0.1.zip
|
||||||
URL_HASH SHA256=017bdc33ff3a72e11301c0feb4657cb27719d7f97fa67a78ed506c594218bbf1
|
URL_HASH SHA256=d6d99e693366bc03897677650e8b2dfa76b5d6c54e2c9e70c03f0af821b0a52f
|
||||||
DEPENDS ${ZLIB_PKG}
|
DEPENDS ${ZLIB_PKG}
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DENABLE_SHARED=OFF
|
-DENABLE_SHARED=OFF
|
||||||
|
|||||||
2
deps/OCCT/0001-OCCT-fix.patch
vendored
@@ -218,4 +218,4 @@ index ab2d9b3c9f..cd701879b1 100644
|
|||||||
+ const auto* aTags = &anOutline->tags[aStartIndex];
|
+ const auto* aTags = &anOutline->tags[aStartIndex];
|
||||||
const short anEndIndex = anOutline->contours[aContour];
|
const short anEndIndex = anOutline->contours[aContour];
|
||||||
const short aPntsNb = (anEndIndex - aStartIndex) + 1;
|
const short aPntsNb = (anEndIndex - aStartIndex) + 1;
|
||||||
aStartIndex = anEndIndex + 1;
|
aStartIndex = anEndIndex + 1;
|
||||||
|
|||||||
7
deps/OCCT/OCCT.cmake
vendored
@@ -4,11 +4,14 @@ else()
|
|||||||
set(library_build_type "Static")
|
set(library_build_type "Static")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (BINARY_DIR_REL)
|
||||||
|
set(OCCT_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OCCT-prefix/src/dep_OCCT)
|
||||||
|
endif ()
|
||||||
|
|
||||||
qidistudio_add_cmake_project(OCCT
|
qidistudio_add_cmake_project(OCCT
|
||||||
URL https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_6_0.zip
|
URL https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_6_0.zip
|
||||||
URL_HASH SHA256=28334f0e98f1b1629799783e9b4d21e05349d89e695809d7e6dfa45ea43e1dbc
|
URL_HASH SHA256=28334f0e98f1b1629799783e9b4d21e05349d89e695809d7e6dfa45ea43e1dbc
|
||||||
#PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
|
PATCH_COMMAND git apply ${OCCT_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
|
||||||
PATCH_COMMAND ${GIT_EXECUTABLE} apply --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
|
|
||||||
#DEPENDS dep_Boost
|
#DEPENDS dep_Boost
|
||||||
#DEPENDS dep_FREETYPE
|
#DEPENDS dep_FREETYPE
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
|
|||||||
24
deps/OpenCV/0002-clang19-macos.patch
vendored
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
diff --git a/3rdparty/libpng/pngpriv.h b/3rdparty/libpng/pngpriv.h
|
||||||
|
index 583c26f..83e0ab8 100644
|
||||||
|
--- a/3rdparty/libpng/pngpriv.h
|
||||||
|
+++ b/3rdparty/libpng/pngpriv.h
|
||||||
|
@@ -517,18 +517,7 @@
|
||||||
|
*/
|
||||||
|
# include <float.h>
|
||||||
|
|
||||||
|
-# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
|
||||||
|
- defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
|
||||||
|
- /* We need to check that <math.h> hasn't already been included earlier
|
||||||
|
- * as it seems it doesn't agree with <fp.h>, yet we should really use
|
||||||
|
- * <fp.h> if possible.
|
||||||
|
- */
|
||||||
|
-# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
|
||||||
|
-# include <fp.h>
|
||||||
|
-# endif
|
||||||
|
-# else
|
||||||
|
-# include <math.h>
|
||||||
|
-# endif
|
||||||
|
+# include <math.h>
|
||||||
|
# if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
|
||||||
|
/* Amiga SAS/C: We must include builtin FPU functions when compiling using
|
||||||
|
* MATH=68881
|
||||||
7
deps/OpenCV/OpenCV.cmake
vendored
@@ -4,10 +4,14 @@ else ()
|
|||||||
set(_use_IPP "-DWITH_IPP=OFF")
|
set(_use_IPP "-DWITH_IPP=OFF")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (BINARY_DIR_REL)
|
||||||
|
set(OpenCV_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OpenCV-prefix/src/dep_OpenCV)
|
||||||
|
endif ()
|
||||||
|
|
||||||
qidistudio_add_cmake_project(OpenCV
|
qidistudio_add_cmake_project(OpenCV
|
||||||
URL https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
|
URL https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
|
||||||
URL_HASH SHA256=1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
|
URL_HASH SHA256=1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
|
||||||
PATCH_COMMAND ${GIT_EXECUTABLE} apply --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OpenCV-fix.patch
|
PATCH_COMMAND git apply ${OpenCV_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OpenCV-fix.patch ${CMAKE_CURRENT_LIST_DIR}/0002-clang19-macos.patch
|
||||||
CMAKE_ARGS
|
CMAKE_ARGS
|
||||||
-DBUILD_SHARED_LIBS=0
|
-DBUILD_SHARED_LIBS=0
|
||||||
-DBUILD_PERE_TESTS=OFF
|
-DBUILD_PERE_TESTS=OFF
|
||||||
@@ -49,6 +53,7 @@ qidistudio_add_cmake_project(OpenCV
|
|||||||
-DWITH_OPENJPEG=OFF
|
-DWITH_OPENJPEG=OFF
|
||||||
-DWITH_QUIRC=OFF
|
-DWITH_QUIRC=OFF
|
||||||
-DWITH_VTK=OFF
|
-DWITH_VTK=OFF
|
||||||
|
-DWITH_JPEG=OFF
|
||||||
-DWITH_WEBP=OFF
|
-DWITH_WEBP=OFF
|
||||||
-DENABLE_PRECOMPILED_HEADERS=OFF
|
-DENABLE_PRECOMPILED_HEADERS=OFF
|
||||||
-DINSTALL_TESTS=OFF
|
-DINSTALL_TESTS=OFF
|
||||||
|
|||||||
31
deps/OpenEXR/OpenEXR.cmake
vendored
@@ -1,3 +1,32 @@
|
|||||||
|
if (APPLE AND IS_CROSS_COMPILE)
|
||||||
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" AND ${CMAKE_OSX_ARCHITECTURES} MATCHES "arm")
|
||||||
|
set(_openexr_arch arm64^^x86_64)
|
||||||
|
set(_openxr_list_sep LIST_SEPARATOR ^^)
|
||||||
|
set(_cmake_openexr_arch -DCMAKE_OSX_ARCHITECTURES:STRING=${_openexr_arch})
|
||||||
|
else()
|
||||||
|
set(_openexr_arch ${CMAKE_OSX_ARCHITECTURES})
|
||||||
|
set(_cmake_openexr_arch -DCMAKE_OSX_ARCHITECTURES:STRING=${_openexr_arch})
|
||||||
|
endif()
|
||||||
|
ExternalProject_Add(dep_OpenEXR
|
||||||
|
EXCLUDE_FROM_ALL ON
|
||||||
|
URL https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v2.5.5.zip
|
||||||
|
URL_HASH SHA256=0307a3d7e1fa1e77e9d84d7e9a8694583fbbbfd50bdc6884e2c96b8ef6b902de
|
||||||
|
INSTALL_DIR ${DESTDIR}/usr/local
|
||||||
|
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/OpenEXR
|
||||||
|
${_openxr_list_sep}
|
||||||
|
CMAKE_ARGS
|
||||||
|
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}/usr/local
|
||||||
|
-DBUILD_SHARED_LIBS:BOOL=OFF
|
||||||
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||||
|
-DBUILD_TESTING=OFF
|
||||||
|
-DPYILMBASE_ENABLE:BOOL=OFF
|
||||||
|
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
|
||||||
|
-DOPENEXR_BUILD_UTILS:BOOL=OFF
|
||||||
|
-DCMAKE_OSX_DEPLOYMENT_TARGET=${DEP_OSX_TARGET}
|
||||||
|
${_cmake_openexr_arch}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
set(_patch_cmd ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OpenEXR-GCC13.patch)
|
set(_patch_cmd ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OpenEXR-GCC13.patch)
|
||||||
else()
|
else()
|
||||||
@@ -18,7 +47,7 @@ qidistudio_add_cmake_project(OpenEXR
|
|||||||
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
|
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
|
||||||
-DOPENEXR_BUILD_UTILS:BOOL=OFF
|
-DOPENEXR_BUILD_UTILS:BOOL=OFF
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
add_debug_dep(dep_OpenEXR)
|
add_debug_dep(dep_OpenEXR)
|
||||||
endif ()
|
endif ()
|
||||||
|
|||||||
3
deps/OpenSSL/OpenSSL.cmake
vendored
@@ -19,7 +19,7 @@ if(WIN32)
|
|||||||
set(_install_cmd nmake install_sw )
|
set(_install_cmd nmake install_sw )
|
||||||
else()
|
else()
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
set(_conf_cmd ./Configure )
|
set(_conf_cmd export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} && ./Configure -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} )
|
||||||
else()
|
else()
|
||||||
set(_conf_cmd "./config")
|
set(_conf_cmd "./config")
|
||||||
endif()
|
endif()
|
||||||
@@ -58,6 +58,7 @@ ExternalProject_Add(dep_OpenSSL
|
|||||||
${_cross_comp_prefix_line}
|
${_cross_comp_prefix_line}
|
||||||
no-shared
|
no-shared
|
||||||
no-asm
|
no-asm
|
||||||
|
no-tests
|
||||||
no-ssl3-method
|
no-ssl3-method
|
||||||
no-dynamic-engine
|
no-dynamic-engine
|
||||||
BUILD_IN_SOURCE ON
|
BUILD_IN_SOURCE ON
|
||||||
|
|||||||
31
deps/OpenVDB/0001-clang19.patch
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
diff --git a/openvdb/openvdb/tree/NodeManager.h b/openvdb/openvdb/tree/NodeManager.h
|
||||||
|
index 4d0d9b4..12dabaa 100644
|
||||||
|
--- a/openvdb/openvdb/tree/NodeManager.h
|
||||||
|
+++ b/openvdb/openvdb/tree/NodeManager.h
|
||||||
|
@@ -327,7 +327,7 @@ private:
|
||||||
|
void operator()(const NodeRange& range) const
|
||||||
|
{
|
||||||
|
for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
|
||||||
|
- OpT::template eval(mNodeOp, it);
|
||||||
|
+ OpT::eval(mNodeOp, it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const NodeOp mNodeOp;
|
||||||
|
@@ -347,7 +347,7 @@ private:
|
||||||
|
void operator()(const NodeRange& range) const
|
||||||
|
{
|
||||||
|
for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
|
||||||
|
- OpT::template eval(mNodeOp, it);
|
||||||
|
+ OpT::eval(mNodeOp, it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const NodeOp& mNodeOp;
|
||||||
|
@@ -372,7 +372,7 @@ private:
|
||||||
|
void operator()(const NodeRange& range)
|
||||||
|
{
|
||||||
|
for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
|
||||||
|
- OpT::template eval(*mNodeOp, it);
|
||||||
|
+ OpT::eval(*mNodeOp, it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void join(const NodeReducer& other)
|
||||||
5
deps/OpenVDB/OpenVDB.cmake
vendored
@@ -6,6 +6,10 @@ else()
|
|||||||
set(_build_static ON)
|
set(_build_static ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (BINARY_DIR_REL)
|
||||||
|
set(OPENVDB_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OpenVDB-prefix/src/dep_OpenVDB)
|
||||||
|
endif ()
|
||||||
|
|
||||||
set (_openvdb_vdbprint ON)
|
set (_openvdb_vdbprint ON)
|
||||||
#if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
#if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
|
||||||
# Build fails on raspberry pi due to missing link directive to latomic
|
# Build fails on raspberry pi due to missing link directive to latomic
|
||||||
@@ -15,6 +19,7 @@ set (_openvdb_vdbprint ON)
|
|||||||
qidistudio_add_cmake_project(OpenVDB
|
qidistudio_add_cmake_project(OpenVDB
|
||||||
URL https://github.com/tamasmeszaros/openvdb/archive/a68fd58d0e2b85f01adeb8b13d7555183ab10aa5.zip # 8.2 patched
|
URL https://github.com/tamasmeszaros/openvdb/archive/a68fd58d0e2b85f01adeb8b13d7555183ab10aa5.zip # 8.2 patched
|
||||||
URL_HASH SHA256=f353e7b99bd0cbfc27ac9082de51acf32a8bc0b3e21ff9661ecca6f205ec1d81
|
URL_HASH SHA256=f353e7b99bd0cbfc27ac9082de51acf32a8bc0b3e21ff9661ecca6f205ec1d81
|
||||||
|
PATCH_COMMAND git apply ${OPENVDB_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-clang19.patch
|
||||||
# URL https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v10.0.1.zip
|
# URL https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v10.0.1.zip
|
||||||
# URL_HASH SHA256=48C2CFA9853B58FA86282DF1F83F0E99D07858CC03EB2BA8227DC447A830100A
|
# URL_HASH SHA256=48C2CFA9853B58FA86282DF1F83F0E99D07858CC03EB2BA8227DC447A830100A
|
||||||
DEPENDS dep_TBB dep_Blosc dep_OpenEXR ${BOOST_PKG}
|
DEPENDS dep_TBB dep_Blosc dep_OpenEXR ${BOOST_PKG}
|
||||||
|
|||||||
29
deps/PNG/0002-clang19-macos.patch
vendored
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
--- a/pngpriv.h 2025-04-20 19:36:04.000000000
|
||||||
|
+++ b/pngpriv.h 2025-04-20 19:35:55.000000000
|
||||||
|
@@ -511,24 +511,14 @@
|
||||||
|
* DBL_DIG Maximum number of decimal digits (can be set to any constant)
|
||||||
|
* DBL_MIN Smallest normalized fp number (can be set to an arbitrary value)
|
||||||
|
* DBL_MAX Maximum floating point number (can be set to an arbitrary value)
|
||||||
|
*/
|
||||||
|
# include <float.h>
|
||||||
|
|
||||||
|
-# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
|
||||||
|
- defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
|
||||||
|
- /* We need to check that <math.h> hasn't already been included earlier
|
||||||
|
- * as it seems it doesn't agree with <fp.h>, yet we should really use
|
||||||
|
- * <fp.h> if possible.
|
||||||
|
- */
|
||||||
|
-# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
|
||||||
|
-# include <fp.h>
|
||||||
|
-# endif
|
||||||
|
-# else
|
||||||
|
-# include <math.h>
|
||||||
|
-# endif
|
||||||
|
+# include <math.h>
|
||||||
|
+
|
||||||
|
# if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
|
||||||
|
/* Amiga SAS/C: We must include builtin FPU functions when compiling using
|
||||||
|
* MATH=68881
|
||||||
|
*/
|
||||||
|
# include <m68881.h>
|
||||||
|
# endif
|
||||||
53
deps/PNG/PNG.cmake
vendored
@@ -5,26 +5,43 @@ else ()
|
|||||||
set(_disable_neon_extension "")
|
set(_disable_neon_extension "")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if(APPLE AND IS_CROSS_COMPILE)
|
||||||
|
# TODO: check if it doesn't create problem when compiling from arm to x86_64
|
||||||
|
qidistudio_add_cmake_project(PNG
|
||||||
|
GIT_REPOSITORY https://github.com/glennrp/libpng.git
|
||||||
|
GIT_TAG v1.6.35
|
||||||
|
DEPENDS ${ZLIB_PKG}
|
||||||
|
PATCH_COMMAND ${GIT_EXECUTABLE} checkout -f -- . && git clean -df &&
|
||||||
|
${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/macos-arm64.patch ${CMAKE_CURRENT_LIST_DIR}/0002-clang19-macos.patch
|
||||||
|
CMAKE_ARGS
|
||||||
|
-DPNG_SHARED=OFF
|
||||||
|
-DPNG_STATIC=ON
|
||||||
|
-DPNG_PREFIX=prusaslicer_
|
||||||
|
-DPNG_TESTS=OFF
|
||||||
|
-DDISABLE_DEPENDENCY_TRACKING=OFF
|
||||||
|
${_disable_neon_extension}
|
||||||
|
)
|
||||||
|
else ()
|
||||||
set(_patch_step "")
|
set(_patch_step "")
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
set(_patch_step PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/PNG.patch)
|
set(_patch_step PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/PNG.patch ${CMAKE_CURRENT_LIST_DIR}/0002-clang19-macos.patch)
|
||||||
endif ()
|
endif ()
|
||||||
|
qidistudio_add_cmake_project(PNG
|
||||||
qidistudio_add_cmake_project(PNG
|
# GIT_REPOSITORY https://github.com/glennrp/libpng.git
|
||||||
# GIT_REPOSITORY https://github.com/glennrp/libpng.git
|
# GIT_TAG v1.6.35
|
||||||
# GIT_TAG v1.6.35
|
URL https://github.com/glennrp/libpng/archive/refs/tags/v1.6.35.zip
|
||||||
URL https://github.com/glennrp/libpng/archive/refs/tags/v1.6.35.zip
|
URL_HASH SHA256=3d22d46c566b1761a0e15ea397589b3a5f36ac09b7c785382e6470156c04247f
|
||||||
URL_HASH SHA256=3d22d46c566b1761a0e15ea397589b3a5f36ac09b7c785382e6470156c04247f
|
DEPENDS ${ZLIB_PKG}
|
||||||
DEPENDS ${ZLIB_PKG}
|
"${_patch_step}"
|
||||||
"${_patch_step}"
|
CMAKE_ARGS
|
||||||
CMAKE_ARGS
|
-DPNG_SHARED=OFF
|
||||||
-DPNG_SHARED=OFF
|
-DPNG_STATIC=ON
|
||||||
-DPNG_STATIC=ON
|
-DPNG_PREFIX=prusaslicer_
|
||||||
-DPNG_PREFIX=prusaslicer_
|
-DPNG_TESTS=OFF
|
||||||
-DPNG_TESTS=OFF
|
-DDISABLE_DEPENDENCY_TRACKING=OFF
|
||||||
-DDISABLE_DEPENDENCY_TRACKING=OFF
|
${_disable_neon_extension}
|
||||||
${_disable_neon_extension}
|
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
add_debug_dep(dep_PNG)
|
add_debug_dep(dep_PNG)
|
||||||
|
|||||||
90
deps/PNG/macos-arm64.patch
vendored
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
Based on https://github.com/vespakoen/libpng to work around until
|
||||||
|
https://github.com/glennrp/libpng/pull/354 is resolved.
|
||||||
|
also added patch from PS2.4 (PNG.pach) in pngrutil.c
|
||||||
|
---
|
||||||
|
CMakeLists.txt | 28 ++++++++++++++++++++--------
|
||||||
|
pngrutil.c | 7 -------
|
||||||
|
2 files changed, 20 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 4db9bb87d..9099d1edf 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -82,10 +82,22 @@ option(PNG_HARDWARE_OPTIMIZATIONS "Enable Hardware Optimizations" ON)
|
||||||
|
set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names")
|
||||||
|
set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings")
|
||||||
|
|
||||||
|
+# CMake currently sets CMAKE_SYSTEM_PROCESSOR to one of x86_64 or arm64 on macOS,
|
||||||
|
+# based upon the OS architecture, not the target architecture. As such, we need
|
||||||
|
+# to check CMAKE_OSX_ARCHITECTURES to identify which hardware-specific flags to
|
||||||
|
+# enable. Note that this will fail if you attempt to build a universal binary in
|
||||||
|
+# a single cmake invokation.
|
||||||
|
+if (APPLE AND CMAKE_OSX_ARCHITECTURES)
|
||||||
|
+ set(TARGET_ARCH ${CMAKE_OSX_ARCHITECTURES})
|
||||||
|
+else()
|
||||||
|
+ set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
+
|
||||||
|
if(PNG_HARDWARE_OPTIMIZATIONS)
|
||||||
|
# set definitions and sources for arm
|
||||||
|
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
|
||||||
|
- CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
|
||||||
|
+if(TARGET_ARCH MATCHES "^arm" OR
|
||||||
|
+ TARGET_ARCH MATCHES "^aarch64")
|
||||||
|
set(PNG_ARM_NEON_POSSIBLE_VALUES check on off)
|
||||||
|
set(PNG_ARM_NEON "check" CACHE STRING "Enable ARM NEON optimizations:
|
||||||
|
check: (default) use internal checking code;
|
||||||
|
@@ -114,8 +126,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# set definitions and sources for powerpc
|
||||||
|
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
|
||||||
|
- CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*" )
|
||||||
|
+if(TARGET_ARCH MATCHES "^powerpc*" OR
|
||||||
|
+ TARGET_ARCH MATCHES "^ppc64*" )
|
||||||
|
set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off)
|
||||||
|
set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations:
|
||||||
|
off: disable the optimizations.")
|
||||||
|
@@ -138,8 +150,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# set definitions and sources for intel
|
||||||
|
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
|
||||||
|
- CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*" )
|
||||||
|
+if(TARGET_ARCH MATCHES "^i?86" OR
|
||||||
|
+ TARGET_ARCH MATCHES "^x86_64*" )
|
||||||
|
set(PNG_INTEL_SSE_POSSIBLE_VALUES on off)
|
||||||
|
set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations:
|
||||||
|
off: disable the optimizations")
|
||||||
|
@@ -162,8 +174,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# set definitions and sources for MIPS
|
||||||
|
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
|
||||||
|
- CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*" )
|
||||||
|
+if(TARGET_ARCH MATCHES "mipsel*" OR
|
||||||
|
+ TARGET_ARCH MATCHES "mips64el*" )
|
||||||
|
set(PNG_MIPS_MSA_POSSIBLE_VALUES on off)
|
||||||
|
set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations:
|
||||||
|
off: disable the optimizations")
|
||||||
|
diff --git a/pngrutil.c b/pngrutil.c
|
||||||
|
index 7001f1976..91930f1f2 100644
|
||||||
|
--- a/pngrutil.c
|
||||||
|
+++ b/pngrutil.c
|
||||||
|
@@ -422,13 +422,6 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner)
|
||||||
|
png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED;
|
||||||
|
}
|
||||||
|
|
||||||
|
-#if ZLIB_VERNUM >= 0x1290 && \
|
||||||
|
- defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_IGNORE_ADLER32)
|
||||||
|
- if (((png_ptr->options >> PNG_IGNORE_ADLER32) & 3) == PNG_OPTION_ON)
|
||||||
|
- /* Turn off validation of the ADLER32 checksum in IDAT chunks */
|
||||||
|
- ret = inflateValidate(&png_ptr->zstream, 0);
|
||||||
|
-#endif
|
||||||
|
-
|
||||||
|
if (ret == Z_OK)
|
||||||
|
png_ptr->zowner = owner;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.33.0.windows.1
|
||||||
4
deps/wxWidgets/wxWidgets.cmake
vendored
@@ -6,8 +6,9 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|||||||
endif ()
|
endif ()
|
||||||
set(_wx_toolkit "-DwxBUILD_TOOLKIT=gtk${_gtk_ver}")
|
set(_wx_toolkit "-DwxBUILD_TOOLKIT=gtk${_gtk_ver}")
|
||||||
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=1")
|
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=1")
|
||||||
|
set(_wx_egl "-DwxUSE_GLCANVAS_EGL=OFF")
|
||||||
else ()
|
else ()
|
||||||
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=0")
|
set(_wx_egl "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
@@ -52,6 +53,7 @@ qidistudio_add_cmake_project(wxWidgets
|
|||||||
-DwxUSE_LIBJPEG=sys
|
-DwxUSE_LIBJPEG=sys
|
||||||
-DwxUSE_LIBTIFF=sys
|
-DwxUSE_LIBTIFF=sys
|
||||||
-DwxUSE_EXPAT=sys
|
-DwxUSE_EXPAT=sys
|
||||||
|
${_wx_egl}
|
||||||
)
|
)
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
|
|||||||
19
docker/BuildAppimageDockerfile
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
ARG VERSION="studio_dep_22"
|
||||||
|
FROM ${VERSION}:1.0 AS builder
|
||||||
|
|
||||||
|
COPY ./ /QIDIStudio
|
||||||
|
|
||||||
|
WORKDIR /QIDIStudio
|
||||||
|
|
||||||
|
RUN mkdir -p /QIDIStudio/deps/build
|
||||||
|
|
||||||
|
RUN mv /destdir /QIDIStudio/deps/build/
|
||||||
|
|
||||||
|
RUN ./BuildLinux.sh -s
|
||||||
|
|
||||||
|
ENV container=podman
|
||||||
|
RUN ./BuildLinux.sh -i
|
||||||
|
|
||||||
|
FROM scratch AS export-stage
|
||||||
|
|
||||||
|
COPY --from=builder /QIDIStudio/build/QIDIStudio_ubu64.AppImage /
|
||||||
39
docker/BuildDepsDockerfile
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
FROM docker.io/ubuntu:22.04
|
||||||
|
|
||||||
|
# Disable interactive package configuration
|
||||||
|
RUN apt-get update && \
|
||||||
|
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
autoconf \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
xvfb \
|
||||||
|
extra-cmake-modules \
|
||||||
|
file \
|
||||||
|
git \
|
||||||
|
locales \
|
||||||
|
locales-all \
|
||||||
|
m4 \
|
||||||
|
pkgconf \
|
||||||
|
sudo \
|
||||||
|
wayland-protocols \
|
||||||
|
libwebkit2gtk-4.0-dev \
|
||||||
|
wget
|
||||||
|
|
||||||
|
COPY ./ /QIDIStudio
|
||||||
|
|
||||||
|
WORKDIR /QIDIStudio
|
||||||
|
|
||||||
|
# Allow password-less sudo for ALL users
|
||||||
|
RUN echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/999-passwordless
|
||||||
|
RUN chmod 440 /etc/sudoers.d/999-passwordless
|
||||||
|
|
||||||
|
RUN ./BuildLinux.sh -u
|
||||||
|
|
||||||
|
RUN ./BuildLinux.sh -dfr
|
||||||
|
|
||||||
|
RUN cp -r deps/build/destdir /
|
||||||
|
|
||||||
|
RUN rm -rf /QIDIStudio
|
||||||
39
docker/BuildDepsDockerfile24
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
FROM docker.io/ubuntu:24.04
|
||||||
|
|
||||||
|
# Disable interactive package configuration
|
||||||
|
RUN apt-get update && \
|
||||||
|
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get install -y \
|
||||||
|
autoconf \
|
||||||
|
build-essential \
|
||||||
|
cmake \
|
||||||
|
curl \
|
||||||
|
xvfb \
|
||||||
|
extra-cmake-modules \
|
||||||
|
file \
|
||||||
|
git \
|
||||||
|
locales \
|
||||||
|
locales-all \
|
||||||
|
m4 \
|
||||||
|
pkgconf \
|
||||||
|
sudo \
|
||||||
|
wayland-protocols \
|
||||||
|
libwebkit2gtk-4.1-dev \
|
||||||
|
wget
|
||||||
|
|
||||||
|
COPY ./ /QIDIStudio
|
||||||
|
|
||||||
|
WORKDIR /QIDIStudio
|
||||||
|
|
||||||
|
# Allow password-less sudo for ALL users
|
||||||
|
RUN echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/999-passwordless
|
||||||
|
RUN chmod 440 /etc/sudoers.d/999-passwordless
|
||||||
|
|
||||||
|
RUN ./BuildLinux.sh -u
|
||||||
|
|
||||||
|
RUN ./BuildLinux.sh -dfr
|
||||||
|
|
||||||
|
RUN cp -r deps/build/destdir /
|
||||||
|
|
||||||
|
RUN rm -rf /QIDIStudio
|
||||||
@@ -30,6 +30,7 @@ REQUIRED_DEV_PACKAGES=(
|
|||||||
nasm
|
nasm
|
||||||
yasm
|
yasm
|
||||||
libx264-dev
|
libx264-dev
|
||||||
|
libbz2-dev
|
||||||
)
|
)
|
||||||
|
|
||||||
if [[ -n "$UPDATE_LIB" ]]
|
if [[ -n "$UPDATE_LIB" ]]
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ REQUIRED_DEV_PACKAGES=(
|
|||||||
nasm
|
nasm
|
||||||
yasm
|
yasm
|
||||||
x264-devel
|
x264-devel
|
||||||
|
bzip2-devel
|
||||||
)
|
)
|
||||||
|
|
||||||
if [[ -n "$UPDATE_LIB" ]]
|
if [[ -n "$UPDATE_LIB" ]]
|
||||||
|
|||||||
@@ -1,4 +1,49 @@
|
|||||||
src/libslic3r/PresetBundle.cpp
|
src/libslic3r/PresetBundle.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevBed.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevBed.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevConfig.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevConfig.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevConfigUtil.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevConfigUtil.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevCtrl.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevCtrl.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevDefs.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevExtensionTool.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevExtensionTool.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevExtruderSystem.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevExtruderSystem.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevExtruderSystemCtrl.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFan.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFan.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFilaAmsSetting.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFilaAmsSetting.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFilaBlackList.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFilaSystem.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFirmware.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevFirmware.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevPrintOptions.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevPrintOptions.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevPrintTaskInfo.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevPrintTaskInfo.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevHMS.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevHMS.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevStorage.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevStorage.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevInfo.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevInfo.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevLamp.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevLamp.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevLampCtrl.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevManager.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevManager.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevMapping.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevMapping.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevNozzleSystem.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevNozzleSystem.cpp
|
||||||
|
src/slic3r/GUI/DeviceCore/DevUtil.h
|
||||||
|
src/slic3r/GUI/DeviceCore/DevUtil.cpp
|
||||||
src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h
|
src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h
|
||||||
src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp
|
src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp
|
||||||
src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h
|
src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h
|
||||||
@@ -6,6 +51,7 @@ src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp
|
|||||||
src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
|
src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
|
||||||
src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
|
src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
|
||||||
src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp
|
src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp
|
||||||
|
src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp
|
||||||
src/slic3r/GUI/Gizmos/GLGizmoMove.cpp
|
src/slic3r/GUI/Gizmos/GLGizmoMove.cpp
|
||||||
src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp
|
src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp
|
||||||
src/slic3r/GUI/Gizmos/GLGizmoScale.cpp
|
src/slic3r/GUI/Gizmos/GLGizmoScale.cpp
|
||||||
@@ -56,6 +102,8 @@ src/slic3r/GUI/Jobs/RotoptimizeJob.cpp
|
|||||||
src/slic3r/GUI/Jobs/BindJob.cpp
|
src/slic3r/GUI/Jobs/BindJob.cpp
|
||||||
src/slic3r/GUI/Jobs/PrintJob.cpp
|
src/slic3r/GUI/Jobs/PrintJob.cpp
|
||||||
src/slic3r/GUI/Jobs/SendJob.cpp
|
src/slic3r/GUI/Jobs/SendJob.cpp
|
||||||
|
src/slic3r/GUI/ThermalPreconditioningDialog.cpp
|
||||||
|
src/slic3r/GUI/ThermalPreconditioningDialog.hpp
|
||||||
src/slic3r/GUI/Jobs/SLAImportJob.cpp
|
src/slic3r/GUI/Jobs/SLAImportJob.cpp
|
||||||
src/slic3r/GUI/Jobs/UpgradeNetworkJob.cpp
|
src/slic3r/GUI/Jobs/UpgradeNetworkJob.cpp
|
||||||
src/slic3r/GUI/AboutDialog.cpp
|
src/slic3r/GUI/AboutDialog.cpp
|
||||||
@@ -71,8 +119,12 @@ src/slic3r/GUI/BedShapeDialog.cpp
|
|||||||
src/slic3r/GUI/BedShapeDialog.hpp
|
src/slic3r/GUI/BedShapeDialog.hpp
|
||||||
src/slic3r/GUI/ConfigManipulation.cpp
|
src/slic3r/GUI/ConfigManipulation.cpp
|
||||||
src/slic3r/GUI/DeviceManager.cpp
|
src/slic3r/GUI/DeviceManager.cpp
|
||||||
|
src/slic3r/GUI/DeviceErrorDialog.cpp
|
||||||
src/slic3r/GUI/ExtraRenderers.cpp
|
src/slic3r/GUI/ExtraRenderers.cpp
|
||||||
src/slic3r/GUI/Field.cpp
|
src/slic3r/GUI/Field.cpp
|
||||||
|
src/slic3r/GUI/GCodeRenderer/AdvancedRenderer.cpp
|
||||||
|
src/slic3r/GUI/GCodeRenderer/BaseRenderer.cpp
|
||||||
|
src/slic3r/GUI/GCodeRenderer/LegacyRenderer.cpp
|
||||||
src/slic3r/GUI/GCodeViewer.cpp
|
src/slic3r/GUI/GCodeViewer.cpp
|
||||||
src/slic3r/GUI/GLCanvas3D.cpp
|
src/slic3r/GUI/GLCanvas3D.cpp
|
||||||
src/slic3r/GUI/Calibration.cpp
|
src/slic3r/GUI/Calibration.cpp
|
||||||
@@ -98,6 +150,7 @@ src/slic3r/GUI/ObjectDataViewModel.cpp
|
|||||||
src/slic3r/GUI/OpenGLManager.cpp
|
src/slic3r/GUI/OpenGLManager.cpp
|
||||||
src/slic3r/GUI/OptionsGroup.cpp
|
src/slic3r/GUI/OptionsGroup.cpp
|
||||||
src/slic3r/GUI/PrintOptionsDialog.cpp
|
src/slic3r/GUI/PrintOptionsDialog.cpp
|
||||||
|
src/slic3r/GUI/SafetyOptionsDialog.cpp
|
||||||
src/slic3r/GUI/ParamsPanel.cpp
|
src/slic3r/GUI/ParamsPanel.cpp
|
||||||
src/slic3r/GUI/PartPlate.cpp
|
src/slic3r/GUI/PartPlate.cpp
|
||||||
src/slic3r/GUI/Plater.cpp
|
src/slic3r/GUI/Plater.cpp
|
||||||
@@ -133,6 +186,8 @@ src/slic3r/GUI/KBShortcutsDialog.hpp
|
|||||||
src/slic3r/GUI/KBShortcutsDialog.cpp
|
src/slic3r/GUI/KBShortcutsDialog.cpp
|
||||||
src/slic3r/GUI/ReleaseNote.cpp
|
src/slic3r/GUI/ReleaseNote.cpp
|
||||||
src/slic3r/GUI/ReleaseNote.hpp
|
src/slic3r/GUI/ReleaseNote.hpp
|
||||||
|
src/slic3r/GUI/HelioReleaseNote.cpp
|
||||||
|
src/slic3r/GUI/HelioReleaseNote.hpp
|
||||||
src/slic3r/GUI/UpgradePanel.cpp
|
src/slic3r/GUI/UpgradePanel.cpp
|
||||||
src/slic3r/Utils/FixModelByWin10.cpp
|
src/slic3r/Utils/FixModelByWin10.cpp
|
||||||
src/slic3r/Utils/PresetUpdater.cpp
|
src/slic3r/Utils/PresetUpdater.cpp
|
||||||
@@ -169,6 +224,7 @@ src/slic3r/GUI/BonjourDialog.cpp
|
|||||||
src/slic3r/GUI/calib_dlg.cpp
|
src/slic3r/GUI/calib_dlg.cpp
|
||||||
src/slic3r/GUI/PrintHostDialogs.cpp
|
src/slic3r/GUI/PrintHostDialogs.cpp
|
||||||
src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp
|
src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp
|
||||||
|
src/slic3r/GUI/UIHelpers/MeshBooleanUI.cpp
|
||||||
src/slic3r/GUI/NetworkTestDialog.cpp
|
src/slic3r/GUI/NetworkTestDialog.cpp
|
||||||
src/slic3r/GUI/CreatePresetsDialog.cpp
|
src/slic3r/GUI/CreatePresetsDialog.cpp
|
||||||
src/slic3r/GUI/DailyTips.cpp
|
src/slic3r/GUI/DailyTips.cpp
|
||||||
@@ -181,11 +237,21 @@ src/slic3r/Utils/MKS.cpp
|
|||||||
src/slic3r/Utils/OctoPrint.cpp
|
src/slic3r/Utils/OctoPrint.cpp
|
||||||
src/slic3r/Utils/Repetier.cpp
|
src/slic3r/Utils/Repetier.cpp
|
||||||
src/slic3r/Utils/ProfileDescription.hpp
|
src/slic3r/Utils/ProfileDescription.hpp
|
||||||
|
src/slic3r/Utils/HelioDragon.cpp
|
||||||
src/slic3r/GUI/SendMultiMachinePage.cpp
|
src/slic3r/GUI/SendMultiMachinePage.cpp
|
||||||
src/slic3r/GUI/MultiMachinePage.cpp
|
src/slic3r/GUI/MultiMachinePage.cpp
|
||||||
src/slic3r/GUI/MultiMachineManagerPage.cpp
|
src/slic3r/GUI/MultiMachineManagerPage.cpp
|
||||||
src/slic3r/GUI/MultiTaskManagerPage.cpp
|
src/slic3r/GUI/MultiTaskManagerPage.cpp
|
||||||
src/slic3r/GUI/MultiMachine.cpp
|
src/slic3r/GUI/MultiMachine.cpp
|
||||||
|
src/slic3r/GUI/UserPresetsDialog.cpp
|
||||||
src/slic3r/GUI/FilamentMapDialog.cpp
|
src/slic3r/GUI/FilamentMapDialog.cpp
|
||||||
src/slic3r/GUI/FilamentGroupPopup.cpp
|
src/slic3r/GUI/FilamentGroupPopup.cpp
|
||||||
src/slic3r/GUI/FilamentMapPanel.cpp
|
src/slic3r/GUI/FilamentMapPanel.cpp
|
||||||
|
src/slic3r/GUI/PartSkipDialog.cpp
|
||||||
|
src/slic3r/GUI/PartSkipDialog.hpp
|
||||||
|
src/slic3r/GUI/SkipPartCanvas.cpp
|
||||||
|
src/slic3r/GUI/SkipPartCanvas.hpp
|
||||||
|
src/slic3r/GUI/FilamentBitmapUtils.cpp
|
||||||
|
src/slic3r/GUI/FilamentBitmapUtils.hpp
|
||||||
|
src/slic3r/GUI/FilamentPickerDialog.cpp
|
||||||
|
src/slic3r/GUI/FilamentPickerDialog.hpp
|
||||||
|
|||||||
BIN
resources/calib/pressure_advance/auto_pa_line_dual.3mf
Normal file
BIN
resources/calib/pressure_advance/auto_pa_line_single.3mf
Normal file
@@ -1,4 +1,92 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIFfzCCA2egAwIBAgIUXtzR6tRiL/RHBRXOoyFU0+XrliowDQYJKoZIhvcNAQEL
|
||||||
|
BQAwRjELMAkGA1UEBhMCQ04xITAfBgNVBAoMGEJCTCBUZWNobm9sb2dpZXMgQ28u
|
||||||
|
IEx0ZDEUMBIGA1UEAwwLQkJMIENBMiBSU0EwIBcNMjUwNjE3MDEzODA4WhgPMjA1
|
||||||
|
MDA2MTcwMTM4MDhaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5v
|
||||||
|
bG9naWVzIENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgUlNBMIICIjANBgkqhkiG
|
||||||
|
9w0BAQEFAAOCAg8AMIICCgKCAgEAo4550G4c42gTKzQqixwKT089RizIdZpyOcGA
|
||||||
|
679rPaOdWsMqVwnYPP2FpMqXKkjFbedE+SpGloi2NKCuiPNVRbq9PHOOZwTs7YLo
|
||||||
|
bOwf53FJuO6vRFpzFfX1tlc9zlFqJvZnYO9NgHpMysidocWcgrDN/SIDywgPB5CV
|
||||||
|
bYg3Vvzua9fwZx9e5KT9xd5IpTqdTrWS47jQOVKLhdQCbJFIlMrblOwLBAx+fHok
|
||||||
|
wqh6tkI6Ktuyyjw8Dysebi1ndWjKtZ2mW47r8xZ/J+z3EZqcyJMY6MRtx/zb1jBF
|
||||||
|
uHtkjrb5Kv1DMzSKlkaNJIbvC+Mk+hI97W+SjLSRuIdC7+oJUzWaSzgu9cjXCVfm
|
||||||
|
q8t4IL/35hP69PK95LgLectIrP96CYAT/aVMG19FrFW0QWEyfT+kzG4jkumfPbHq
|
||||||
|
Y2nNkEN0+tjj3h4WdzrWgQEojK/lhfcRFVkts74+aZoMpQP+vmL17CKmSzXk5o/e
|
||||||
|
K21xgxJdzMbdztfTpibiXk0abfOpN+1VR+3NYa+bROAKNyGaReEGsyW2bjcjNx51
|
||||||
|
5Vqzj3SVxhMSp5vfF9E4A1jE99M/l9jQDM6RzkT0lMccGAd5tUSdNvDlrqtQaQiK
|
||||||
|
v/ZsXPgXLTWfOpvaLNEgwdMgZMuhjpkwvAZyoYfeF9kyydjDh7bvrX//cz/VopAU
|
||||||
|
lxUtQtMCAwEAAaNjMGEwHQYDVR0OBBYEFNVJgQad1sNTN0jxVkwbJ/XM1an1MB8G
|
||||||
|
A1UdIwQYMBaAFNVJgQad1sNTN0jxVkwbJ/XM1an1MA8GA1UdEwEB/wQFMAMBAf8w
|
||||||
|
DgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQBFZDKMJfp/N4gBeFHh
|
||||||
|
MiFehaUyMS6e9mzrTfMLJLJoj6Jopa9V9jIfcCEBGZuRThqFcATV+UdFHSINpUcH
|
||||||
|
upcCYnazTRC4dn1hnxnQ1ojQcHxdGp9xGw/YclAKD97d8bPShfBMT1to9zbMK7T5
|
||||||
|
L8zgqg01YIOKjQk0Hcd0+0iUr6m8zQ5P8Rl3QXqAyeWgqmYQrrjTWwPsgdfHNXKX
|
||||||
|
vDrx7/cqry5lKU802hUplKMBxelv4W8407Ytj1lfJOwvxqxxsFU5jSwcUG3zo2vk
|
||||||
|
QtjRs8m5BKup5K1OPYkkPu7Ld89X0XpU073/dNDG11uxb1eDKrtNP6vZuZjNE2Pq
|
||||||
|
8HCoI1EtP+ItyqtUMvHi6Z2zsmlA25broVioeUKxjlIecpQ9JR/FhDu9CWNF/nDW
|
||||||
|
LSORNaMMzgsMSzI+HCiUhqN+qMIvVP6rzGTJzwqz/lc5Lf+ZPCnGA9WJTT4uPIhf
|
||||||
|
ufbZmnUJ35WuWKHxovDsqBh88zQ9sZ+ei4Hi4vVzOhUgfG3aLoSQEYqRoqaboANh
|
||||||
|
wCwzyuW2Rv54u5QSBbd6Gx1OpvsWmLPWd2/iL2kISl5wfmLGVydvSJa+rbOfuAy7
|
||||||
|
ycVQacVDQCAnbhoVrQy7+454QsKSW3ZV6BcyRrorewCyCYgd7nyxflxHZTBEykXX
|
||||||
|
haGNe/KFNvJBMOIuIUzknRRmiQ==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIB8zCCAZmgAwIBAgIUe61jGQ4RzIC8k+sNuqbI/CaNqPIwCgYIKoZIzj0EAwIw
|
||||||
|
RjELMAkGA1UEBhMCQ04xITAfBgNVBAoMGEJCTCBUZWNobm9sb2dpZXMgQ28uIEx0
|
||||||
|
ZDEUMBIGA1UEAwwLQkJMIENBMiBFQ0MwIBcNMjUwNjE3MDEzODM1WhgPMjA1MDA2
|
||||||
|
MTcwMTM4MzVaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5vbG9n
|
||||||
|
aWVzIENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgRUNDMFkwEwYHKoZIzj0CAQYI
|
||||||
|
KoZIzj0DAQcDQgAEpKTF7wRSty4DXpGJzgCPwRh8ghLlxUC3qJbyEgLqTvJgbiwY
|
||||||
|
APPHK7kVbVmerkqhHOT4QeWRlTG3dOQGLA2VpaNjMGEwHQYDVR0OBBYEFKuRpsjY
|
||||||
|
REOyIKH7HwOE6jhGBd6NMB8GA1UdIwQYMBaAFKuRpsjYREOyIKH7HwOE6jhGBd6N
|
||||||
|
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA0gA
|
||||||
|
MEUCIErBiUm3VdtP3rz4kb8aLpI5p+BzL7M9vElBGWWJxpHMAiEA3r5tJWVGwuxi
|
||||||
|
YCrB1c40KYFRFyahGrhOJZAj/YhRdnU=
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIEeTCCA2GgAwIBAgIUOq+lNIaC2xsswkFqj5JPyVBl45cwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwQjELMAkGA1UEBhMCQ04xIjAgBgNVBAoMGUJCTCBUZWNobm9sb2dpZXMgQ28u
|
||||||
|
LCBMdGQxDzANBgNVBAMMBkJCTCBDQTAeFw0yNTA2MTcwMjAxMjdaFw0zNTA2MTUw
|
||||||
|
MjAxMjdaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5vbG9naWVz
|
||||||
|
IENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgUlNBMIICIjANBgkqhkiG9w0BAQEF
|
||||||
|
AAOCAg8AMIICCgKCAgEAo4550G4c42gTKzQqixwKT089RizIdZpyOcGA679rPaOd
|
||||||
|
WsMqVwnYPP2FpMqXKkjFbedE+SpGloi2NKCuiPNVRbq9PHOOZwTs7YLobOwf53FJ
|
||||||
|
uO6vRFpzFfX1tlc9zlFqJvZnYO9NgHpMysidocWcgrDN/SIDywgPB5CVbYg3Vvzu
|
||||||
|
a9fwZx9e5KT9xd5IpTqdTrWS47jQOVKLhdQCbJFIlMrblOwLBAx+fHokwqh6tkI6
|
||||||
|
Ktuyyjw8Dysebi1ndWjKtZ2mW47r8xZ/J+z3EZqcyJMY6MRtx/zb1jBFuHtkjrb5
|
||||||
|
Kv1DMzSKlkaNJIbvC+Mk+hI97W+SjLSRuIdC7+oJUzWaSzgu9cjXCVfmq8t4IL/3
|
||||||
|
5hP69PK95LgLectIrP96CYAT/aVMG19FrFW0QWEyfT+kzG4jkumfPbHqY2nNkEN0
|
||||||
|
+tjj3h4WdzrWgQEojK/lhfcRFVkts74+aZoMpQP+vmL17CKmSzXk5o/eK21xgxJd
|
||||||
|
zMbdztfTpibiXk0abfOpN+1VR+3NYa+bROAKNyGaReEGsyW2bjcjNx515Vqzj3SV
|
||||||
|
xhMSp5vfF9E4A1jE99M/l9jQDM6RzkT0lMccGAd5tUSdNvDlrqtQaQiKv/ZsXPgX
|
||||||
|
LTWfOpvaLNEgwdMgZMuhjpkwvAZyoYfeF9kyydjDh7bvrX//cz/VopAUlxUtQtMC
|
||||||
|
AwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
|
||||||
|
BBYEFNVJgQad1sNTN0jxVkwbJ/XM1an1MB8GA1UdIwQYMBaAFI80QmjcZ06PxCKe
|
||||||
|
xXxJ5avdRL4eMA0GCSqGSIb3DQEBCwUAA4IBAQAvS8tyfagaGsFf9YncA2ko/Na5
|
||||||
|
9BVF+8TlUo+32oznwIVpS1AhSgLP6rNVekXNFKbuP5htudLQ17ZRBJI/UMVyYEDq
|
||||||
|
IN7xv7Zj+zJwF6W6haYrjb2Vk8igw1XvNULZfvVNNKIkvJUiVqEslWrC+k74crk/
|
||||||
|
Wv8ChVf+zqvfIN6LV3esaGRL02J3AprQGb7DDhR1EefQMScDkNpGJMUmvCmfknrl
|
||||||
|
iK8qgvQN1SWO7JRf6fNKHsN1ZQvyP0pgLWxpT3V0/0/WttqX3cMGuJF+jVUzm/Nh
|
||||||
|
xYhFewG8vc3KzTjnwQApMA6CW554FOJWFyOD2jn5yJLT3Vue+aYDQRp4bKMx
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICrjCCAZagAwIBAgIUOq+lNIaC2xsswkFqj5JPyVBl45gwDQYJKoZIhvcNAQEL
|
||||||
|
BQAwQjELMAkGA1UEBhMCQ04xIjAgBgNVBAoMGUJCTCBUZWNobm9sb2dpZXMgQ28u
|
||||||
|
LCBMdGQxDzANBgNVBAMMBkJCTCBDQTAeFw0yNTA2MTcwMjAxNDdaFw0zNTA2MTUw
|
||||||
|
MjAxNDdaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5vbG9naWVz
|
||||||
|
IENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgRUNDMFkwEwYHKoZIzj0CAQYIKoZI
|
||||||
|
zj0DAQcDQgAEpKTF7wRSty4DXpGJzgCPwRh8ghLlxUC3qJbyEgLqTvJgbiwYAPPH
|
||||||
|
K7kVbVmerkqhHOT4QeWRlTG3dOQGLA2VpaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAO
|
||||||
|
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFKuRpsjYREOyIKH7HwOE6jhGBd6NMB8G
|
||||||
|
A1UdIwQYMBaAFI80QmjcZ06PxCKexXxJ5avdRL4eMA0GCSqGSIb3DQEBCwUAA4IB
|
||||||
|
AQCg6PjUSSZV+4bvejcVMvgXmKzfD95osWn0ctnoMBxPDa+m+Gg+BcLT2IlFAe3E
|
||||||
|
KYMvu4T295WQc92rjKYqW6cirFppng9uEFW2mZLimxaSmutsTftE3sbMVMJ/SLYN
|
||||||
|
PV7TFv6mcBSIFWXwmBOIpbh4BUcVfONTvdSfIqfyAVxsq4xzc2nc6hPBpAm21Ayj
|
||||||
|
ToC1ev/TbDJ8VllFZiEVmWWlIP3aNzAm8S2mOpxPB2WnanaZHSrvXLFhstyzwrjD
|
||||||
|
yO1/isOZ7wtr7rcuTJdEvvvCimOZlkfRhaDoTew9tQ0E2FVpzzSinw02qmQ1xIE9
|
||||||
|
5/H5ZzJSPkpeAHWEPnKkxg0v
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
MIIDZTCCAk2gAwIBAgIUV1FckwXElyek1onFnQ9kL7Bk4N8wDQYJKoZIhvcNAQEL
|
MIIDZTCCAk2gAwIBAgIUV1FckwXElyek1onFnQ9kL7Bk4N8wDQYJKoZIhvcNAQEL
|
||||||
BQAwQjELMAkGA1UEBhMCQ04xIjAgBgNVBAoMGUJCTCBUZWNobm9sb2dpZXMgQ28u
|
BQAwQjELMAkGA1UEBhMCQ04xIjAgBgNVBAoMGUJCTCBUZWNobm9sb2dpZXMgQ28u
|
||||||
LCBMdGQxDzANBgNVBAMMBkJCTCBDQTAeFw0yMjA0MDQwMzQyMTFaFw0zMjA0MDEw
|
LCBMdGQxDzANBgNVBAMMBkJCTCBDQTAeFw0yMjA0MDQwMzQyMTFaFw0zMjA0MDEw
|
||||||
@@ -18,4 +106,4 @@ BdOoo96iX89rRPoxeed1cpq5hZwbeka3+CJGV76itWp35Up5rmmUqrlyQOr/Wax6
|
|||||||
itosIzG0MfhgUzU51A2P/hSnD3NDMXv+wUY/AvqgIL7u7fbDKnku1GzEKIkfH8hm
|
itosIzG0MfhgUzU51A2P/hSnD3NDMXv+wUY/AvqgIL7u7fbDKnku1GzEKIkfH8hm
|
||||||
Rs6d8SCU89xyrwzQ0PR853irHas3WrHVqab3P+qNwR0YirL0Qk7Xt/q3O1griNg2
|
Rs6d8SCU89xyrwzQ0PR853irHas3WrHVqab3P+qNwR0YirL0Qk7Xt/q3O1griNg2
|
||||||
Blbjg3obpHo9
|
Blbjg3obpHo9
|
||||||
-----END CERTIFICATE-----
|
-----END CERTIFICATE-----
|
||||||
79
resources/data/helio_hints.ini
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
[hint: Single-Material Only]
|
||||||
|
text = Single-Material Only\nHelio currently simulates one material and one nozzle per job. Multi-material or multi-extruder G-code adds long pauses that break thermal continuity, so results wouldn’t be meaningful.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio0.png
|
||||||
|
|
||||||
|
[hint: One Plate per Job]
|
||||||
|
text = One Plate per Job\nUpload G-code with a single build plate—multi-plate projects aren’t yet supported, so only the first plate would run.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio1.png
|
||||||
|
|
||||||
|
[hint: What is the Thermal Quality Index?]
|
||||||
|
text = What is the Thermal Quality Index?\nThe Thermal Quality Index (scale –100 to +100) shows how hot or cold each region prints—green (≈ 0) is the “just right” zone for strong, warp-free parts. Keep most of the part green for best results.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio2.png
|
||||||
|
|
||||||
|
[hint: Voxel-Level Accuracy]
|
||||||
|
text = Voxel-Level Accuracy\nWe predict temperature in every voxel at every time-step, and for standard jobs the forecast is typically within ±5–10 °C. Pauses, custom firmware or odd cooling can widen that margin.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio3.png
|
||||||
|
|
||||||
|
[hint: Fan & Airflow Model]
|
||||||
|
text = Fan & Airflow Model\nA simplified fan-and-room model shows how cooling settings change part temps without slow CFD maths—great for day-to-day tuning. Chamber vortices aren’t yet simulated so runs stay fast.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio0.png
|
||||||
|
|
||||||
|
[hint: TQI Limits Explained]
|
||||||
|
text = TQI Limits Explained\n-100 → too cold: tensile strength is ~50 % lower than parts printed at the ideal 0 (ASTM D638 dog-bone tests). +100 → too hot: layers stay molten and may sag or collapse. Keep regions near 0 for peak strength and accuracy.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio1.png
|
||||||
|
|
||||||
|
[hint: What Drives Runtime?]
|
||||||
|
text = What Drives Runtime?\nExtra layers, dense infill, lots of tiny arcs (small mesh elements) or very slow printing speeds all extend simulation time because the solver must step through more seconds. Multi-core CPUs or CUDA GPUs speed things up.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio2.png
|
||||||
|
|
||||||
|
[hint: Nozzle Temp Range]
|
||||||
|
text = Nozzle Temp Range\nSupported set-points are 190 – 320 °C; anything outside is clamped to keep physics realistic.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio3.png
|
||||||
|
|
||||||
|
[hint: Debugging Flowchart]
|
||||||
|
text = Debugging Flowchart\nNot sure why a result looks off? Follow our step-by-step debugging flowchart to trace settings, G-code and material issues in minutes.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/flowchart
|
||||||
|
image = images/dailytips_helio0.png
|
||||||
|
|
||||||
|
[hint: Why Cooling Varies]
|
||||||
|
text = Why Cooling Varies\nOuter walls and bridges cool fastest while thick interiors stay warmer—geometry, airflow and tool-path all play a part, and the simulation visualises these differences.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio1.png
|
||||||
|
|
||||||
|
[hint: Extrusion Temp Model]
|
||||||
|
text = Extrusion Temp Model\nMaterial properties shape the melt curve, but printer geometry decides how much heat the filament actually gains, so the model is material-specific and printer-calibrated.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio2.png
|
||||||
|
|
||||||
|
[hint: Nozzle setting of 190 °C vs 320 °C?]
|
||||||
|
text = Nozzle setting of 190 °C vs 320 °C?\nA 100 °C nozzle change only nudges the thermal index because extrusion temp, flow rate and post-deposition cooling dominate the part’s heat history.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio3.png
|
||||||
|
|
||||||
|
[hint: Bed Temperature influence]
|
||||||
|
text = Bed Temperature influence\nOnly the first-layer bed temp feeds the model right now; later bed changes aren’t yet captured.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio0.png
|
||||||
|
|
||||||
|
[hint: Actual Tool-Path]
|
||||||
|
text = Actual Tool-Path\nYes—your exact G-code path, speeds and fan commands are simulated.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio1.png
|
||||||
|
|
||||||
|
[hint: Mesh Resolution]
|
||||||
|
text = Mesh Resolution\nThe voxel grid is finer than the G-code line spacing, capturing layer-by-layer detail without wasting compute.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/FAQ
|
||||||
|
image = images/dailytips_helio2.png
|
||||||
|
|
||||||
|
[hint: Shrinkage, Warping & Stress]
|
||||||
|
text = Shrinkage, Warping & Stress\nBy controlling the thermal index you can remove the heat-driven causes of warp and stress.
|
||||||
|
documentation_link = https://wiki.helioadditive.com/en/flowchart
|
||||||
|
image = images/dailytips_helio3.png
|
||||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 9.8 KiB |
1
resources/images/add_copies.svg
Normal file
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M.5,13.5V3.5a1,1,0,0,1,1-1h10a1,1,0,0,1,1,1v10a1,1,0,0,1-1,1H1.5A1,1,0,0,1,.5,13.5Zm13-1a1,1,0,0,0,1-1V1.5a1,1,0,0,0-1-1H3.5a1,1,0,0,0-1,1m0,7h3m2,0h3m-4,4v-8" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round;opacity:1"/></svg>
|
||||||
|
After Width: | Height: | Size: 346 B |
3
resources/images/ams_drying.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.7124 5.11094V7.01094C12.7124 7.40578 12.3947 7.72344 11.9999 7.72344C11.6051 7.72344 11.2874 7.40578 11.2874 7.01094V5.11094C11.2874 4.71609 11.6051 4.39844 11.9999 4.39844C12.3947 4.39844 12.7124 4.71609 12.7124 5.11094ZM17.3733 7.63141L16.0285 8.97625C15.7494 9.25531 15.2982 9.25531 15.0221 8.97625C14.746 8.69719 14.743 8.24594 15.0221 7.96984L16.3669 6.625C16.646 6.34594 17.0972 6.34594 17.3733 6.625C17.6494 6.90406 17.6524 7.35531 17.3733 7.63141ZM7.63287 6.625L8.97771 7.96984C9.25678 8.24891 9.25678 8.70016 8.97771 8.97625C8.69865 9.25234 8.2474 9.25531 7.97131 8.97625L6.62646 7.63141C6.3474 7.35234 6.3474 6.90109 6.62646 6.625C6.90553 6.34891 7.35678 6.34594 7.63287 6.625ZM5.1124 11.2859H7.0124C7.40725 11.2859 7.7249 11.6036 7.7249 11.9984C7.7249 12.3933 7.40725 12.7109 7.0124 12.7109H5.1124C4.71756 12.7109 4.3999 12.3933 4.3999 11.9984C4.3999 11.6036 4.71756 11.2859 5.1124 11.2859ZM16.9874 11.2859H18.8874C19.2822 11.2859 19.5999 11.6036 19.5999 11.9984C19.5999 12.3933 19.2822 12.7109 18.8874 12.7109H16.9874C16.5926 12.7109 16.2749 12.3933 16.2749 11.9984C16.2749 11.6036 16.5926 11.2859 16.9874 11.2859ZM8.97771 16.03L7.63287 17.3719C7.35381 17.6509 6.90256 17.6509 6.62646 17.3719C6.35037 17.0928 6.3474 16.6416 6.62646 16.3655L7.97131 15.0206C8.25037 14.7416 8.70162 14.7416 8.97771 15.0206C9.25381 15.2997 9.25678 15.7509 8.97771 16.027V16.03ZM16.0315 15.0236L17.3733 16.3655C17.6524 16.6445 17.6524 17.0958 17.3733 17.3719C17.0943 17.648 16.643 17.6509 16.3669 17.3719L15.0221 16.027C14.743 15.748 14.743 15.2967 15.0221 15.0206C15.3012 14.7445 15.7524 14.7416 16.0285 15.0206L16.0315 15.0236ZM12.7124 16.9859V18.8859C12.7124 19.2808 12.3947 19.5984 11.9999 19.5984C11.6051 19.5984 11.2874 19.2808 11.2874 18.8859V16.9859C11.2874 16.5911 11.6051 16.2734 11.9999 16.2734C12.3947 16.2734 12.7124 16.5911 12.7124 16.9859ZM13.8999 11.9984C13.8999 11.4945 13.6997 11.0113 13.3434 10.6549C12.9871 10.2986 12.5038 10.0984 11.9999 10.0984C11.496 10.0984 11.0127 10.2986 10.6564 10.6549C10.3001 11.0113 10.0999 11.4945 10.0999 11.9984C10.0999 12.5023 10.3001 12.9856 10.6564 13.3419C11.0127 13.6983 11.496 13.8984 11.9999 13.8984C12.5038 13.8984 12.9871 13.6983 13.3434 13.3419C13.6997 12.9856 13.8999 12.5023 13.8999 11.9984ZM8.6749 11.9984C8.6749 11.1166 9.02521 10.2709 9.64877 9.64731C10.2723 9.02375 11.1181 8.67344 11.9999 8.67344C12.8817 8.67344 13.7275 9.02375 14.351 9.64731C14.9746 10.2709 15.3249 11.1166 15.3249 11.9984C15.3249 12.8803 14.9746 13.726 14.351 14.3496C13.7275 14.9731 12.8817 15.3234 11.9999 15.3234C11.1181 15.3234 10.2723 14.9731 9.64877 14.3496C9.02521 13.726 8.6749 12.8803 8.6749 11.9984Z" fill="#1F1F1F"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
3
resources/images/ams_is_drying.svg
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M12.7124 5.11094V7.01094C12.7124 7.40578 12.3947 7.72344 11.9999 7.72344C11.6051 7.72344 11.2874 7.40578 11.2874 7.01094V5.11094C11.2874 4.71609 11.6051 4.39844 11.9999 4.39844C12.3947 4.39844 12.7124 4.71609 12.7124 5.11094ZM17.3733 7.63141L16.0285 8.97625C15.7494 9.25531 15.2982 9.25531 15.0221 8.97625C14.746 8.69719 14.743 8.24594 15.0221 7.96984L16.3669 6.625C16.646 6.34594 17.0972 6.34594 17.3733 6.625C17.6494 6.90406 17.6524 7.35531 17.3733 7.63141ZM7.63287 6.625L8.97771 7.96984C9.25678 8.24891 9.25678 8.70016 8.97771 8.97625C8.69865 9.25234 8.2474 9.25531 7.97131 8.97625L6.62646 7.63141C6.3474 7.35234 6.3474 6.90109 6.62646 6.625C6.90553 6.34891 7.35678 6.34594 7.63287 6.625ZM5.1124 11.2859H7.0124C7.40725 11.2859 7.7249 11.6036 7.7249 11.9984C7.7249 12.3933 7.40725 12.7109 7.0124 12.7109H5.1124C4.71756 12.7109 4.3999 12.3933 4.3999 11.9984C4.3999 11.6036 4.71756 11.2859 5.1124 11.2859ZM16.9874 11.2859H18.8874C19.2822 11.2859 19.5999 11.6036 19.5999 11.9984C19.5999 12.3933 19.2822 12.7109 18.8874 12.7109H16.9874C16.5926 12.7109 16.2749 12.3933 16.2749 11.9984C16.2749 11.6036 16.5926 11.2859 16.9874 11.2859ZM8.97771 16.03L7.63287 17.3719C7.35381 17.6509 6.90256 17.6509 6.62646 17.3719C6.35037 17.0928 6.3474 16.6416 6.62646 16.3655L7.97131 15.0206C8.25037 14.7416 8.70162 14.7416 8.97771 15.0206C9.25381 15.2997 9.25678 15.7509 8.97771 16.027V16.03ZM16.0315 15.0236L17.3733 16.3655C17.6524 16.6445 17.6524 17.0958 17.3733 17.3719C17.0943 17.648 16.643 17.6509 16.3669 17.3719L15.0221 16.027C14.743 15.748 14.743 15.2967 15.0221 15.0206C15.3012 14.7445 15.7524 14.7416 16.0285 15.0206L16.0315 15.0236ZM12.7124 16.9859V18.8859C12.7124 19.2808 12.3947 19.5984 11.9999 19.5984C11.6051 19.5984 11.2874 19.2808 11.2874 18.8859V16.9859C11.2874 16.5911 11.6051 16.2734 11.9999 16.2734C12.3947 16.2734 12.7124 16.5911 12.7124 16.9859ZM13.8999 11.9984C13.8999 11.4945 13.6997 11.0113 13.3434 10.6549C12.9871 10.2986 12.5038 10.0984 11.9999 10.0984C11.496 10.0984 11.0127 10.2986 10.6564 10.6549C10.3001 11.0113 10.0999 11.4945 10.0999 11.9984C10.0999 12.5023 10.3001 12.9856 10.6564 13.3419C11.0127 13.6983 11.496 13.8984 11.9999 13.8984C12.5038 13.8984 12.9871 13.6983 13.3434 13.3419C13.6997 12.9856 13.8999 12.5023 13.8999 11.9984ZM8.6749 11.9984C8.6749 11.1166 9.02521 10.2709 9.64877 9.64731C10.2723 9.02375 11.1181 8.67344 11.9999 8.67344C12.8817 8.67344 13.7275 9.02375 14.351 9.64731C14.9746 10.2709 15.3249 11.1166 15.3249 11.9984C15.3249 12.8803 14.9746 13.726 14.351 14.3496C13.7275 14.9731 12.8817 15.3234 11.9999 15.3234C11.1181 15.3234 10.2723 14.9731 9.64877 14.3496C9.02521 13.726 8.6749 12.8803 8.6749 11.9984Z" fill="#F09A17"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 2.7 KiB |
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<g>
|
<g>
|
||||||
<title>Layer 1</title>
|
<title>Layer 1</title>
|
||||||
<path fill-rule="evenodd" fill="#20e86a" d="m90.53,44.88c-0.4,-11.48 -5.07,-22.4 -13.09,-30.55c-8.4,-8.54 -19.79,-13.33 -31.66,-13.33s-23.27,4.79 -31.67,13.33c-5.02,5.11 -8.72,11.3 -10.89,18.04l3.9,0.32c2.02,-5.82 5.3,-11.18 9.67,-15.63c7.68,-7.81 18.11,-12.19 28.97,-12.19s21.29,4.39 28.97,12.19c7.31,7.43 11.57,17.37 11.97,27.82l-3.51,0l5.4,7.12l5.4,-7.12l-3.47,0l0.01,0z" class="cls-1" id="path2"/>
|
<path fill-rule="evenodd" fill="#4479FB" d="m90.53,44.88c-0.4,-11.48 -5.07,-22.4 -13.09,-30.55c-8.4,-8.54 -19.79,-13.33 -31.66,-13.33s-23.27,4.79 -31.67,13.33c-5.02,5.11 -8.72,11.3 -10.89,18.04l3.9,0.32c2.02,-5.82 5.3,-11.18 9.67,-15.63c7.68,-7.81 18.11,-12.19 28.97,-12.19s21.29,4.39 28.97,12.19c7.31,7.43 11.57,17.37 11.97,27.82l-3.51,0l5.4,7.12l5.4,-7.12l-3.47,0l0.01,0z" class="cls-1" id="path2"/>
|
||||||
<path fill-rule="evenodd" fill="#20e86a" d="m87.87,59.31c-2.02,5.82 -5.3,11.18 -9.67,15.63c-7.68,7.81 -18.11,12.19 -28.97,12.19s-21.29,-4.39 -28.97,-12.19c-7.31,-7.43 -11.57,-17.37 -11.97,-27.82l3.51,0l-5.4,-7.12l-5.4,7.12l3.47,0c0.4,11.48 5.07,22.4 13.09,30.55c8.4,8.53 19.79,13.33 31.66,13.33s23.26,-4.79 31.66,-13.33c5.02,-5.11 8.72,-11.3 10.89,-18.04l-3.9,-0.32z" class="cls-1" id="path1"/>
|
<path fill-rule="evenodd" fill="#4479FB" d="m87.87,59.31c-2.02,5.82 -5.3,11.18 -9.67,15.63c-7.68,7.81 -18.11,12.19 -28.97,12.19s-21.29,-4.39 -28.97,-12.19c-7.31,-7.43 -11.57,-17.37 -11.97,-27.82l3.51,0l-5.4,-7.12l-5.4,7.12l3.47,0c0.4,11.48 5.07,22.4 13.09,30.55c8.4,8.53 19.79,13.33 31.66,13.33s23.26,-4.79 31.66,-13.33c5.02,-5.11 8.72,-11.3 10.89,-18.04l-3.9,-0.32z" class="cls-1" id="path1"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 929 B After Width: | Height: | Size: 929 B |
BIN
resources/images/bed_cool_Q2.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/images/bed_cool_Q2C.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/images/bed_cool_X-Max 4.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/images/bed_cool_supertack_Q2.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/images/bed_cool_supertack_Q2C.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/images/bed_cool_supertack_X-Max 4.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
resources/images/bed_engineering_Q2.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
resources/images/bed_engineering_Q2C.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
resources/images/bed_engineering_X-Max 4.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
resources/images/bed_high_templ_Q2.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
resources/images/bed_high_templ_Q2C.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
resources/images/bed_high_templ_X-Max 4.png
Normal file
|
After Width: | Height: | Size: 3.6 KiB |
BIN
resources/images/bed_pei_Q2.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
resources/images/bed_pei_Q2C.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
resources/images/bed_pei_X-Max 4.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
resources/images/big_bed_cool_Q2.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
resources/images/big_bed_cool_Q2C.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
resources/images/big_bed_cool_X-Max 4.png
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
resources/images/big_bed_cool_supertack_Q2.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
resources/images/big_bed_cool_supertack_Q2C.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
resources/images/big_bed_cool_supertack_X-Max 4.png
Normal file
|
After Width: | Height: | Size: 69 KiB |