Merge remote-tracking branch 'remote/main' into dev/h2d

# Conflicts:
#	src/libslic3r/CMakeLists.txt
#	src/slic3r/CMakeLists.txt
This commit is contained in:
Noisyfox
2025-09-20 13:10:10 +08:00
44 changed files with 1020 additions and 948 deletions

View File

@@ -1,10 +1,14 @@
on: on:
push: push:
paths: paths:
- build_linux.sh - '**.sh'
- 'scripts/linux.d/*'
pull_request: pull_request:
paths: paths:
- build_linux.sh - '**.sh'
- 'scripts/linux.d/*'
schedule:
- cron: '55 7 * * *' # run once a day near midnight US Pacific time
workflow_dispatch: # allows for manual dispatch workflow_dispatch: # allows for manual dispatch
name: "Shellcheck" name: "Shellcheck"
@@ -33,6 +37,8 @@ jobs:
mv ~/shellcheck-"${INPUT_VERSION}"/shellcheck ~/shellcheck mv ~/shellcheck-"${INPUT_VERSION}"/shellcheck ~/shellcheck
- uses: actions/checkout@v5 - uses: actions/checkout@v5
with:
fetch-depth: 1
- name: Shellcheck build_linux.sh - name: Shellcheck scripts
run: ~/shellcheck -e SC1090 build_linux.sh run: 'find . -not -name \*.md \( -path ./scripts/linux.d/\* -o -name \*.sh \) -print0 | xargs -0 ~/shellcheck'

4
.gitignore vendored
View File

@@ -1,6 +1,8 @@
Build Build
Build.bat Build.bat
/build*/ /build*/
CMakeLists.txt.user
**/CMakeLists.txt.autosave
deps/build* deps/build*
MYMETA.json MYMETA.json
MYMETA.yml MYMETA.yml
@@ -36,4 +38,4 @@ src/OrcaSlicer-doc/
**/.flatpak-builder/ **/.flatpak-builder/
resources/profiles/user/default resources/profiles/user/default
*.code-workspace *.code-workspace
deps_src/build/ deps_src/build/

View File

@@ -133,6 +133,7 @@ if [ ! -f "./scripts/linux.d/${DISTRIBUTION}" ] ; then
exit 1 exit 1
else else
echo "resolving system dependencies for distribution \"${DISTRIBUTION}\" ..." echo "resolving system dependencies for distribution \"${DISTRIBUTION}\" ..."
# shellcheck source=/dev/null
source "./scripts/linux.d/${DISTRIBUTION}" source "./scripts/linux.d/${DISTRIBUTION}"
fi fi
@@ -155,17 +156,17 @@ if [[ -z "${SKIP_RAM_CHECK}" ]] ; then
check_available_memory_and_disk check_available_memory_and_disk
fi fi
export CMAKE_C_CXX_COMPILER_CLANG="" export CMAKE_C_CXX_COMPILER_CLANG=()
if [[ -n "${USE_CLANG}" ]] ; then if [[ -n "${USE_CLANG}" ]] ; then
export CMAKE_C_CXX_COMPILER_CLANG="-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++" export CMAKE_C_CXX_COMPILER_CLANG=(-DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_COMPILER=/usr/bin/clang++)
fi fi
# Configure use of ld.lld as the linker when requested # Configure use of ld.lld as the linker when requested
export CMAKE_LLD_LINKER_ARGS="" export CMAKE_LLD_LINKER_ARGS=()
if [[ -n "${USE_LLD}" ]] ; then if [[ -n "${USE_LLD}" ]] ; then
if command -v ld.lld >/dev/null 2>&1 ; then if command -v ld.lld >/dev/null 2>&1 ; then
LLD_BIN=$(command -v ld.lld) LLD_BIN=$(command -v ld.lld)
export CMAKE_LLD_LINKER_ARGS="-DCMAKE_LINKER=${LLD_BIN} -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld -DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld -DCMAKE_MODULE_LINKER_FLAGS=-fuse-ld=lld" export CMAKE_LLD_LINKER_ARGS=(-DCMAKE_LINKER="${LLD_BIN}" -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld -DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld -DCMAKE_MODULE_LINKER_FLAGS=-fuse-ld=lld)
else else
echo "Error: ld.lld not found. Please install the 'lld' package (e.g., sudo apt install lld) or omit -L." echo "Error: ld.lld not found. Please install the 'lld' package (e.g., sudo apt install lld) or omit -L."
exit 1 exit 1
@@ -174,7 +175,8 @@ fi
if [[ -n "${BUILD_DEPS}" ]] ; then if [[ -n "${BUILD_DEPS}" ]] ; then
echo "Configuring dependencies..." echo "Configuring dependencies..."
BUILD_ARGS="${DEPS_EXTRA_BUILD_ARGS} -DDEP_WX_GTK3=ON" read -r -a BUILD_ARGS <<< "${DEPS_EXTRA_BUILD_ARGS}"
BUILD_ARGS+=(-DDEP_WX_GTK3=ON)
if [[ -n "${CLEAN_BUILD}" ]] if [[ -n "${CLEAN_BUILD}" ]]
then then
rm -fr deps/build rm -fr deps/build
@@ -183,17 +185,26 @@ if [[ -n "${BUILD_DEPS}" ]] ; then
if [[ -n "${BUILD_DEBUG}" ]] ; then if [[ -n "${BUILD_DEBUG}" ]] ; then
# build deps with debug and release else cmake will not find required sources # build deps with debug and release else cmake will not find required sources
mkdir -p deps/build/release mkdir -p deps/build/release
CMAKE_CMD="cmake ${CMAKE_C_CXX_COMPILER_CLANG} ${CMAKE_LLD_LINKER_ARGS} -S deps -B deps/build/release -DSLIC3R_PCH=${SLIC3R_PRECOMPILED_HEADERS} -G Ninja -DDESTDIR=${SCRIPT_PATH}/deps/build/destdir -DDEP_DOWNLOAD_DIR=${SCRIPT_PATH}/deps/DL_CACHE ${COLORED_OUTPUT} ${BUILD_ARGS}" set -x
echo "${CMAKE_CMD}" cmake -S deps -B deps/build/release "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" -G Ninja \
${CMAKE_CMD} -DSLIC3R_PCH="${SLIC3R_PRECOMPILED_HEADERS}" \
-DDESTDIR="${SCRIPT_PATH}/deps/build/destdir" \
-DDEP_DOWNLOAD_DIR="${SCRIPT_PATH}/deps/DL_CACHE" \
"${COLORED_OUTPUT}" \
"${BUILD_ARGS[@]}"
set +x
cmake --build deps/build/release cmake --build deps/build/release
BUILD_ARGS="${BUILD_ARGS} -DCMAKE_BUILD_TYPE=Debug" BUILD_ARGS+=(-DCMAKE_BUILD_TYPE=Debug)
fi fi
# If this isn't in one quote, then empty variables can add two single quotes and mess up argument parsing for cmake. set -x
CMAKE_CMD="cmake -S deps -B deps/build ${CMAKE_C_CXX_COMPILER_CLANG} ${CMAKE_LLD_LINKER_ARGS} -G Ninja ${COLORED_OUTPUT} ${BUILD_ARGS}" cmake -S deps -B deps/build "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" -G Ninja \
echo "${CMAKE_CMD}" -DSLIC3R_PCH="${SLIC3R_PRECOMPILED_HEADERS}" \
${CMAKE_CMD} -DDESTDIR="${SCRIPT_PATH}/deps/build/destdir" \
-DDEP_DOWNLOAD_DIR="${SCRIPT_PATH}/deps/DL_CACHE" \
"${COLORED_OUTPUT}" \
"${BUILD_ARGS[@]}"
set +x
cmake --build deps/build cmake --build deps/build
fi fi
@@ -202,29 +213,29 @@ if [[ -n "${BUILD_ORCA}" ]] ; then
if [[ -n "${CLEAN_BUILD}" ]] ; then if [[ -n "${CLEAN_BUILD}" ]] ; then
rm -fr build rm -fr build
fi fi
BUILD_ARGS="${ORCA_EXTRA_BUILD_ARGS}" read -r -a BUILD_ARGS <<< "${ORCA_EXTRA_BUILD_ARGS}"
if [[ -n "${FOUND_GTK3_DEV}" ]] ; then if [[ -n "${FOUND_GTK3_DEV}" ]] ; then
BUILD_ARGS="${BUILD_ARGS} -DSLIC3R_GTK=3" BUILD_ARGS+=(-DSLIC3R_GTK=3)
fi fi
if [[ -n "${BUILD_DEBUG}" ]] ; then if [[ -n "${BUILD_DEBUG}" ]] ; then
BUILD_ARGS="${BUILD_ARGS} -DCMAKE_BUILD_TYPE=Debug -DBBL_INTERNAL_TESTING=1" BUILD_ARGS+=(-DCMAKE_BUILD_TYPE=Debug -DBBL_INTERNAL_TESTING=1)
else else
BUILD_ARGS="${BUILD_ARGS} -DBBL_RELEASE_TO_PUBLIC=1 -DBBL_INTERNAL_TESTING=0" BUILD_ARGS+=(-DBBL_RELEASE_TO_PUBLIC=1 -DBBL_INTERNAL_TESTING=0)
fi fi
if [[ -n "${BUILD_TESTS}" ]] ; then if [[ -n "${BUILD_TESTS}" ]] ; then
BUILD_ARGS="${BUILD_ARGS} -DBUILD_TESTS=ON" BUILD_ARGS+=(-DBUILD_TESTS=ON)
fi fi
echo "Configuring OrcaSlicer..." echo "Configuring OrcaSlicer..."
cmake -S . -B build ${CMAKE_C_CXX_COMPILER_CLANG} ${CMAKE_LLD_LINKER_ARGS} -G "Ninja Multi-Config" \ set -x
-DSLIC3R_PCH=${SLIC3R_PRECOMPILED_HEADERS} \ cmake -S . -B build "${CMAKE_C_CXX_COMPILER_CLANG[@]}" "${CMAKE_LLD_LINKER_ARGS[@]}" -G "Ninja Multi-Config" \
-DCMAKE_PREFIX_PATH=${SCRIPT_PATH}/deps/build/destdir/usr/local \ -DSLIC3R_PCH="${SLIC3R_PRECOMPILED_HEADERS}" \
-DSLIC3R_STATIC=1 \ -DCMAKE_PREFIX_PATH="${SCRIPT_PATH}/deps/build/destdir/usr/local" \
-DORCA_TOOLS=ON \ -DSLIC3R_STATIC=1 \
${COLORED_OUTPUT} \ -DORCA_TOOLS=ON \
${BUILD_ARGS} "${COLORED_OUTPUT}" \
echo "${CMAKE_CMD}" "${BUILD_ARGS[@]}"
${CMAKE_CMD} set +x
echo "done" echo "done"
echo "Building OrcaSlicer ..." echo "Building OrcaSlicer ..."
if [[ -n "${BUILD_DEBUG}" ]] ; then if [[ -n "${BUILD_DEBUG}" ]] ; then

View File

@@ -3,7 +3,7 @@
set -e set -e
set -o pipefail set -o pipefail
while getopts ":dpa:snt:xbc:h" opt; do while getopts ":dpa:snt:xbc:1h" opt; do
case "${opt}" in case "${opt}" in
d ) d )
export BUILD_TARGET="deps" export BUILD_TARGET="deps"

View File

@@ -32,4 +32,4 @@ add_subdirectory(qoi)
add_subdirectory(semver) # Semver static library add_subdirectory(semver) # Semver static library
# Eigen header-only library # Eigen header-only library
add_subdirectory(eigen) add_subdirectory(eigen)

View File

@@ -24,6 +24,7 @@ add_library(Shiny STATIC
ShinyZone.h ShinyZone.h
) )
target_include_directories(Shiny PUBLIC target_include_directories(Shiny SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
) )

View File

@@ -11,9 +11,10 @@ add_library(admesh STATIC
util.cpp util.cpp
) )
target_include_directories(admesh PUBLIC target_include_directories(admesh SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/..
) )
target_link_libraries(admesh target_link_libraries(admesh

View File

@@ -3,8 +3,9 @@ project(agg)
add_library(agg INTERFACE) add_library(agg INTERFACE)
target_include_directories(agg INTERFACE target_include_directories(agg SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
) )
target_sources(agg INTERFACE target_sources(agg INTERFACE
@@ -32,4 +33,4 @@ target_sources(agg INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/agg_rendering_buffer.h ${CMAKE_CURRENT_SOURCE_DIR}/agg_rendering_buffer.h
${CMAKE_CURRENT_SOURCE_DIR}/agg_scanline_p.h ${CMAKE_CURRENT_SOURCE_DIR}/agg_scanline_p.h
${CMAKE_CURRENT_SOURCE_DIR}/agg_trans_affine.h ${CMAKE_CURRENT_SOURCE_DIR}/agg_trans_affine.h
) )

View File

@@ -3,10 +3,11 @@ project(ankerl)
add_library(ankerl INTERFACE) add_library(ankerl INTERFACE)
target_include_directories(ankerl INTERFACE target_include_directories(ankerl SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
) )
target_sources(ankerl INTERFACE target_sources(ankerl INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/unordered_dense.h ${CMAKE_CURRENT_SOURCE_DIR}/unordered_dense.h
) )

View File

@@ -9,8 +9,9 @@ add_library(clipper STATIC
clipper_z.hpp clipper_z.hpp
) )
target_include_directories(clipper PUBLIC target_include_directories(clipper SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
) )
target_link_libraries(clipper target_link_libraries(clipper

View File

@@ -3,9 +3,10 @@ project(eigen)
add_library(eigen INTERFACE) add_library(eigen INTERFACE)
target_include_directories(eigen INTERFACE target_include_directories(eigen SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
) )
# Eigen is header-only, so we only need to specify the include directory # Eigen is header-only, so we only need to specify the include directory
# The headers are in the Eigen/ subdirectory structure # The headers are in the Eigen/ subdirectory structure

View File

@@ -7,8 +7,9 @@ add_library(expat STATIC
xmltok.c xmltok.c
) )
target_include_directories(expat PUBLIC target_include_directories(expat SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
) )
target_sources(expat PRIVATE target_sources(expat PRIVATE
@@ -33,4 +34,4 @@ endif()
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang") if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
target_compile_options(expat PRIVATE -Wno-unused-parameter) target_compile_options(expat PRIVATE -Wno-unused-parameter)
endif() endif()

View File

@@ -3,8 +3,9 @@ project(fast_float)
add_library(fast_float INTERFACE) add_library(fast_float INTERFACE)
target_include_directories(fast_float INTERFACE target_include_directories(fast_float SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
) )
target_sources(fast_float INTERFACE target_sources(fast_float INTERFACE
@@ -12,4 +13,4 @@ target_sources(fast_float INTERFACE
) )
# Require C++14 for fast_float # Require C++14 for fast_float
target_compile_features(fast_float INTERFACE cxx_std_14) target_compile_features(fast_float INTERFACE cxx_std_14)

View File

@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.13)
project(glu-libtess) project(glu-libtess)
add_library(glu-libtess STATIC add_library(glu-libtess STATIC
src/dict-list.h src/dict-list.h
src/dict.c src/dict.c
src/dict.h src/dict.h
@@ -34,4 +34,8 @@ if(UNIX)
target_link_libraries(glu-libtess m) target_link_libraries(glu-libtess m)
endif(UNIX) endif(UNIX)
target_include_directories(glu-libtess PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_include_directories(glu-libtess SYSTEM
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include)

View File

@@ -11,7 +11,12 @@ endif()
include_directories(include) include_directories(include)
add_library(hidapi STATIC ${HIDAPI_IMPL}) add_library(hidapi STATIC ${HIDAPI_IMPL})
target_include_directories(hidapi PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_include_directories(hidapi SYSTEM
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
)
if (CMAKE_SYSTEM_NAME STREQUAL "Linux") if (CMAKE_SYSTEM_NAME STREQUAL "Linux")
# Don't link the udev library, as there are two versions out there (libudev.so.0, libudev.so.1), so they are linked explicitely. # Don't link the udev library, as there are two versions out there (libudev.so.0, libudev.so.1), so they are linked explicitely.

View File

@@ -11,8 +11,8 @@ add_executable(hintsToPot
HintsToPot.cpp) HintsToPot.cpp)
# Set include directories for the executable # Set include directories for the executable
target_include_directories(hintsToPot target_include_directories(hintsToPot SYSTEM
PRIVATE PRIVATE
${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}
) )
@@ -25,7 +25,7 @@ endif()
add_library(hints INTERFACE) add_library(hints INTERFACE)
# Set include directories for the interface library # Set include directories for the interface library
target_include_directories(hints target_include_directories(hints SYSTEM
INTERFACE INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include>

View File

@@ -19,8 +19,9 @@ add_library(imgui STATIC
imstb_truetype.h imstb_truetype.h
) )
target_include_directories(imgui PUBLIC target_include_directories(imgui SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
) )
if(Boost_FOUND) if(Boost_FOUND)

View File

@@ -7,9 +7,11 @@ add_library(imguizmo STATIC
ImGuizmo.cpp ImGuizmo.cpp
) )
target_include_directories(imguizmo target_include_directories(imguizmo SYSTEM
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/..
) )
target_link_libraries(imguizmo PUBLIC imgui) target_link_libraries(imguizmo PUBLIC imgui)

View File

@@ -11,5 +11,7 @@ if(libigl_FOUND)
target_link_libraries(libigl INTERFACE igl::core) target_link_libraries(libigl INTERFACE igl::core)
else() else()
message(STATUS "IGL NOT found, using bundled version...") message(STATUS "IGL NOT found, using bundled version...")
target_include_directories(libigl SYSTEM BEFORE INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(libigl SYSTEM BEFORE
INTERFACE
${CMAKE_CURRENT_SOURCE_DIR})
endif() endif()

View File

@@ -23,6 +23,6 @@ set(LIBNEST2D_SRCFILES
add_library(libnest2d STATIC ${LIBNEST2D_SRCFILES}) add_library(libnest2d STATIC ${LIBNEST2D_SRCFILES})
target_include_directories(libnest2d PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include) target_include_directories(libnest2d SYSTEM PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include)
target_link_libraries(libnest2d PUBLIC NLopt::nlopt TBB::tbb Boost::boost libslic3r) target_link_libraries(libnest2d PUBLIC NLopt::nlopt TBB::tbb Boost::boost libslic3r)
target_compile_definitions(libnest2d PUBLIC LIBNEST2D_THREADING_tbb LIBNEST2D_STATIC LIBNEST2D_OPTIMIZER_nlopt LIBNEST2D_GEOMETRIES_libslic3r) target_compile_definitions(libnest2d PUBLIC LIBNEST2D_THREADING_tbb LIBNEST2D_STATIC LIBNEST2D_OPTIMIZER_nlopt LIBNEST2D_GEOMETRIES_libslic3r)

View File

@@ -176,7 +176,7 @@ function(create_library_target LIBRARY_TYPE)
add_library(${target_name} ${LIBRARY_TYPE} ${project_source_files}) add_library(${target_name} ${LIBRARY_TYPE} ${project_source_files})
target_include_directories(${target_name} PRIVATE ${include_dirs}) target_include_directories(${target_name} SYSTEM PRIVATE ${include_dirs})
target_link_libraries(${target_name} PRIVATE ${extra_libs}) target_link_libraries(${target_name} PRIVATE ${extra_libs})
target_compile_options(${target_name} PRIVATE ${compilation_flags}) target_compile_options(${target_name} PRIVATE ${compilation_flags})
target_compile_definitions(${target_name} PRIVATE ${preprocessor_defs} ) target_compile_definitions(${target_name} PRIVATE ${preprocessor_defs} )
@@ -414,4 +414,4 @@ endif ()
# include(CPack) # include(CPack)
# eof # eof

View File

@@ -16,7 +16,7 @@ if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
endif() endif()
target_link_libraries(minilzo INTERFACE minilzo_static) target_link_libraries(minilzo INTERFACE minilzo_static)
target_include_directories(minilzo INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(minilzo SYSTEM INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
message(STATUS "Minilzo using bundled version...") message(STATUS "Minilzo using bundled version...")

View File

@@ -14,5 +14,5 @@ if(${CMAKE_C_COMPILER_ID} STREQUAL "GNU")
endif() endif()
target_link_libraries(miniz INTERFACE miniz_static) target_link_libraries(miniz INTERFACE miniz_static)
target_include_directories(miniz INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) target_include_directories(miniz SYSTEM INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})

View File

@@ -4,11 +4,12 @@ project(nanosvg)
add_library(nanosvg INTERFACE) add_library(nanosvg INTERFACE)
target_include_directories(nanosvg INTERFACE target_include_directories(nanosvg SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
) )
target_sources(nanosvg INTERFACE target_sources(nanosvg INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}/nanosvg.h ${CMAKE_CURRENT_SOURCE_DIR}/nanosvg.h
${CMAKE_CURRENT_SOURCE_DIR}/nanosvgrast.h ${CMAKE_CURRENT_SOURCE_DIR}/nanosvgrast.h
) )

View File

@@ -4,8 +4,9 @@ project(nlohmann_json)
add_library(nlohmann_json INTERFACE) add_library(nlohmann_json INTERFACE)
target_include_directories(nlohmann_json INTERFACE target_include_directories(nlohmann_json SYSTEM
${CMAKE_CURRENT_SOURCE_DIR} INTERFACE
${CMAKE_CURRENT_SOURCE_DIR}
) )
target_sources(nlohmann_json INTERFACE target_sources(nlohmann_json INTERFACE
@@ -17,4 +18,4 @@ target_sources(nlohmann_json INTERFACE
) )
# Require C++11 for nlohmann/json # Require C++11 for nlohmann/json
target_compile_features(nlohmann_json INTERFACE cxx_std_11) target_compile_features(nlohmann_json INTERFACE cxx_std_11)

View File

@@ -8,7 +8,7 @@ add_library(semver STATIC
) )
# Set include directories for the library # Set include directories for the library
target_include_directories(semver target_include_directories(semver SYSTEM
PUBLIC PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include>

View File

@@ -5,7 +5,7 @@ project(spline)
add_library(spline INTERFACE) add_library(spline INTERFACE)
# Set include directories for the interface library # Set include directories for the interface library
target_include_directories(spline target_include_directories(spline SYSTEM
INTERFACE INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include>
@@ -34,4 +34,4 @@ install(EXPORT splineTargets
FILE splineTargets.cmake FILE splineTargets.cmake
NAMESPACE spline:: NAMESPACE spline::
DESTINATION lib/cmake/spline DESTINATION lib/cmake/spline
) )

View File

@@ -5,7 +5,7 @@ project(stb_dxt)
add_library(stb_dxt INTERFACE) add_library(stb_dxt INTERFACE)
# Set include directories for the interface library # Set include directories for the interface library
target_include_directories(stb_dxt target_include_directories(stb_dxt SYSTEM
INTERFACE INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include>
@@ -34,4 +34,4 @@ install(EXPORT stb_dxtTargets
FILE stb_dxtTargets.cmake FILE stb_dxtTargets.cmake
NAMESPACE stb_dxt:: NAMESPACE stb_dxt::
DESTINATION lib/cmake/stb_dxt DESTINATION lib/cmake/stb_dxt
) )

View File

@@ -4,7 +4,7 @@ msgstr ""
"Project-Id-Version: Orca Slicer\n" "Project-Id-Version: Orca Slicer\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-09-11 21:06+0800\n" "POT-Creation-Date: 2025-09-11 21:06+0800\n"
"PO-Revision-Date: 2025-08-28 13:09+0300\n" "PO-Revision-Date: 2025-09-14 23:43+0300\n"
"Last-Translator: GlauTech\n" "Last-Translator: GlauTech\n"
"Language-Team: \n" "Language-Team: \n"
"Language: tr\n" "Language: tr\n"
@@ -48,7 +48,7 @@ msgid "Ctrl+"
msgstr "Ctrl+" msgstr "Ctrl+"
msgid "Alt+" msgid "Alt+"
msgstr "" msgstr "Alt+"
msgid "Shift+" msgid "Shift+"
msgstr "Shift+" msgstr "Shift+"
@@ -184,7 +184,7 @@ msgid "Height range"
msgstr "Yükseklik aralığı" msgstr "Yükseklik aralığı"
msgid "Enter" msgid "Enter"
msgstr "" msgstr "Enter"
msgid "Toggle Wireframe" msgid "Toggle Wireframe"
msgstr "Wireframe Göster/Gizle" msgstr "Wireframe Göster/Gizle"
@@ -719,7 +719,7 @@ msgid "Horizontal text"
msgstr "Yatay metin" msgstr "Yatay metin"
msgid "Mouse move up or down" msgid "Mouse move up or down"
msgstr "" msgstr "Mouseu yukarı veya aşağı hareket ettirin"
msgid "Rotate text" msgid "Rotate text"
msgstr "Metni döndür" msgstr "Metni döndür"
@@ -1832,7 +1832,7 @@ msgid "Delete the selected object"
msgstr "Seçilen nesneyi sil" msgstr "Seçilen nesneyi sil"
msgid "Backspace" msgid "Backspace"
msgstr "" msgstr "Backspace"
msgid "Load..." msgid "Load..."
msgstr "Yükle..." msgstr "Yükle..."
@@ -3063,7 +3063,7 @@ msgid "Dynamic flow Calibration"
msgstr "Dinamik akış kalibrasyonu" msgstr "Dinamik akış kalibrasyonu"
msgid "Step" msgid "Step"
msgstr "Adım" msgstr "Step"
msgid "AMS Slots" msgid "AMS Slots"
msgstr "AMS Yuvaları" msgstr "AMS Yuvaları"
@@ -4200,6 +4200,8 @@ msgid ""
"Invalid pattern. Use N, N#K, or a comma-separated list with optional #K per " "Invalid pattern. Use N, N#K, or a comma-separated list with optional #K per "
"entry. Examples: 5, 5#2, 1,7,9, 5,9#2,18." "entry. Examples: 5, 5#2, 1,7,9, 5,9#2,18."
msgstr "" msgstr ""
"Geçersiz kalıp. N, N#K veya giriş başına isteğe bağlı #K ile virgülle "
"ayrılmış bir liste kullanın. Örnekler: 5, 5#2, 1,7,9, 5,9#2,18."
#, boost-format #, boost-format
msgid "Invalid format. Expected vector format: \"%1%\"" msgid "Invalid format. Expected vector format: \"%1%\""
@@ -4804,7 +4806,7 @@ msgid "Open a project file"
msgstr "Proje dosyasını aç" msgstr "Proje dosyasını aç"
msgid "Recent files" msgid "Recent files"
msgstr "" msgstr "Son dosyalar"
msgid "Save Project" msgid "Save Project"
msgstr "Projeyi Kaydet" msgstr "Projeyi Kaydet"
@@ -6219,7 +6221,7 @@ msgid "Collapse sidebar"
msgstr "Kenar çubuğunu daralt" msgstr "Kenar çubuğunu daralt"
msgid "Tab" msgid "Tab"
msgstr "" msgstr "Tab"
#, c-format, boost-format #, c-format, boost-format
msgid "Loading file: %s" msgid "Loading file: %s"
@@ -6288,7 +6290,7 @@ msgid "Customized Preset"
msgstr "Özel Ayar" msgstr "Özel Ayar"
msgid "Name of components inside step file is not UTF8 format!" msgid "Name of components inside step file is not UTF8 format!"
msgstr "Adım dosyasındaki bileşenlerin adı UTF8 formatında değil!" msgstr "Step dosyasındaki bileşenlerin adı UTF8 formatında değil!"
msgid "The name may show garbage characters!" msgid "The name may show garbage characters!"
msgstr "İsimde çöp karakterler görünebilir!" msgstr "İsimde çöp karakterler görünebilir!"
@@ -6961,7 +6963,7 @@ msgstr ""
"hatırlayacak ve otomatik olarak değiştirecektir." "hatırlayacak ve otomatik olarak değiştirecektir."
msgid "Show the step mesh parameter setting dialog." msgid "Show the step mesh parameter setting dialog."
msgstr "Adım ağ parametresi ayar iletişim kutusunu göster." msgstr "Step ağ parametresi ayar iletişim kutusunu göster."
msgid "" msgid ""
"If enabled,a parameter settings dialog will appear during STEP file import." "If enabled,a parameter settings dialog will appear during STEP file import."
@@ -7056,13 +7058,13 @@ msgid "Should printer/filament/process settings be loaded when opening a .3mf?"
msgstr "Bir .3mf açılırken yazıcı/filament/işlem ayarları yüklenmeli mi?" msgstr "Bir .3mf açılırken yazıcı/filament/işlem ayarları yüklenmeli mi?"
msgid "Maximum recent files" msgid "Maximum recent files"
msgstr "" msgstr "Son kullanılan dosyaların maksimum sayısı"
msgid "Maximum count of recent files" msgid "Maximum count of recent files"
msgstr "" msgstr "Son dosyaların maksimum sayısı"
msgid "Add model files (stl/step) to recent file list." msgid "Add model files (stl/step) to recent file list."
msgstr "" msgstr "Model dosyalarını (STL/STEP) son dosyalar listesine ekle."
msgid "Clear my choice on the unsaved projects." msgid "Clear my choice on the unsaved projects."
msgstr "Kaydedilmemiş projelerdeki seçimimi temizle." msgstr "Kaydedilmemiş projelerdeki seçimimi temizle."
@@ -7851,6 +7853,12 @@ msgid ""
"support. Please proceed with caution and thoroughly check for any potential " "support. Please proceed with caution and thoroughly check for any potential "
"printing issues.Are you sure you want to enable this option?" "printing issues.Are you sure you want to enable this option?"
msgstr "" msgstr ""
"Dolgu desenleri genellikle, doğru baskı alınmasını ve istenen etkilerin (ör. "
"Gyroid, Kübik) elde edilmesini sağlamak için döndürme işlemini otomatik "
"olarak yapacak şekilde tasarlanmıştır. Mevcut seyrek dolgu desenini "
"döndürmek, yetersiz destekle sonuçlanabilir. Lütfen dikkatli ilerleyin ve "
"olası baskı sorunlarını iyice kontrol edin. Bu seçeneği etkinleştirmek "
"istediğinizden emin misiniz?"
msgid "" msgid ""
"Layer height is too small.\n" "Layer height is too small.\n"
@@ -9878,6 +9886,8 @@ msgid ""
"The precise wall option will be ignored for outer-inner or inner-outer-inner " "The precise wall option will be ignored for outer-inner or inner-outer-inner "
"wall sequences." "wall sequences."
msgstr "" msgstr ""
"Dışiç veya içdışiç duvar sıralamaları için 'Hassas duvar' seçeneği yok "
"sayılacaktır."
msgid "" msgid ""
"Filament shrinkage will not be used because filament shrinkage for the used " "Filament shrinkage will not be used because filament shrinkage for the used "
@@ -10509,6 +10519,9 @@ msgid ""
"layer consistency. NOTE: This option will be ignored for outer-inner or " "layer consistency. NOTE: This option will be ignored for outer-inner or "
"inner-outer-inner wall sequences." "inner-outer-inner wall sequences."
msgstr "" msgstr ""
"Dış duvar aralıklarını ayarlayarak kabuk hassasiyetini artırır. Bu, katman "
"tutarlılığını da iyileştirir. NOT: Bu seçenek dışiç veya içdışiç duvar "
"sıralamalarında yok sayılacaktır."
msgid "Only one wall on top surfaces" msgid "Only one wall on top surfaces"
msgstr "Üst yüzeylerde yalnızca bir dış duvar" msgstr "Üst yüzeylerde yalnızca bir dış duvar"
@@ -12035,7 +12048,7 @@ msgstr ""
"dayanıklılık özelliklerini korumak için modelle birlikte döner." "dayanıklılık özelliklerini korumak için modelle birlikte döner."
msgid "Insert solid layers" msgid "Insert solid layers"
msgstr "" msgstr "Katı katmanlar ekle"
msgid "" msgid ""
"Insert solid infill at specific layers. Use N to insert every Nth layer, N#K " "Insert solid infill at specific layers. Use N to insert every Nth layer, N#K "
@@ -12043,6 +12056,11 @@ msgid ""
"'5#' equals '5#1'), or a comma-separated list (e.g. 1,7,9) to insert at " "'5#' equals '5#1'), or a comma-separated list (e.g. 1,7,9) to insert at "
"explicit layers. Layers are 1-based." "explicit layers. Layers are 1-based."
msgstr "" msgstr ""
"Belirli katmanlara katı dolgu ekleyin. Her Ninci katmana eklemek için N "
"kullanın, her N katmanda K ardışık katı katman eklemek için N#K kullanın (K "
"isteğe bağlıdır, örn. '5#' = '5#1'), veya belirli katmanlara eklemek için "
"virgülle ayrılmış bir liste kullanın (örn. 1,7,9). Katman numaraları 1den "
"başlar."
msgid "Fill Multiline" msgid "Fill Multiline"
msgstr "Çok çizgili dolgu" msgstr "Çok çizgili dolgu"
@@ -12457,7 +12475,6 @@ msgstr "İlk katmana pütürlü yüzey uygulanıp uygulanmayacağı."
msgid "Fuzzy skin generator mode" msgid "Fuzzy skin generator mode"
msgstr "Pütürlü yüzey oluşturma modu" msgstr "Pütürlü yüzey oluşturma modu"
#, fuzzy, c-format, boost-format
msgid "" msgid ""
"Fuzzy skin generation mode. Works only with Arachne!\n" "Fuzzy skin generation mode. Works only with Arachne!\n"
"Displacement: Сlassic mode when the pattern is formed by shifting the nozzle " "Displacement: Сlassic mode when the pattern is formed by shifting the nozzle "
@@ -12881,6 +12898,13 @@ msgid ""
"setting is ignored. Note: some infill patterns (e.g., Gyroid) control " "setting is ignored. Note: some infill patterns (e.g., Gyroid) control "
"rotation themselves; use with care." "rotation themselves; use with care."
msgstr "" msgstr ""
"Seyrek dolgu yönünü katman katman açı şablonuna göre döndürün. Virgülle "
"ayrılmış açıları girin (örn. '0,30,60,90'). Açılar katman sırasına göre "
"uygulanır ve liste sona erdiğinde tekrarlanır. Gelişmiş sözdizimi "
"desteklenir: '+5' her katmanda +5° döndürür; '+5#5' her 5 katmanda +5° "
"döndürür. Detaylar için Vikiye bakın. Bir şablon ayarlandığında, standart "
"dolgu yönü ayarı yok sayılır. NOT: bazı dolgu desenleri (örn. Gyroid) kendi "
"döndürmesini kontrol eder; dikkatli kullanın"
msgid "°" msgid "°"
msgstr "°" msgstr "°"
@@ -12913,6 +12937,11 @@ msgid ""
"settings but different skeleton densities, their skeleton areas will develop " "settings but different skeleton densities, their skeleton areas will develop "
"overlapping sections. Default is as same as infill density." "overlapping sections. Default is as same as infill density."
msgstr "" msgstr ""
"üzeyden belirli bir derinlik çıkarıldıktan sonra model konturunda kalan "
"kısma 'iskelet' denir. Bu parametre, bu bölümün yoğunluğunu ayarlamak için "
"kullanılır. İki bölge aynı seyrek dolgu ayarlarına sahip fakat farklı "
"iskelet yoğunluklarına sahipse, iskelet alanları üst üste binen bölümler "
"oluşturabilir. Varsayılan değer, dolgu yoğunluğu ile aynıdır."
msgid "Skin infill density" msgid "Skin infill density"
msgstr "Yüzey dolgu yoğunluğu" msgstr "Yüzey dolgu yoğunluğu"
@@ -12924,6 +12953,11 @@ msgid ""
"skin densities, this area will not be split into two separate regions. " "skin densities, this area will not be split into two separate regions. "
"Default is as same as infill density." "Default is as same as infill density."
msgstr "" msgstr ""
"Modelin dış yüzeyinin belirli bir derinlik aralığındaki kısmına 'cilt' "
"denir. Bu parametre, bu bölümün yoğunluğunu ayarlamak için kullanılır. İki "
"bölge aynı seyrek dolgu ayarlarına sahip fakat farklı cilt yoğunluklarına "
"sahipse, bu alan iki ayrı bölgeye ayrılmaz. Varsayılan değer, dolgu "
"yoğunluğu ile aynıdır."
msgid "Skin infill depth" msgid "Skin infill depth"
msgstr "Yüzey dolgu derinliği" msgstr "Yüzey dolgu derinliği"
@@ -12951,7 +12985,7 @@ msgid "Adjust the line width of the selected skeleton paths."
msgstr "Seçili iskelet yollarının çizgi genişliğini ayarlayın." msgstr "Seçili iskelet yollarının çizgi genişliğini ayarlayın."
msgid "Symmetric infill Y axis" msgid "Symmetric infill Y axis"
msgstr "Simetrik dolgu Y ekseni" msgstr "Simetrik dolgu y ekseni"
msgid "" msgid ""
"If the model has two parts that are symmetric about the Y axis, and you want " "If the model has two parts that are symmetric about the Y axis, and you want "
@@ -15366,7 +15400,7 @@ msgid "Rib width"
msgstr "Rib genişliği" msgstr "Rib genişliği"
msgid "Rib width." msgid "Rib width."
msgstr "" msgstr "Kiriş genişliği"
msgid "Fillet wall" msgid "Fillet wall"
msgstr "Kavisli duvar" msgstr "Kavisli duvar"
@@ -18774,7 +18808,7 @@ msgid ""
"Orca Slicer supports slicing STEP files, providing smoother results than a " "Orca Slicer supports slicing STEP files, providing smoother results than a "
"lower resolution STL. Give it a try!" "lower resolution STL. Give it a try!"
msgstr "" msgstr ""
"ADIM\n" "STEP\n"
"STL yerine STEP dosyasını dilimleyerek baskı kalitenizi artırabileceğinizi " "STL yerine STEP dosyasını dilimleyerek baskı kalitenizi artırabileceğinizi "
"biliyor muydunuz?\n" "biliyor muydunuz?\n"
"Orca Slicer, STEP dosyalarını dilimlemeyi destekleyerek daha düşük " "Orca Slicer, STEP dosyalarını dilimlemeyi destekleyerek daha düşük "

View File

@@ -72,7 +72,7 @@
"long_retractions_when_cut": [ "long_retractions_when_cut": [
"0" "0"
], ],
"machine_end_gcode": "M140 S0; Heatbed off\nM107; Fan off \nG91; relative positioning \nM83 ; extruder relative mode\nG1 E-2 F3000 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 E-5 F3000 ;move Z up a bit and retract filament even more\nM104 S0; Extruder off\nG28 ;move X/Y to min endstops, so the head is out of the way\nG90; absolute positioning \nG1 Y220 F3000\nM84 ;steppers off\nM300 S1318 P266", "machine_end_gcode": "M140 S0; Heatbed off\nM107; Fan off \nG91; relative positioning \nM83 ; extruder relative mode\nG1 E-3 F3000 ;retract the filament a bit before lifting the nozzle, to release some of the pressure\nG1 Z+0.5 F3000 ;move Z up a bit and retract filament even more\nM104 S0; Extruder off\nG28 X Y;move X/Y to min endstops, so the head is out of the way\nG90; absolute positioning \nG1 Y220 F3000\nM84 ;steppers off\nM300 S1318 P266",
"machine_load_filament_time": "42", "machine_load_filament_time": "42",
"machine_max_acceleration_e": [ "machine_max_acceleration_e": [
"2000", "2000",

View File

@@ -112,7 +112,7 @@ var LangText = {
orca4: "This stops the transmission of data to Bambu's cloud services. Users who don't use BBL machines or use LAN mode only can safely turn on this function.", orca4: "This stops the transmission of data to Bambu's cloud services. Users who don't use BBL machines or use LAN mode only can safely turn on this function.",
orca5: "Enable Stealth Mode.", orca5: "Enable Stealth Mode.",
}, },
ca_ES: { ca_ES: {
t1: "Benvingut a Orca Slicer", t1: "Benvingut a Orca Slicer",
t2: "Orca Slicer es configurarà en diversos passos. Comencem!", t2: "Orca Slicer es configurarà en diversos passos. Comencem!",
t3: "Acord de l'Usuari", t3: "Acord de l'Usuari",
@@ -219,8 +219,8 @@ var LangText = {
t112: "Unir-se al Programa", t112: "Unir-se al Programa",
t113: "Pots canviar la teva elecció en les preferències en qualsevol moment.", t113: "Pots canviar la teva elecció en les preferències en qualsevol moment.",
orca1: "Editar Informació del Projecte", orca1: "Editar Informació del Projecte",
orca2: "no hi ha informació del model" orca2: "no hi ha informació del model",
}, },
es_ES: { es_ES: {
t1: "Bienvenido a Orca Slicer", t1: "Bienvenido a Orca Slicer",
t2: "Va a configurar Orca Slicer mediante varios pasos. ¡Vamos a comenzar!", t2: "Va a configurar Orca Slicer mediante varios pasos. ¡Vamos a comenzar!",
@@ -1116,7 +1116,7 @@ var LangText = {
orca2: "Информации о модели отсутствует", orca2: "Информации о модели отсутствует",
orca3: "Режим конфиденциальности", orca3: "Режим конфиденциальности",
orca4: "Это остановит передачу данных в облачные сервисы Bambu. Пользователи, которые не используют принтеры Bambu Lab или используют режим «Только LAN», могут безопасно включить эту функцию.", orca4: "Это остановит передачу данных в облачные сервисы Bambu. Пользователи, которые не используют принтеры Bambu Lab или используют режим «Только LAN», могут безопасно включить эту функцию.",
orca5: "Включить режим конфиденциальности" orca5: "Включить режим конфиденциальности",
}, },
ko_KR: { ko_KR: {
t1: "Orca Slicer에 오신 것을 환영합니다", t1: "Orca Slicer에 오신 것을 환영합니다",
@@ -1319,6 +1319,9 @@ var LangText = {
t126: "Yükleme devam ediyor……", t126: "Yükleme devam ediyor……",
orca1: "Proje Bilgilerini Düzenle", orca1: "Proje Bilgilerini Düzenle",
orca2: "model bilgisi yok", orca2: "model bilgisi yok",
orca3: "Gizli Mod",
orca4: "Bu, Bambu'nun bulut hizmetlerine veri iletimini durdurur. BBL makinelerini kullanmayan veya yalnızca LAN modunu kullanan kullanıcılar bu işlevi güvenle açabilir.",
orca5: "Gizli Modu etkinleştirin.",
}, },
pl_PL: { pl_PL: {
t1: "Witamy w Orca Slicer", t1: "Witamy w Orca Slicer",
@@ -1429,7 +1432,7 @@ var LangText = {
t126: "Ładowanie trwa……", t126: "Ładowanie trwa……",
orca1: "Edytuj informacje o projekcie", orca1: "Edytuj informacje o projekcie",
orca2: "brak informacji o modelu", orca2: "brak informacji o modelu",
orca3: "Tryb «Niewidzialny»", orca3: "Tryb «Niewidzialny»",
orca4: "To wyłączy przesyłanie danych do usług chmurowych Bambu. Użytkownicy, którzy nie korzystają z maszyn BBL lub używają tylko trybu LAN, mogą bez obaw włączyć tę opcję.", orca4: "To wyłączy przesyłanie danych do usług chmurowych Bambu. Użytkownicy, którzy nie korzystają z maszyn BBL lub używają tylko trybu LAN, mogą bez obaw włączyć tę opcję.",
orca5: "Włącz tryb «Niewidzialny»", orca5: "Włącz tryb «Niewidzialny»",
}, },

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
SCRIPT_DIR=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)") SCRIPT_DIR=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
PROJECT_ROOT=$(dirname "$SCRIPT_DIR") PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
set -x set -x
# Wishlist hint: For developers, creating a Docker Compose # Wishlist hint: For developers, creating a Docker Compose
@@ -9,9 +9,9 @@ set -x
# the simplicity of a single Docker image and a one-time compilation # the simplicity of a single Docker image and a one-time compilation
# seems better. # seems better.
docker build -t orcaslicer \ docker build -t orcaslicer \
--build-arg USER=$USER \ --build-arg USER="$USER" \
--build-arg UID=$(id -u) \ --build-arg UID="$(id -u)" \
--build-arg GID=$(id -g) \ --build-arg GID="$(id -g)" \
--build-arg NCORES=$NCORES \ --build-arg NCORES="$NCORES" \
-f "$SCRIPT_DIR/Dockerfile" \ -f "$SCRIPT_DIR/Dockerfile" \
$PROJECT_ROOT "$PROJECT_ROOT"

View File

@@ -13,11 +13,11 @@ docker run \
`# Some X installs will not have permissions to talk to sockets for shared memory` \ `# Some X installs will not have permissions to talk to sockets for shared memory` \
--ipc host \ --ipc host \
`# Run as your workstations username to keep permissions the same` \ `# Run as your workstations username to keep permissions the same` \
-u $USER \ -u "$USER" \
`# Bind mount your home directory into the container for loading/saving files` \ `# Bind mount your home directory into the container for loading/saving files` \
-v $HOME:/home/$USER \ -v "$HOME:/home/$USER" \
`# Pass the X display number to the container` \ `# Pass the X display number to the container` \
-e DISPLAY=$DISPLAY \ -e DISPLAY="$DISPLAY" \
`# It seems that libGL and dbus things need privileged mode` \ `# It seems that libGL and dbus things need privileged mode` \
--privileged=true \ --privileged=true \
`# Attach tty for running orca slicer with command line things` \ `# Attach tty for running orca slicer with command line things` \
@@ -25,5 +25,4 @@ docker run \
`# Clean up after yourself` \ `# Clean up after yourself` \
--rm \ --rm \
`# Pass all parameters from this script to the orca slicer ENTRYPOINT binary` \ `# Pass all parameters from this script to the orca slicer ENTRYPOINT binary` \
orcaslicer $* orcaslicer "$@"

View File

@@ -1,4 +1,6 @@
#!/bin/bash
# these are the Arch Linux specific build functions # these are the Arch Linux specific build functions
export FOUND_GTK3
FOUND_GTK3=$(pacman -Q gtk3) FOUND_GTK3=$(pacman -Q gtk3)
# Addtional Dev packages for OrcaSlicer # Addtional Dev packages for OrcaSlicer
@@ -30,16 +32,17 @@ export REQUIRED_DEV_PACKAGES=(
if [[ -n "$UPDATE_LIB" ]] if [[ -n "$UPDATE_LIB" ]]
then then
echo -n -e "Updating linux ...\n" echo -n -e "Updating linux ...\n"
NEEDED_PKGS="" NEEDED_PKGS=()
for PKG in ${REQUIRED_DEV_PACKAGES[@]}; do for PKG in "${REQUIRED_DEV_PACKAGES[@]}"; do
pacman -Q ${PKG} > /dev/null || NEEDED_PKGS+=" ${PKG}" pacman -Q "${PKG}" > /dev/null || NEEDED_PKGS+=("${PKG}")
done done
if [ -n "${NEEDED_PKGS}" ]; then if [[ "${#NEEDED_PKGS[*]}" -gt 0 ]]; then
sudo pacman -Syy --noconfirm ${NEEDED_PKGS} sudo pacman -Syy --noconfirm "${NEEDED_PKGS[@]}"
fi fi
echo -e "done\n" echo -e "done\n"
exit 0 exit 0
fi fi
export FOUND_GTK3_DEV
FOUND_GTK3_DEV=${FOUND_GTK3} FOUND_GTK3_DEV=${FOUND_GTK3}

View File

@@ -1,5 +1,7 @@
#!/bin/bash
# these are the Clear Linux specific build functions # these are the Clear Linux specific build functions
FOUND_GTK3=$(ls /usr/lib64/libgtk-3.so.* 2>/dev/null | tail -n 1 || true) export FOUND_GTK3
FOUND_GTK3=$(find /usr/lib64/libgtk-3.so.* 2>/dev/null | tail -n 1 || true)
# Addtional bundles for OrcaSlicer # Addtional bundles for OrcaSlicer
export REQUIRED_BUNDLES=( export REQUIRED_BUNDLES=(
@@ -25,9 +27,10 @@ export REQUIRED_BUNDLES=(
if [[ -n "$UPDATE_LIB" ]] if [[ -n "$UPDATE_LIB" ]]
then then
echo "Updating linux ..." echo "Updating linux ..."
echo swupd bundle-add -y ${REQUIRED_BUNDLES[@]} echo swupd bundle-add -y "${REQUIRED_BUNDLES[@]}"
echo -e "done\n" echo -e "done\n"
exit 0 exit 0
fi fi
FOUND_GTK3_DEV=$(ls /usr/lib64/libgtk-3.so 2>/dev/null || true) export FOUND_GTK3_DEV
FOUND_GTK3_DEV=$(find /usr/lib64/libgtk-3.so 2>/dev/null || true)

View File

@@ -1,3 +1,5 @@
#!/bin/bash
export FOUND_GTK3
FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3 || echo '') FOUND_GTK3=$(dpkg -l libgtk* | grep gtk-3 || echo '')
REQUIRED_DEV_PACKAGES=( REQUIRED_DEV_PACKAGES=(
@@ -27,6 +29,7 @@ REQUIRED_DEV_PACKAGES=(
if [[ -n "$UPDATE_LIB" ]] if [[ -n "$UPDATE_LIB" ]]
then then
# shellcheck source=/dev/null
source /etc/os-release source /etc/os-release
if [ "${ID}" == "ubuntu" ] && [ -n "${VERSION_ID}" ]; then if [ "${ID}" == "ubuntu" ] && [ -n "${VERSION_ID}" ]; then
# It's ubuntu and we have a VERSION_ID like "24.04". # It's ubuntu and we have a VERSION_ID like "24.04".
@@ -50,14 +53,13 @@ then
REQUIRED_DEV_PACKAGES+=(libwebkit2gtk-4.1-dev) REQUIRED_DEV_PACKAGES+=(libwebkit2gtk-4.1-dev)
fi fi
# TODO: optimize this by checking which, if any, packages are already installed
# install them all at once # install them all at once
sudo apt update sudo apt update
sudo apt install -y ${REQUIRED_DEV_PACKAGES[@]} sudo apt install -y "${REQUIRED_DEV_PACKAGES[@]}"
echo -e "done\n" echo -e "done\n"
exit 0 exit 0
fi fi
export FOUND_GTK3_DEV
FOUND_GTK3_DEV=$(dpkg -l libgtk* | grep gtk-3-dev || echo '') FOUND_GTK3_DEV=$(dpkg -l libgtk* | grep gtk-3-dev || echo '')

View File

@@ -1,3 +1,5 @@
#!/bin/bash
export FOUND_GTK3
FOUND_GTK3=$(rpm -qa | grep -P '^gtk3' || true) FOUND_GTK3=$(rpm -qa | grep -P '^gtk3' || true)
REQUIRED_DEV_PACKAGES=( REQUIRED_DEV_PACKAGES=(
@@ -34,16 +36,17 @@ REQUIRED_DEV_PACKAGES=(
if [[ -n "$UPDATE_LIB" ]] if [[ -n "$UPDATE_LIB" ]]
then then
NEEDED_PKGS="" NEEDED_PKGS=()
for PKG in ${REQUIRED_DEV_PACKAGES[@]}; do for PKG in "${REQUIRED_DEV_PACKAGES[@]}"; do
rpm -q ${PKG} > /dev/null || NEEDED_PKGS+=" ${PKG}" rpm -q "${PKG}" > /dev/null || NEEDED_PKGS+=("${PKG}")
done done
if [ -n "${NEEDED_PKGS}" ]; then if [[ "${#NEEDED_PKGS[*]}" -gt 0 ]]; then
sudo dnf install -y ${NEEDED_PKGS} sudo dnf install -y "${NEEDED_PKGS[@]}"
fi fi
echo -e "done\n" echo -e "done\n"
exit 0 exit 0
fi fi
export FOUND_GTK3_DEV
FOUND_GTK3_DEV=$(rpm -qa | grep -P '^gtk3-devel' || true) FOUND_GTK3_DEV=$(rpm -qa | grep -P '^gtk3-devel' || true)

View File

@@ -59,14 +59,14 @@ for VENDOR in "$@"; do
done done
# Create zip file # Create zip file
cd "$TEMP_DIR" pushd "$TEMP_DIR" || exit 1
zip -r "$OUTPUT_FILE" profiles/ zip -r "$OUTPUT_FILE" profiles/
# Move zip file to original directory # Move zip file to original directory
mv "$OUTPUT_FILE" "$ORIGINAL_DIR/" mv "$OUTPUT_FILE" "$ORIGINAL_DIR/"
# Return to original directory # Return to original directory
cd "$ORIGINAL_DIR" popd || exit 1
# Clean up # Clean up
rm -rf "$TEMP_DIR" rm -rf "$TEMP_DIR"
@@ -78,4 +78,4 @@ if [ -f "$OUTPUT_FILE" ]; then
else else
echo "Error: Failed to create zip file" echo "Error: Failed to create zip file"
exit 1 exit 1
fi fi

View File

@@ -31,9 +31,7 @@ do
msgmerge -N -o "$dir/OrcaSlicer_${lang}.po" "$dir/OrcaSlicer_${lang}.po" "$pot_file" msgmerge -N -o "$dir/OrcaSlicer_${lang}.po" "$dir/OrcaSlicer_${lang}.po" "$pot_file"
fi fi
mkdir -p "resources/i18n/${lang}" mkdir -p "resources/i18n/${lang}"
msgfmt --check-format -o "resources/i18n/${lang}/OrcaSlicer.mo" "$dir/OrcaSlicer_${lang}.po" if ! msgfmt --check-format -o "resources/i18n/${lang}/OrcaSlicer.mo" "$dir/OrcaSlicer_${lang}.po"; then
# Check the exit status of the msgfmt command
if [ $? -ne 0 ]; then
echo "Error encountered with msgfmt command for language ${lang}." echo "Error encountered with msgfmt command for language ${lang}."
exit 1 # Exit the script with an error status exit 1 # Exit the script with an error status
fi fi

View File

@@ -36,7 +36,7 @@ function(encoding_check TARGET)
# Add checking of each source file as a subcommand of encoding-check-${TARGET} # Add checking of each source file as a subcommand of encoding-check-${TARGET}
foreach(file ${T_SOURCES}) foreach(file ${T_SOURCES})
add_custom_command(TARGET encoding-check-${TARGET} add_custom_command(TARGET encoding-check-${TARGET} PRE_BUILD
COMMAND $<TARGET_FILE:encoding-check> ${TARGET} ${file} COMMAND $<TARGET_FILE:encoding-check> ${TARGET} ${file}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
) )

View File

@@ -21,30 +21,71 @@ endif()
option(BUILD_SHARED_LIBS "Build shared libs" OFF) option(BUILD_SHARED_LIBS "Build shared libs" OFF)
set(lisbslic3r_sources set(lisbslic3r_sources
ArcFitter.cpp AABBMesh.cpp
ArcFitter.hpp AABBMesh.hpp
pchheader.cpp
pchheader.hpp
AABBTreeIndirect.hpp AABBTreeIndirect.hpp
AABBTreeLines.hpp AABBTreeLines.hpp
AABBMesh.hpp
AABBMesh.cpp
Algorithm/LineSplit.hpp
Algorithm/LineSplit.cpp Algorithm/LineSplit.cpp
Algorithm/RegionExpansion.hpp Algorithm/LineSplit.hpp
Algorithm/RegionExpansion.cpp Algorithm/RegionExpansion.cpp
Algorithm/RegionExpansion.hpp
AnyPtr.hpp AnyPtr.hpp
AppConfig.cpp
AppConfig.hpp
Arachne/BeadingStrategy/BeadingStrategy.cpp
Arachne/BeadingStrategy/BeadingStrategyFactory.cpp
Arachne/BeadingStrategy/BeadingStrategyFactory.hpp
Arachne/BeadingStrategy/BeadingStrategy.hpp
Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp
Arachne/BeadingStrategy/DistributedBeadingStrategy.hpp
Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp
Arachne/BeadingStrategy/LimitedBeadingStrategy.hpp
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.hpp
Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp
Arachne/BeadingStrategy/RedistributeBeadingStrategy.hpp
Arachne/BeadingStrategy/WideningBeadingStrategy.cpp
Arachne/BeadingStrategy/WideningBeadingStrategy.hpp
Arachne/SkeletalTrapezoidation.cpp
Arachne/SkeletalTrapezoidationEdge.hpp
Arachne/SkeletalTrapezoidationGraph.cpp
Arachne/SkeletalTrapezoidationGraph.hpp
Arachne/SkeletalTrapezoidation.hpp
Arachne/SkeletalTrapezoidationJoint.hpp
Arachne/utils/ExtrusionJunction.hpp
Arachne/utils/ExtrusionLine.cpp
Arachne/utils/ExtrusionLine.hpp
Arachne/utils/HalfEdgeGraph.hpp
Arachne/utils/HalfEdge.hpp
Arachne/utils/HalfEdgeNode.hpp
Arachne/utils/PolygonsPointIndex.hpp
Arachne/utils/PolygonsSegmentIndex.hpp
Arachne/utils/PolylineStitcher.cpp
Arachne/utils/PolylineStitcher.hpp
Arachne/utils/SparseGrid.hpp
Arachne/utils/SparseLineGrid.hpp
Arachne/utils/SparsePointGrid.hpp
Arachne/utils/SquareGrid.cpp
Arachne/utils/SquareGrid.hpp
Arachne/WallToolPaths.cpp
Arachne/WallToolPaths.hpp
ArcFitter.cpp
ArcFitter.hpp
Arrange.cpp
Arrange.hpp
BlacklistedLibraryCheck.cpp
BlacklistedLibraryCheck.hpp
BoundingBox.cpp BoundingBox.cpp
BoundingBox.hpp BoundingBox.hpp
BridgeDetector.cpp BridgeDetector.cpp
BridgeDetector.hpp BridgeDetector.hpp
FaceDetector.cpp
FaceDetector.hpp
Brim.cpp Brim.cpp
Brim.hpp
BrimEarsPoint.hpp BrimEarsPoint.hpp
Brim.hpp
BuildVolume.cpp BuildVolume.cpp
BuildVolume.hpp BuildVolume.hpp
calib.cpp
calib.hpp
Circle.cpp Circle.cpp
Circle.hpp Circle.hpp
clipper.cpp clipper.cpp
@@ -56,6 +97,10 @@ set(lisbslic3r_sources
Color.hpp Color.hpp
Config.cpp Config.cpp
Config.hpp Config.hpp
CustomGCode.cpp
CustomGCode.hpp
CutUtils.cpp
CutUtils.hpp
EdgeGrid.cpp EdgeGrid.cpp
EdgeGrid.hpp EdgeGrid.hpp
ElephantFootCompensation.cpp ElephantFootCompensation.cpp
@@ -64,6 +109,9 @@ set(lisbslic3r_sources
Emboss.hpp Emboss.hpp
EmbossShape.hpp EmbossShape.hpp
enum_bitmask.hpp enum_bitmask.hpp
Execution/Execution.hpp
Execution/ExecutionSeq.hpp
Execution/ExecutionTBB.hpp
ExPolygon.cpp ExPolygon.cpp
ExPolygon.hpp ExPolygon.hpp
ExPolygonSerialize.hpp ExPolygonSerialize.hpp
@@ -71,21 +119,21 @@ set(lisbslic3r_sources
ExPolygonsIndex.hpp ExPolygonsIndex.hpp
Extruder.cpp Extruder.cpp
Extruder.hpp Extruder.hpp
ExtrusionEntity.cpp
ExtrusionEntity.hpp
ExtrusionEntityCollection.cpp ExtrusionEntityCollection.cpp
ExtrusionEntityCollection.hpp ExtrusionEntityCollection.hpp
ExtrusionEntity.cpp
ExtrusionEntity.hpp
ExtrusionSimulator.cpp ExtrusionSimulator.cpp
ExtrusionSimulator.hpp ExtrusionSimulator.hpp
FaceDetector.cpp
FaceDetector.hpp
Feature/FuzzySkin/FuzzySkin.cpp
Feature/FuzzySkin/FuzzySkin.hpp
Feature/Interlocking/InterlockingGenerator.cpp Feature/Interlocking/InterlockingGenerator.cpp
Feature/Interlocking/InterlockingGenerator.hpp Feature/Interlocking/InterlockingGenerator.hpp
Feature/Interlocking/VoxelUtils.cpp Feature/Interlocking/VoxelUtils.cpp
Feature/Interlocking/VoxelUtils.hpp Feature/Interlocking/VoxelUtils.hpp
FileParserError.hpp FileParserError.hpp
Feature/FuzzySkin/FuzzySkin.cpp
Feature/FuzzySkin/FuzzySkin.hpp
Fill/Fill.cpp
Fill/Fill.hpp
Fill/Fill3DHoneycomb.cpp Fill/Fill3DHoneycomb.cpp
Fill/Fill3DHoneycomb.hpp Fill/Fill3DHoneycomb.hpp
Fill/FillAdaptive.cpp Fill/FillAdaptive.cpp
@@ -96,22 +144,26 @@ set(lisbslic3r_sources
Fill/FillConcentric.hpp Fill/FillConcentric.hpp
Fill/FillConcentricInternal.cpp Fill/FillConcentricInternal.cpp
Fill/FillConcentricInternal.hpp Fill/FillConcentricInternal.hpp
Fill/Fill.cpp
Fill/FillCrossHatch.cpp Fill/FillCrossHatch.cpp
Fill/FillCrossHatch.hpp Fill/FillCrossHatch.hpp
Fill/FillHoneycomb.cpp
Fill/FillHoneycomb.hpp
Fill/FillGyroid.cpp Fill/FillGyroid.cpp
Fill/FillGyroid.hpp Fill/FillGyroid.hpp
Fill/FillHoneycomb.cpp
Fill/FillHoneycomb.hpp
Fill/Fill.hpp
Fill/FillLightning.cpp
Fill/FillLightning.hpp
Fill/FillLine.cpp
Fill/FillLine.hpp
Fill/FillPlanePath.cpp
Fill/FillPlanePath.hpp
Fill/FillRectilinear.cpp
Fill/FillRectilinear.hpp
Fill/FillTpmsD.cpp Fill/FillTpmsD.cpp
Fill/FillTpmsD.hpp Fill/FillTpmsD.hpp
Fill/FillTpmsFK.cpp Fill/FillTpmsFK.cpp
Fill/FillTpmsFK.hpp Fill/FillTpmsFK.hpp
Fill/FillPlanePath.cpp
Fill/FillPlanePath.hpp
Fill/FillLine.cpp
Fill/FillLine.hpp
Fill/FillLightning.cpp
Fill/FillLightning.hpp
Fill/Lightning/DistanceField.cpp Fill/Lightning/DistanceField.cpp
Fill/Lightning/DistanceField.hpp Fill/Lightning/DistanceField.hpp
Fill/Lightning/Generator.cpp Fill/Lightning/Generator.cpp
@@ -120,220 +172,257 @@ set(lisbslic3r_sources
Fill/Lightning/Layer.hpp Fill/Lightning/Layer.hpp
Fill/Lightning/TreeNode.cpp Fill/Lightning/TreeNode.cpp
Fill/Lightning/TreeNode.hpp Fill/Lightning/TreeNode.hpp
Fill/FillRectilinear.cpp
Fill/FillRectilinear.hpp
Flow.cpp Flow.cpp
Flow.hpp Flow.hpp
FlushVolCalc.cpp FlushVolCalc.cpp
FlushVolCalc.hpp FlushVolCalc.hpp
format.hpp
Format/3mf.cpp Format/3mf.cpp
Format/3mf.hpp Format/3mf.hpp
Format/bbs_3mf.cpp
Format/bbs_3mf.hpp
Format/AMF.cpp Format/AMF.cpp
Format/AMF.hpp Format/AMF.hpp
Format/bbs_3mf.cpp
Format/bbs_3mf.hpp
format.hpp
Format/OBJ.cpp Format/OBJ.cpp
Format/OBJ.hpp Format/OBJ.hpp
Format/objparser.cpp Format/objparser.cpp
Format/objparser.hpp Format/objparser.hpp
Format/SL1.cpp
Format/SL1.hpp
Format/STEP.cpp Format/STEP.cpp
Format/STEP.hpp Format/STEP.hpp
Format/STL.cpp Format/STL.cpp
Format/STL.hpp Format/STL.hpp
Format/SL1.hpp
Format/SL1.cpp
Format/svg.hpp
Format/svg.cpp Format/svg.cpp
Format/ZipperArchiveImport.hpp Format/svg.hpp
Format/ZipperArchiveImport.cpp Format/ZipperArchiveImport.cpp
GCode/ThumbnailData.cpp Format/ZipperArchiveImport.hpp
GCode/ThumbnailData.hpp GCode/AdaptivePAInterpolator.cpp
GCode/AdaptivePAInterpolator.hpp
GCode/AdaptivePAProcessor.cpp
GCode/AdaptivePAProcessor.hpp
GCode/AvoidCrossingPerimeters.cpp
GCode/AvoidCrossingPerimeters.hpp
GCode/ConflictChecker.cpp
GCode/ConflictChecker.hpp
GCode/CoolingBuffer.cpp GCode/CoolingBuffer.cpp
GCode/CoolingBuffer.hpp GCode/CoolingBuffer.hpp
GCode/FanMover.cpp GCode.cpp
GCode/ExtrusionProcessor.hpp
GCode/FanMover.cpp
GCode/FanMover.hpp GCode/FanMover.hpp
GCode/GCodeProcessor.cpp
GCode/GCodeProcessor.hpp
GCode.hpp
GCode/PchipInterpolatorHelper.cpp
GCode/PchipInterpolatorHelper.hpp
GCode/PostProcessor.cpp GCode/PostProcessor.cpp
GCode/PostProcessor.hpp GCode/PostProcessor.hpp
GCode/PressureEqualizer.cpp GCode/PressureEqualizer.cpp
GCode/PressureEqualizer.hpp GCode/PressureEqualizer.hpp
GCode/PrintExtents.cpp GCode/PrintExtents.cpp
GCode/PrintExtents.hpp GCode/PrintExtents.hpp
GCode/RetractWhenCrossingPerimeters.cpp
GCode/RetractWhenCrossingPerimeters.hpp
GCode/SmallAreaInfillFlowCompensator.cpp
GCode/SmallAreaInfillFlowCompensator.hpp
GCode/PchipInterpolatorHelper.cpp
GCode/PchipInterpolatorHelper.hpp
GCode/AdaptivePAInterpolator.cpp
GCode/AdaptivePAInterpolator.hpp
GCode/AdaptivePAProcessor.cpp
GCode/AdaptivePAProcessor.hpp
GCode/SpiralVase.cpp
GCode/SpiralVase.hpp
GCode/SeamPlacer.cpp
GCode/SeamPlacer.hpp
GCode/ToolOrdering.cpp
GCode/ToolOrdering.hpp
GCode/WipeTower.cpp
GCode/WipeTower.hpp
GCode/WipeTower2.cpp
GCode/WipeTower2.hpp
GCode/GCodeProcessor.cpp
GCode/GCodeProcessor.hpp
GCode/AvoidCrossingPerimeters.cpp
GCode/AvoidCrossingPerimeters.hpp
GCode/ExtrusionProcessor.hpp
GCode/ConflictChecker.cpp
GCode/ConflictChecker.hpp
GCode.cpp
GCode.hpp
GCodeReader.cpp GCodeReader.cpp
GCodeReader.hpp GCodeReader.hpp
# GCodeSender.cpp GCode/RetractWhenCrossingPerimeters.cpp
# GCodeSender.hpp GCode/RetractWhenCrossingPerimeters.hpp
GCode/SeamPlacer.cpp
GCode/SeamPlacer.hpp
#GCodeSender.cpp
#GCodeSender.hpp
GCode/SmallAreaInfillFlowCompensator.cpp
GCode/SmallAreaInfillFlowCompensator.hpp
GCode/SpiralVase.cpp
GCode/SpiralVase.hpp
GCode/ThumbnailData.cpp
GCode/ThumbnailData.hpp
GCode/Thumbnails.cpp
GCode/Thumbnails.hpp
GCode/ToolOrdering.cpp
GCode/ToolOrdering.hpp
GCode/WipeTower2.cpp
GCode/WipeTower2.hpp
GCode/WipeTower.cpp
GCode/WipeTower.hpp
GCodeWriter.cpp GCodeWriter.cpp
GCodeWriter.hpp GCodeWriter.hpp
Geometry.cpp
Geometry.hpp
Geometry/Bicubic.hpp Geometry/Bicubic.hpp
Geometry/Circle.cpp Geometry/Circle.cpp
Geometry/Circle.hpp Geometry/Circle.hpp
Geometry/ConvexHull.cpp Geometry/ConvexHull.cpp
Geometry/ConvexHull.hpp Geometry/ConvexHull.hpp
Geometry.cpp
Geometry/Curves.hpp Geometry/Curves.hpp
Geometry.hpp
Geometry/MedialAxis.cpp Geometry/MedialAxis.cpp
Geometry/MedialAxis.hpp Geometry/MedialAxis.hpp
Geometry/Voronoi.cpp Geometry/Voronoi.cpp
Geometry/Voronoi.hpp Geometry/Voronoi.hpp
Geometry/VoronoiOffset.cpp Geometry/VoronoiOffset.cpp
Geometry/VoronoiOffset.hpp Geometry/VoronoiOffset.hpp
Geometry/VoronoiUtils.hpp
Geometry/VoronoiUtils.cpp
Geometry/VoronoiUtilsCgal.cpp Geometry/VoronoiUtilsCgal.cpp
Geometry/VoronoiUtilsCgal.hpp Geometry/VoronoiUtilsCgal.hpp
Geometry/VoronoiUtils.cpp
Geometry/VoronoiUtils.hpp
Geometry/VoronoiVisualUtils.hpp Geometry/VoronoiVisualUtils.hpp
Int128.hpp Int128.hpp
KDTreeIndirect.hpp KDTreeIndirect.hpp
Layer.cpp Layer.cpp
Layer.hpp Layer.hpp
LayerRegion.cpp LayerRegion.cpp
libslic3r.h
libslic3r.cpp libslic3r.cpp
libslic3r.h
Line.cpp Line.cpp
Line.hpp Line.hpp
BlacklistedLibraryCheck.cpp
BlacklistedLibraryCheck.hpp
LocalesUtils.cpp LocalesUtils.cpp
LocalesUtils.hpp LocalesUtils.hpp
CutUtils.cpp MarchingSquares.hpp
CutUtils.hpp Measure.cpp
Measure.hpp
MeasureUtils.hpp
MeshSplitImpl.hpp
MinAreaBoundingBox.cpp
MinAreaBoundingBox.hpp
MinimumSpanningTree.cpp
MinimumSpanningTree.hpp
miniz_extension.cpp
miniz_extension.hpp
ModelArrange.cpp
ModelArrange.hpp
Model.cpp Model.cpp
Model.hpp Model.hpp
ModelArrange.hpp MTUtils.hpp
ModelArrange.cpp
MultiMaterialSegmentation.cpp MultiMaterialSegmentation.cpp
MultiMaterialSegmentation.hpp MultiMaterialSegmentation.hpp
Measure.hpp
Measure.cpp
MeasureUtils.hpp
CustomGCode.cpp
CustomGCode.hpp
Arrange.hpp
Arrange.cpp
NormalUtils.cpp
NormalUtils.hpp
ObjColorUtils.cpp
ObjColorUtils.hpp
Orient.hpp
Orient.cpp
MultiPoint.cpp MultiPoint.cpp
MultiPoint.hpp MultiPoint.hpp
MutablePolygon.cpp
MutablePolygon.hpp
MutablePriorityQueue.hpp MutablePriorityQueue.hpp
NormalUtils.cpp
NormalUtils.hpp
NSVGUtils.cpp NSVGUtils.cpp
NSVGUtils.hpp NSVGUtils.hpp
ObjColorUtils.cpp
ObjColorUtils.hpp
ObjectID.cpp ObjectID.cpp
ObjectID.hpp ObjectID.hpp
ParameterUtils.cpp Optimize/BruteforceOptimizer.hpp
Optimize/NLoptOptimizer.hpp
Optimize/Optimizer.hpp
Orient.cpp
Orient.hpp
ParameterUtils.cpp
ParameterUtils.hpp ParameterUtils.hpp
pchheader.cpp
pchheader.hpp
PerimeterGenerator.cpp PerimeterGenerator.cpp
PerimeterGenerator.hpp PerimeterGenerator.hpp
PlaceholderParser.cpp PlaceholderParser.cpp
PlaceholderParser.hpp PlaceholderParser.hpp
Platform.cpp Platform.cpp
Platform.hpp Platform.hpp
PNGReadWrite.cpp
PNGReadWrite.hpp
Point.cpp Point.cpp
Point.hpp Point.hpp
Polygon.cpp Polygon.cpp
Polygon.hpp Polygon.hpp
MutablePolygon.cpp
MutablePolygon.hpp
PolygonTrimmer.cpp PolygonTrimmer.cpp
PolygonTrimmer.hpp PolygonTrimmer.hpp
Polyline.cpp Polyline.cpp
Polyline.hpp Polyline.hpp
Preset.cpp
Preset.hpp
PresetBundle.cpp PresetBundle.cpp
PresetBundle.hpp PresetBundle.hpp
ProjectTask.cpp Preset.cpp
ProjectTask.hpp Preset.hpp
PrincipalComponents2D.hpp
PrincipalComponents2D.cpp PrincipalComponents2D.cpp
AppConfig.cpp PrincipalComponents2D.hpp
AppConfig.hpp
Print.cpp
Print.hpp
PrintApply.cpp PrintApply.cpp
PrintBase.cpp PrintBase.cpp
PrintBase.hpp PrintBase.hpp
PrintConfig.cpp PrintConfig.cpp
PrintConfig.hpp PrintConfig.hpp
Print.cpp
Print.hpp
PrintObject.cpp PrintObject.cpp
PrintObjectSlice.cpp PrintObjectSlice.cpp
PrintRegion.cpp PrintRegion.cpp
PNGReadWrite.hpp ProjectTask.cpp
PNGReadWrite.cpp ProjectTask.hpp
QuadricEdgeCollapse.cpp QuadricEdgeCollapse.cpp
QuadricEdgeCollapse.hpp QuadricEdgeCollapse.hpp
Semver.cpp Semver.cpp
Shape/TextShape.cpp
Shape/TextShape.hpp
ShortEdgeCollapse.cpp ShortEdgeCollapse.cpp
ShortEdgeCollapse.hpp ShortEdgeCollapse.hpp
ShortestPath.cpp ShortestPath.cpp
ShortestPath.hpp ShortestPath.hpp
SLA/AGGRaster.hpp
SLA/BoostAdapter.hpp
SLA/Clustering.cpp
SLA/Clustering.hpp
SLA/ConcaveHull.cpp
SLA/ConcaveHull.hpp
SLA/Concurrency.hpp
SLA/Hollowing.cpp
SLA/Hollowing.hpp
SLA/IndexedMesh.cpp
SLA/IndexedMesh.hpp
SLA/JobController.hpp
SLA/Pad.cpp
SLA/Pad.hpp
SLAPrint.cpp SLAPrint.cpp
SLAPrint.hpp
SLAPrintSteps.cpp SLAPrintSteps.cpp
SLAPrintSteps.hpp SLAPrintSteps.hpp
SLAPrint.hpp SLA/RasterBase.cpp
Slicing.cpp SLA/RasterBase.hpp
Slicing.hpp SLA/RasterToPolygons.cpp
SlicesToTriangleMesh.hpp SLA/RasterToPolygons.hpp
SLA/ReprojectPointsOnMesh.hpp
SLA/Rotfinder.cpp
SLA/Rotfinder.hpp
SLA/SpatIndex.cpp
SLA/SpatIndex.hpp
SLA/SupportPointGenerator.cpp
SLA/SupportPointGenerator.hpp
SLA/SupportPoint.hpp
SLA/SupportTreeBuilder.cpp
SLA/SupportTreeBuilder.hpp
SLA/SupportTreeBuildsteps.cpp
SLA/SupportTreeBuildsteps.hpp
SLA/SupportTree.cpp
SLA/SupportTree.hpp
#SLA/SupportTreeIGL.cpp
SLA/SupportTreeMesher.cpp
SLA/SupportTreeMesher.hpp
SlicesToTriangleMesh.cpp SlicesToTriangleMesh.cpp
SlicesToTriangleMesh.hpp
SlicingAdaptive.cpp SlicingAdaptive.cpp
SlicingAdaptive.hpp SlicingAdaptive.hpp
Slicing.cpp
Slicing.hpp
Support/SupportCommon.cpp Support/SupportCommon.cpp
Support/SupportCommon.hpp Support/SupportCommon.hpp
Support/SupportLayer.hpp Support/SupportLayer.hpp
Support/SupportMaterial.cpp Support/SupportMaterial.cpp
Support/SupportMaterial.hpp Support/SupportMaterial.hpp
Support/SupportParameters.hpp
Support/SupportSpotsGenerator.cpp Support/SupportSpotsGenerator.cpp
Support/SupportSpotsGenerator.hpp Support/SupportSpotsGenerator.hpp
Support/TreeSupport.hpp
Support/TreeSupport.cpp
Support/TreeSupport3D.hpp
Support/TreeSupport3D.cpp
Support/TreeModelVolumes.hpp
Support/TreeModelVolumes.cpp Support/TreeModelVolumes.cpp
Support/TreeModelVolumes.hpp
Support/TreeSupport3D.cpp
Support/TreeSupport3D.hpp
Support/TreeSupportCommon.hpp Support/TreeSupportCommon.hpp
Support/SupportParameters.hpp Support/TreeSupport.cpp
PrincipalComponents2D.cpp Support/TreeSupport.hpp
PrincipalComponents2D.hpp
MinimumSpanningTree.hpp
MinimumSpanningTree.cpp
Surface.cpp
Surface.hpp
SurfaceCollection.cpp SurfaceCollection.cpp
SurfaceCollection.hpp SurfaceCollection.hpp
Surface.cpp
Surface.hpp
SurfaceMesh.hpp SurfaceMesh.hpp
SVG.cpp SVG.cpp
SVG.hpp SVG.hpp
@@ -341,119 +430,28 @@ set(lisbslic3r_sources
Tesselate.cpp Tesselate.cpp
Tesselate.hpp Tesselate.hpp
TextConfiguration.hpp TextConfiguration.hpp
TriangleMesh.cpp Thread.cpp
TriangleMesh.hpp Thread.hpp
TriangleMeshSlicer.cpp
TriangleMeshSlicer.hpp
MeshSplitImpl.hpp
TriangulateWall.hpp
TriangulateWall.cpp
utils.cpp
Utils.hpp
Time.cpp Time.cpp
Time.hpp Time.hpp
Timer.cpp Timer.cpp
Timer.hpp Timer.hpp
Thread.cpp TriangleMesh.cpp
Thread.hpp TriangleMesh.hpp
TriangleMeshSlicer.cpp
TriangleMeshSlicer.hpp
TriangleSelector.cpp TriangleSelector.cpp
TriangleSelector.hpp TriangleSelector.hpp
TriangleSetSampling.cpp TriangleSetSampling.cpp
TriangleSetSampling.hpp TriangleSetSampling.hpp
MTUtils.hpp TriangulateWall.cpp
TriangulateWall.hpp
utils.cpp
Utils.hpp
VariableWidth.cpp VariableWidth.cpp
VariableWidth.hpp VariableWidth.hpp
Zipper.hpp
Zipper.cpp Zipper.cpp
MinAreaBoundingBox.hpp Zipper.hpp
MinAreaBoundingBox.cpp
miniz_extension.hpp
miniz_extension.cpp
MarchingSquares.hpp
Execution/Execution.hpp
Execution/ExecutionSeq.hpp
Execution/ExecutionTBB.hpp
Optimize/Optimizer.hpp
Optimize/NLoptOptimizer.hpp
Optimize/BruteforceOptimizer.hpp
SLA/Pad.hpp
SLA/Pad.cpp
SLA/SupportTreeBuilder.hpp
SLA/SupportTreeMesher.hpp
SLA/SupportTreeMesher.cpp
SLA/SupportTreeBuildsteps.hpp
SLA/SupportTreeBuildsteps.cpp
SLA/SupportTreeBuilder.cpp
SLA/Concurrency.hpp
SLA/SupportTree.hpp
SLA/SupportTree.cpp
# SLA/SupportTreeIGL.cpp
SLA/Rotfinder.hpp
SLA/Rotfinder.cpp
SLA/BoostAdapter.hpp
SLA/SpatIndex.hpp
SLA/SpatIndex.cpp
SLA/RasterBase.hpp
SLA/RasterBase.cpp
SLA/AGGRaster.hpp
SLA/RasterToPolygons.hpp
SLA/RasterToPolygons.cpp
SLA/ConcaveHull.hpp
SLA/ConcaveHull.cpp
SLA/Hollowing.hpp
SLA/Hollowing.cpp
SLA/JobController.hpp
SLA/SupportPoint.hpp
SLA/SupportPointGenerator.hpp
SLA/SupportPointGenerator.cpp
SLA/IndexedMesh.hpp
SLA/IndexedMesh.cpp
SLA/Clustering.hpp
SLA/Clustering.cpp
SLA/ReprojectPointsOnMesh.hpp
Arachne/BeadingStrategy/BeadingStrategy.hpp
Arachne/BeadingStrategy/BeadingStrategy.cpp
Arachne/BeadingStrategy/BeadingStrategyFactory.hpp
Arachne/BeadingStrategy/BeadingStrategyFactory.cpp
Arachne/BeadingStrategy/DistributedBeadingStrategy.hpp
Arachne/BeadingStrategy/DistributedBeadingStrategy.cpp
Arachne/BeadingStrategy/LimitedBeadingStrategy.hpp
Arachne/BeadingStrategy/LimitedBeadingStrategy.cpp
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.hpp
Arachne/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp
Arachne/BeadingStrategy/RedistributeBeadingStrategy.hpp
Arachne/BeadingStrategy/RedistributeBeadingStrategy.cpp
Arachne/BeadingStrategy/WideningBeadingStrategy.hpp
Arachne/BeadingStrategy/WideningBeadingStrategy.cpp
Arachne/utils/ExtrusionJunction.hpp
Arachne/utils/ExtrusionLine.hpp
Arachne/utils/ExtrusionLine.cpp
Arachne/utils/HalfEdge.hpp
Arachne/utils/HalfEdgeGraph.hpp
Arachne/utils/HalfEdgeNode.hpp
Arachne/utils/SparseGrid.hpp
Arachne/utils/SparsePointGrid.hpp
Arachne/utils/SparseLineGrid.hpp
Arachne/utils/SquareGrid.hpp
Arachne/utils/SquareGrid.cpp
Arachne/utils/PolygonsPointIndex.hpp
Arachne/utils/PolygonsSegmentIndex.hpp
Arachne/utils/PolylineStitcher.hpp
Arachne/utils/PolylineStitcher.cpp
Arachne/SkeletalTrapezoidation.hpp
Arachne/SkeletalTrapezoidation.cpp
Arachne/SkeletalTrapezoidationEdge.hpp
Arachne/SkeletalTrapezoidationGraph.hpp
Arachne/SkeletalTrapezoidationGraph.cpp
Arachne/SkeletalTrapezoidationJoint.hpp
Arachne/WallToolPaths.hpp
Arachne/WallToolPaths.cpp
Shape/TextShape.hpp
Shape/TextShape.cpp
calib.hpp
calib.cpp
GCode/Thumbnails.cpp
GCode/Thumbnails.hpp
FilamentGroup.hpp FilamentGroup.hpp
FilamentGroup.cpp FilamentGroup.cpp
FilamentGroupUtils.hpp FilamentGroupUtils.hpp
@@ -466,7 +464,7 @@ set(lisbslic3r_sources
if (APPLE) if (APPLE)
list(APPEND lisbslic3r_sources list(APPEND lisbslic3r_sources
MacUtils.mm MacUtils.mm
Format/ModelIO.hpp Format/ModelIO.hpp
Format/ModelIO.mm Format/ModelIO.mm
) )
@@ -528,7 +526,7 @@ target_include_directories(libslic3r SYSTEM PUBLIC ${EXPAT_INCLUDE_DIRS})
# Find the OCCT and related libraries # Find the OCCT and related libraries
set(OpenCASCADE_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/occt") set(OpenCASCADE_DIR "${CMAKE_PREFIX_PATH}/lib/cmake/occt")
find_package(OpenCASCADE REQUIRED) find_package(OpenCASCADE REQUIRED)
target_include_directories(libslic3r PUBLIC ${OpenCASCADE_INCLUDE_DIR}) target_include_directories(libslic3r SYSTEM PUBLIC ${OpenCASCADE_INCLUDE_DIR})
find_package(JPEG REQUIRED) find_package(JPEG REQUIRED)
@@ -563,57 +561,59 @@ set(OCCT_LIBS
find_package(libnoise REQUIRED) find_package(libnoise REQUIRED)
target_link_libraries(libslic3r target_link_libraries(libslic3r
libnest2d PUBLIC
admesh admesh
cereal::cereal libigl
eigen libnest2d
libigl miniz
miniz opencv_world
boost_libs PRIVATE
clipper ${CMAKE_DL_LIBS}
${EXPAT_LIBRARIES} ${EXPAT_LIBRARIES}
glu-libtess ${OCCT_LIBS}
qhull boost_libs
semver cereal::cereal
TBB::tbb clipper
TBB::tbbmalloc eigen
libslic3r_cgal glu-libtess
${CMAKE_DL_LIBS} JPEG::JPEG
PNG::PNG libslic3r_cgal
ZLIB::ZLIB mcut
${OCCT_LIBS} noise::noise
mcut PNG::PNG
JPEG::JPEG qhull
qoi qoi
opencv_world semver
noise::noise TBB::tbb
TBB::tbbmalloc
ZLIB::ZLIB
) )
if(NOT WIN32) if(NOT WIN32)
# Link freetype for OCCT dependency (CAD operations need font rendering) # Link freetype for OCCT dependency (CAD operations need font rendering)
target_link_libraries(libslic3r ${FREETYPE_LIBRARIES}) target_link_libraries(libslic3r PRIVATE ${FREETYPE_LIBRARIES})
target_link_libraries(libslic3r OpenSSL::Crypto) target_link_libraries(libslic3r PRIVATE OpenSSL::Crypto)
if (NOT APPLE) if (NOT APPLE)
target_link_libraries(libslic3r fontconfig) target_link_libraries(libslic3r PRIVATE fontconfig)
endif() endif()
endif() endif()
if (APPLE) if (APPLE)
find_library(FOUNDATION Foundation REQUIRED) find_library(FOUNDATION Foundation REQUIRED)
find_library(MODELIO ModelIO REQUIRED) find_library(MODELIO ModelIO REQUIRED)
target_link_libraries(libslic3r ${FOUNDATION} ${MODELIO}) target_link_libraries(libslic3r PRIVATE ${FOUNDATION} ${MODELIO})
endif () endif ()
if (TARGET OpenVDB::openvdb) if (TARGET OpenVDB::openvdb)
target_link_libraries(libslic3r OpenVDB::openvdb) target_link_libraries(libslic3r PRIVATE OpenVDB::openvdb)
endif() endif()
if(WIN32) if(WIN32)
target_link_libraries(libslic3r Psapi.lib) target_link_libraries(libslic3r PRIVATE Psapi.lib)
endif() endif()
if(SLIC3R_PROFILE) if(SLIC3R_PROFILE)
target_link_libraries(libslic3r Shiny) target_link_libraries(libslic3r PRIVATE Shiny)
endif() endif()
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)

View File

@@ -3334,16 +3334,16 @@ std::string GCode::placeholder_parser_process(const std::string &name, const std
if (config_override) { if (config_override) {
const auto& custom_gcode_placeholders = custom_gcode_specific_placeholders(); const auto& custom_gcode_placeholders = custom_gcode_specific_placeholders();
// 1-st check: custom G-code "name" have to be present in s_CustomGcodeSpecificOptions; // 1-st check: custom G-code "name" have to be present in s_CustomGcodeSpecificPlaceholders;
//if (custom_gcode_placeholders.count(name) > 0) { //if (custom_gcode_placeholders.count(name) > 0) {
// const auto& placeholders = custom_gcode_placeholders.at(name); // const auto& placeholders = custom_gcode_placeholders.at(name);
if (auto it = custom_gcode_placeholders.find(name); it != custom_gcode_placeholders.end()) { if (auto it = custom_gcode_placeholders.find(name); it != custom_gcode_placeholders.end()) {
const auto& placeholders = it->second; const auto& placeholders = it->second;
for (const std::string& key : config_override->keys()) { for (const std::string& key : config_override->keys()) {
// 2-nd check: "key" have to be present in s_CustomGcodeSpecificOptions for "name" custom G-code ; // 2-nd check: "key" have to be present in s_CustomGcodeSpecificPlaceholders for "name" custom G-code ;
if (std::find(placeholders.begin(), placeholders.end(), key) == placeholders.end()) { if (std::find(placeholders.begin(), placeholders.end(), key) == placeholders.end()) {
auto& vector = m_placeholder_error_messages[name + " - option not specified for custom gcode type (s_CustomGcodeSpecificOptions)"]; auto& vector = m_placeholder_error_messages[name + " - option not specified for custom gcode type (s_CustomGcodeSpecificPlaceholders)"];
if (std::find(vector.begin(), vector.end(), key) == vector.end()) if (std::find(vector.begin(), vector.end(), key) == vector.end())
vector.emplace_back(key); vector.emplace_back(key);
} }
@@ -3356,7 +3356,7 @@ std::string GCode::placeholder_parser_process(const std::string &name, const std
} }
} }
else { else {
auto& vector = m_placeholder_error_messages[name + " - gcode type not found in s_CustomGcodeSpecificOptions"]; auto& vector = m_placeholder_error_messages[name + " - gcode type not found in s_CustomGcodeSpecificPlaceholders"];
if (vector.empty()) if (vector.empty())
vector.emplace_back(""); vector.emplace_back("");
} }

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,4 @@
// for scroll // for scroll
#pragma once
#include <wx/wxprec.h> #include <wx/wxprec.h>
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include <wx/wx.h> #include <wx/wx.h>