Merge branch 'main' into titlebar-buttons-fix

This commit is contained in:
yw4z
2026-03-11 14:48:05 +03:00
committed by GitHub
8 changed files with 78 additions and 41 deletions

View File

@@ -134,7 +134,7 @@ jobs:
flatpak: flatpak:
name: "Flatpak" name: "Flatpak"
container: container:
image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-48 image: ghcr.io/flathub-infra/flatpak-github-actions:gnome-49
options: --privileged options: --privileged
volumes: volumes:
- /usr/local/lib/android:/usr/local/lib/android - /usr/local/lib/android:/usr/local/lib/android
@@ -170,7 +170,7 @@ jobs:
git_commit_hash="${{ github.event.pull_request.head.sha }}" git_commit_hash="${{ github.event.pull_request.head.sha }}"
else else
ver=V$ver_pure ver=V$ver_pure
git_commit_hash="" git_commit_hash="${{ github.sha }}"
fi fi
echo "ver=$ver" >> $GITHUB_ENV echo "ver=$ver" >> $GITHUB_ENV
echo "ver_pure=$ver_pure" >> $GITHUB_ENV echo "ver_pure=$ver_pure" >> $GITHUB_ENV
@@ -194,7 +194,17 @@ jobs:
restore-keys: flatpak-builder-${{ matrix.variant.arch }}- restore-keys: flatpak-builder-${{ matrix.variant.arch }}-
- name: Disable debug info for faster CI builds - name: Disable debug info for faster CI builds
run: | run: |
sed -i '0,/^finish-args:/s//build-options:\n no-debuginfo: true\n strip: true\nfinish-args:/' \ sed -i '/^build-options:/a\ no-debuginfo: true\n strip: true' \
scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml
shell: bash
- name: Inject git commit hash into Flatpak manifest
run: |
sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \
scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml
shell: bash
- name: Inject git commit hash into Flatpak manifest
run: |
sed -i "/name: OrcaSlicer/{n;s|buildsystem: simple|buildsystem: simple\n build-options:\n env:\n git_commit_hash: \"$git_commit_hash\"|}" \
scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml
shell: bash shell: bash
- uses: flatpak/flatpak-github-actions/flatpak-builder@master - uses: flatpak/flatpak-github-actions/flatpak-builder@master

View File

@@ -89,10 +89,9 @@ else ()
endif () endif ()
find_package(Git) find_package(Git)
if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "")
if(DEFINED ENV{git_commit_hash} AND NOT "$ENV{git_commit_hash}" STREQUAL "") message(STATUS "Specified git commit hash: $ENV{git_commit_hash}")
message(STATUS "Specified git commit hash: $ENV{git_commit_hash}") if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Convert the given hash to short hash # Convert the given hash to short hash
execute_process( execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --short "$ENV{git_commit_hash}" COMMAND ${GIT_EXECUTABLE} rev-parse --short "$ENV{git_commit_hash}"
@@ -100,17 +99,20 @@ if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
OUTPUT_VARIABLE GIT_COMMIT_HASH OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_STRIP_TRAILING_WHITESPACE
) )
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
else() else()
# Check current Git commit hash # No .git directory (e.g., Flatpak sandbox) — truncate directly
execute_process( string(SUBSTRING "$ENV{git_commit_hash}" 0 7 GIT_COMMIT_HASH)
COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
endif() endif()
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
elseif(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
# Check current Git commit hash
execute_process(
COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")
endif() endif()
if(DEFINED ENV{SLIC3R_STATIC}) if(DEFINED ENV{SLIC3R_STATIC})
@@ -171,10 +173,7 @@ option(BUILD_TESTS "Build unit tests" OFF)
option(ORCA_TOOLS "Build Orca tools" OFF) option(ORCA_TOOLS "Build Orca tools" OFF)
if (FLATPAK) if (FLATPAK)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++20")
set(SLIC3R_PCH OFF CACHE BOOL "" FORCE)
set(SLIC3R_FHS ON CACHE BOOL "" FORCE) set(SLIC3R_FHS ON CACHE BOOL "" FORCE)
set(BUILD_TESTS OFF CACHE BOOL "" FORCE)
set(SLIC3R_DESKTOP_INTEGRATION OFF CACHE BOOL "" FORCE) set(SLIC3R_DESKTOP_INTEGRATION OFF CACHE BOOL "" FORCE)
endif () endif ()
@@ -455,9 +454,12 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
add_compile_options(-Wno-unknown-pragmas) add_compile_options(-Wno-unknown-pragmas)
endif() endif()
# Bit of a hack for flatpak building: compress the debug info with zstd to save space in CI # Compress the debug info with zstd to save space in Flatpak CI builds
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0) if(FLATPAK)
add_compile_options(-gz=zstd) if(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 13.0) OR
("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 15.0))
add_compile_options(-gz=zstd)
endif()
endif() endif()
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14) if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 14)

View File

@@ -198,22 +198,22 @@ echo -e "${GREEN}All required dependencies found${NC}"
# Install runtime and SDK if requested # Install runtime and SDK if requested
if [[ "$INSTALL_RUNTIME" == true ]]; then if [[ "$INSTALL_RUNTIME" == true ]]; then
echo -e "${YELLOW}Installing GNOME runtime and SDK...${NC}" echo -e "${YELLOW}Installing GNOME runtime and SDK...${NC}"
flatpak install --user -y flathub org.gnome.Platform//48 flatpak install --user -y flathub org.gnome.Platform//49
flatpak install --user -y flathub org.gnome.Sdk//48 flatpak install --user -y flathub org.gnome.Sdk//49
fi fi
# Check if required runtime is available # Check if required runtime is available
if ! flatpak info --user org.gnome.Platform//48 &> /dev/null; then if ! flatpak info --user org.gnome.Platform//49 &> /dev/null; then
echo -e "${RED}Error: GNOME Platform 48 runtime is not installed.${NC}" echo -e "${RED}Error: GNOME Platform 49 runtime is not installed.${NC}"
echo "Run with -i flag to install it automatically, or install manually:" echo "Run with -i flag to install it automatically, or install manually:"
echo "flatpak install --user flathub org.gnome.Platform//48" echo "flatpak install --user flathub org.gnome.Platform//49"
exit 1 exit 1
fi fi
if ! flatpak info --user org.gnome.Sdk//48 &> /dev/null; then if ! flatpak info --user org.gnome.Sdk//49 &> /dev/null; then
echo -e "${RED}Error: GNOME SDK 48 is not installed.${NC}" echo -e "${RED}Error: GNOME SDK 49 is not installed.${NC}"
echo "Run with -i flag to install it automatically, or install manually:" echo "Run with -i flag to install it automatically, or install manually:"
echo "flatpak install --user flathub org.gnome.Sdk//48" echo "flatpak install --user flathub org.gnome.Sdk//49"
exit 1 exit 1
fi fi
@@ -318,7 +318,7 @@ fi
MANIFEST="scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml" MANIFEST="scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml"
if [[ "$NO_DEBUGINFO" == true ]]; then if [[ "$NO_DEBUGINFO" == true ]]; then
MANIFEST="scripts/flatpak/io.github.orcaslicer.OrcaSlicer.no-debug.yml" MANIFEST="scripts/flatpak/io.github.orcaslicer.OrcaSlicer.no-debug.yml"
sed '0,/^finish-args:/s//build-options:\n no-debuginfo: true\n strip: true\nfinish-args:/' \ sed '/^build-options:/a\ no-debuginfo: true\n strip: true' \
scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml > "$MANIFEST" scripts/flatpak/io.github.orcaslicer.OrcaSlicer.yml > "$MANIFEST"
echo -e "${YELLOW}Debug info disabled (using temp manifest)${NC}" echo -e "${YELLOW}Debug info disabled (using temp manifest)${NC}"
fi fi

3
deps/CMakeLists.txt vendored
View File

@@ -189,6 +189,9 @@ if (NOT IS_CROSS_COMPILE OR NOT APPLE)
-DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER} -DCMAKE_C_COMPILER:STRING=${CMAKE_C_COMPILER}
-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}
-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS}
-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS}
-DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS}
-DBUILD_SHARED_LIBS:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch} ${_cmake_osx_arch}
"${_configs_line}" "${_configs_line}"

2
deps/TBB/TBB.cmake vendored
View File

@@ -1,4 +1,4 @@
if (FLATPAK) if (FLATPAK AND "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/GNU.cmake ./cmake/compilers/GNU.cmake) set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/GNU.cmake ./cmake/compilers/GNU.cmake)
else() else()
set(_patch_command "") set(_patch_command "")

View File

@@ -1,10 +1,19 @@
app-id: io.github.orcaslicer.OrcaSlicer app-id: io.github.orcaslicer.OrcaSlicer
runtime: org.gnome.Platform runtime: org.gnome.Platform
runtime-version: "48" runtime-version: "49"
sdk: org.gnome.Sdk sdk: org.gnome.Sdk
sdk-extensions:
- org.freedesktop.Sdk.Extension.llvm21
command: entrypoint command: entrypoint
separate-locales: true separate-locales: true
rename-icon: OrcaSlicer rename-icon: OrcaSlicer
build-options:
append-path: /usr/lib/sdk/llvm21/bin
prepend-ld-library-path: /usr/lib/sdk/llvm21/lib
env:
CC: clang
CXX: clang++
LDFLAGS: "-fuse-ld=lld"
finish-args: finish-args:
- --share=ipc - --share=ipc
- --socket=x11 - --socket=x11
@@ -38,6 +47,8 @@ modules:
sha256: e305b9f07f52743ca481da0a4e0c76c35efd60adaf1b0694eb3bb021e2137e39 sha256: e305b9f07f52743ca481da0a4e0c76c35efd60adaf1b0694eb3bb021e2137e39
- name: glu - name: glu
build-options:
cxxflags: -Wno-register
config-opts: config-opts:
- --disable-static - --disable-static
sources: sources:
@@ -70,6 +81,9 @@ modules:
# Config-opts mirror deps/wxWidgets/wxWidgets.cmake with FLATPAK=ON, DEP_WX_GTK3=ON # Config-opts mirror deps/wxWidgets/wxWidgets.cmake with FLATPAK=ON, DEP_WX_GTK3=ON
- name: wxWidgets - name: wxWidgets
buildsystem: cmake-ninja buildsystem: cmake-ninja
build-options:
env:
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
config-opts: config-opts:
- -DCMAKE_BUILD_TYPE=Release - -DCMAKE_BUILD_TYPE=Release
- -DwxBUILD_PRECOMP=ON - -DwxBUILD_PRECOMP=ON
@@ -99,6 +113,9 @@ modules:
- -DwxUSE_LIBJPEG=sys - -DwxUSE_LIBJPEG=sys
- -DwxUSE_LIBTIFF=OFF - -DwxUSE_LIBTIFF=OFF
- -DwxUSE_EXPAT=sys - -DwxUSE_EXPAT=sys
- -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld
- -DCMAKE_SHARED_LINKER_FLAGS=-fuse-ld=lld
- -DCMAKE_MODULE_LINKER_FLAGS=-fuse-ld=lld
sources: sources:
- type: git - type: git
url: https://github.com/SoftFever/Orca-deps-wxWidgets url: https://github.com/SoftFever/Orca-deps-wxWidgets
@@ -118,7 +135,10 @@ modules:
-DDEP_DOWNLOAD_DIR=/run/build/orca_deps/external-packages \ -DDEP_DOWNLOAD_DIR=/run/build/orca_deps/external-packages \
-DCMAKE_PREFIX_PATH=/app \ -DCMAKE_PREFIX_PATH=/app \
-DDESTDIR=/app \ -DDESTDIR=/app \
-DCMAKE_INSTALL_PREFIX=/app -DCMAKE_INSTALL_PREFIX=/app \
-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" \
-DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" \
-DCMAKE_MODULE_LINKER_FLAGS="-fuse-ld=lld"
- cmake --build $BUILD_DIR --parallel - cmake --build $BUILD_DIR --parallel
- rm -rf /run/build/orca_deps/external-packages - rm -rf /run/build/orca_deps/external-packages
@@ -290,7 +310,10 @@ modules:
-DFLATPAK=ON \ -DFLATPAK=ON \
-DCMAKE_BUILD_TYPE=Release \ -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH=/app \ -DCMAKE_PREFIX_PATH=/app \
-DCMAKE_INSTALL_PREFIX=/app -DCMAKE_INSTALL_PREFIX=/app \
-DCMAKE_EXE_LINKER_FLAGS="-fuse-ld=lld" \
-DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" \
-DCMAKE_MODULE_LINKER_FLAGS="-fuse-ld=lld"
- cmake --build build_flatpak --target OrcaSlicer -j$FLATPAK_BUILDER_N_JOBS - cmake --build build_flatpak --target OrcaSlicer -j$FLATPAK_BUILDER_N_JOBS
- ./scripts/run_gettext.sh - ./scripts/run_gettext.sh
- cmake --build build_flatpak --target install -j$FLATPAK_BUILDER_N_JOBS - cmake --build build_flatpak --target install -j$FLATPAK_BUILDER_N_JOBS

View File

@@ -791,9 +791,8 @@ if (UNIX AND NOT APPLE)
# I don't know why this is needed, but for whatever reason slic3r isn't # I don't know why this is needed, but for whatever reason slic3r isn't
# linking to X11 and webkit2gtk. force it. # linking to X11 and webkit2gtk. force it.
find_package(X11 REQUIRED) find_package(X11 REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(webkit2gtk REQUIRED webkit2gtk-4.1) pkg_check_modules(webkit2gtk REQUIRED webkit2gtk-4.1)
target_link_libraries (libslic3r_gui ${X11_LIBRARIES} ${webkit2gtk_LIBRARIES}) target_link_libraries(libslic3r_gui ${X11_LIBRARIES} ${webkit2gtk_LIBRARIES})
endif() endif()
target_include_directories(libslic3r_gui SYSTEM PRIVATE ${GTK${SLIC3R_GTK}_INCLUDE_DIRS} ${LIBSECRET_INCLUDE_DIRS}) target_include_directories(libslic3r_gui SYSTEM PRIVATE ${GTK${SLIC3R_GTK}_INCLUDE_DIRS} ${LIBSECRET_INCLUDE_DIRS})
target_link_libraries(libslic3r_gui ${GTK${SLIC3R_GTK}_LIBRARIES} fontconfig ${LIBSECRET_LIBRARIES}) target_link_libraries(libslic3r_gui ${GTK${SLIC3R_GTK}_LIBRARIES} fontconfig ${LIBSECRET_LIBRARIES})

View File

@@ -67,10 +67,10 @@ private:
static bool get_stream_url(std::string *url = nullptr); static bool get_stream_url(std::string *url = nullptr);
private: private:
static const wxMediaState MEDIASTATE_IDLE = (wxMediaState) 3; static inline const wxMediaState MEDIASTATE_IDLE = static_cast<wxMediaState>(3);
static const wxMediaState MEDIASTATE_INITIALIZING = (wxMediaState) 4; static inline const wxMediaState MEDIASTATE_INITIALIZING = static_cast<wxMediaState>(4);
static const wxMediaState MEDIASTATE_LOADING = (wxMediaState) 5; static inline const wxMediaState MEDIASTATE_LOADING = static_cast<wxMediaState>(5);
static const wxMediaState MEDIASTATE_BUFFERING = (wxMediaState) 6; static inline const wxMediaState MEDIASTATE_BUFFERING = static_cast<wxMediaState>(6);
// token // token
std::shared_ptr<int> m_token = std::make_shared<int>(0); std::shared_ptr<int> m_token = std::make_shared<int>(0);