mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-03 20:33:21 +00:00
f1468a9946
See https://github.com/NixOS/nixpkgs/issues/217921 Blender sets WITH_DRACO=OFF if WITH_PYTHON_INSTALL=OFF, however that’s not totally necessary. Removing that forced-set then builds with WITH_DRACO=ON, however Blender fails to launch because this creates e.g. `share/blender/3.6/python`, and Blender then sets this as Python’s home dir, so Python fails to init since it expects Python core to be there (and it’s not). I couldn’t figure out how Blender sets Python’s home dir, and explicitly setting PYTHONHOME in the env didn’t have any effect. So instead just rename that dir to python-ext to avoid this behavior. All that is left then is to adjust where Blender is looking for the Draco lib. This functionality may be verified by: 1. Visiting File → Export → glTF 2.0 2. In the right side panel (press the gear icon in top-right if not visible), expanding “Data” 3. Enabling “Compression” 4. Press “Export glTF 2.0” 5. Verify: - Blender stdout+stderr shows “Draco mesh compression is available” - no error or warning message - exported file exists
27 lines
1.1 KiB
Diff
27 lines
1.1 KiB
Diff
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -898,11 +898,6 @@ set_and_warn_dependency(WITH_PYTHON WITH_CYCLES OFF)
|
|
set_and_warn_dependency(WITH_PYTHON WITH_DRACO OFF)
|
|
set_and_warn_dependency(WITH_PYTHON WITH_MOD_FLUID OFF)
|
|
|
|
-if(WITH_DRACO AND NOT WITH_PYTHON_INSTALL)
|
|
- message(STATUS "WITH_DRACO requires WITH_PYTHON_INSTALL to be ON, disabling WITH_DRACO for now")
|
|
- set(WITH_DRACO OFF)
|
|
-endif()
|
|
-
|
|
# enable boost for cycles, audaspace or i18n
|
|
# otherwise if the user disabled
|
|
|
|
--- a/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py
|
|
+++ b/scripts/addons/io_scene_gltf2/io/com/gltf2_io_draco_compression_extension.py
|
|
@@ -17,7 +17,7 @@ def dll_path() -> Path:
|
|
"""
|
|
lib_name = 'extern_draco'
|
|
- blender_root = Path(bpy.app.binary_path).parent
|
|
+ blender_root = Path(bpy.app.binary_path).parent.parent
|
|
- python_lib = Path('{v[0]}.{v[1]}/python/lib'.format(v=bpy.app.version))
|
|
+ python_lib = Path('share/blender/{v[0]}.{v[1]}/python-ext/lib'.format(v=bpy.app.version))
|
|
python_version = 'python{v[0]}.{v[1]}'.format(v=sys.version_info)
|
|
|
|
path = os.environ.get('BLENDER_EXTERN_DRACO_LIBRARY_PATH')
|