Skip to content

[build] Fixes for the generation of Meshroom's executable#2770

Merged
fabiencastan merged 16 commits into
developfrom
build/exeGeneration
Aug 4, 2025
Merged

[build] Fixes for the generation of Meshroom's executable#2770
fabiencastan merged 16 commits into
developfrom
build/exeGeneration

Conversation

@cbentejac

@cbentejac cbentejac commented Jul 8, 2025

Copy link
Copy Markdown
Contributor

Description

This PR introduces several updates focusing on improving Docker image builds, plugin support, and platform-specific compatibility. Key changes include enhancements to Dockerfiles for better dependency management, updates to enable plugin discovery and integration, and platform-specific adjustments for Windows and Linux environments.

Dockerfile Enhancements:

  • Added commands to move the bundled AliceVision installation into Meshroom's bundle for both Rocky and Ubuntu Dockerfiles (docker/Dockerfile_rocky, docker/Dockerfile_ubuntu). [1] [2]
  • Resolved runtime issues by copying missing PySide6 and Qt6 dependencies into the Meshroom bundle in both Rocky and Ubuntu Dockerfiles (docker/Dockerfile_rocky, docker/Dockerfile_ubuntu). [1] [2]
  • Improved dependency installation in docker/Dockerfile_rocky_deps and docker/Dockerfile_ubuntu_deps by adding libglvnd-opengl and updating Qt installation commands. [1] [2]

Plugin Support:

  • Added logic to discover and include plugins dynamically from a plugins directory in meshroom/__init__.py. This includes updating environment variables to support plugins and AliceVision nodes/templates. [1] [2]
  • Adjusted the Meshroom initialization to include the plugins folder in the expected directory structure.

Platform-Specific Adjustments:

  • Introduced a new initialization script for Windows (setupInitScriptWindows.py) and updated setupInitScriptUnix.py for Linux to handle platform-specific paths and dependencies. [1] [2]
  • Updated setup.py to include additional Python modules required for freezing the application and added platform-specific initialization scripts. [1] [2]
  • Adjusted the path resolution for meshroom_compute in release package mode in meshroom/core/desc/node.py. [1] [2]

Miscellaneous:

  • Updated the URL for downloading the Qt installer in docker/build-rocky.sh to reflect the latest official release location.

@cbentejac cbentejac self-assigned this Jul 8, 2025
@codecov

codecov Bot commented Jul 8, 2025

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 21.42857% with 11 lines in your changes missing coverage. Please review.
✅ Project coverage is 77.67%. Comparing base (1402be5) to head (40b9dcb).
⚠️ Report is 47 commits behind head on develop.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
meshroom/__init__.py 0.00% 8 Missing ⚠️
meshroom/core/desc/node.py 50.00% 3 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2770      +/-   ##
===========================================
- Coverage    77.77%   77.67%   -0.10%     
===========================================
  Files           48       48              
  Lines         6681     6689       +8     
===========================================
  Hits          5196     5196              
- Misses        1485     1493       +8     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fabiencastan fabiencastan added this to the Meshroom 2025.1.0 milestone Jul 9, 2025
@cbentejac cbentejac force-pushed the build/exeGeneration branch 10 times, most recently from 3e039ff to eca592f Compare July 16, 2025 14:57
@cbentejac cbentejac force-pushed the build/exeGeneration branch 11 times, most recently from 818f8fe to cdfec75 Compare July 23, 2025 08:23
@cbentejac cbentejac requested a review from fabiencastan July 24, 2025 16:07
@cbentejac cbentejac marked this pull request as ready for review July 24, 2025 16:07
Otherwise, some dynamic links cannot be resolved for
`libqtquickscene3d.so`, which prevents the "Application" part from being
displayed (with a "Component not ready" error).
@cbentejac cbentejac force-pushed the build/exeGeneration branch 3 times, most recently from 4978023 to cd4dbd3 Compare July 29, 2025 16:00
Comment thread meshroom/core/desc/node.py
Comment thread meshroom/core/desc/node.py Outdated
Comment thread docker/Dockerfile_ubuntu Outdated
`libQt63DQuickScene3D.so` is missing from the default PySide6 install
despite being present in the Qt 6.8.3 install.

If it is missing, the "Application" part of Meshroom cannot be displayed
as a "Component not ready" error is thrown. The missing library is thus
copied from the Qt install folder, and its own dependencies are copied
with it to prevent issues when looking for them.
Instead of calling the Python script, we call the executable that has been
generated with the bundle when we detect that we are in release mode.
@cbentejac cbentejac force-pushed the build/exeGeneration branch from cd4dbd3 to 40b9dcb Compare August 4, 2025 08:58
@fabiencastan fabiencastan merged commit 4b68246 into develop Aug 4, 2025
2 of 5 checks passed
@fabiencastan fabiencastan deleted the build/exeGeneration branch August 4, 2025 11:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants