Skip to content

Move to Ubuntu 22.04, build shared libraries by default, simplified (smaller) python package.#7516

Open
ssheorey wants to merge 1 commit into
mainfrom
ss/dll
Open

Move to Ubuntu 22.04, build shared libraries by default, simplified (smaller) python package.#7516
ssheorey wants to merge 1 commit into
mainfrom
ss/dll

Conversation

@ssheorey

@ssheorey ssheorey commented Jul 6, 2026

Copy link
Copy Markdown
Member

Cherry-picks the shared-library-by-default and pybind-simplification work from copilot/separate-pybind-and-libopen3d without the host/device (libOpen3D vs libOpen3D_cuda/xpu) library split.

  • Update CI to Ubuntu 22.04. 20.04 is EOL.
  • BUILD_SHARED_LIBS now defaults to ON. Python package now uses a shared open3d library.
  • Single open3d.pybind module; CUDA/SYCL detected at runtime via core.cuda.is_available()/core.sycl.is_available() instead of shipping separate cpu/cuda package variants.
  • Device strings accept a bare type name (e.g. "cuda"), defaulting id to 0.
  • New utility::filesystem::GetSelfBinaryDirectory() helper; Logging.cpp print function is now a function-local static.
  • Renamed pybind/core/tensor_type_caster -> type_caster and added an implicit Device<->str caster.
  • Flattened ML custom-op output layout (no cpu/cuda subfolder) and fixed the torch/tf ops loaders to match.
  • Fixed a static-link ordering bug (curl/BoringSSL) exposed by building Open3D as a shared library, using CMake's LINK_GROUP:RESCAN genex.
  • Updated docs/compilation.rst to describe the dependency constraints while building Open3D.

Type

  • Bug fix (non-breaking change which fixes an issue): Fixes #
  • New feature (non-breaking change which adds functionality). Resolves #
  • Breaking change (fix or feature that would cause existing functionality to not work as expected) Resolves #

Motivation and Context

Checklist:

  • I have run python util/check_style.py --apply to apply Open3D code style
    to my code.
  • This PR changes Open3D behavior or adds new functionality.
    • Both C++ (Doxygen) and Python (Sphinx / Google style) documentation is
      updated accordingly.
    • I have added or updated C++ and / or Python unit tests OR included test
      results
      (e.g. screenshots or numbers) here.
  • I will follow up and update the code if CI fails.
  • For fork PRs, I have selected Allow edits from maintainers.

Description

…ce strings

Cherry-picks the shared-library-by-default and pybind-simplification work
from copilot/separate-pybind-and-libopen3d without the host/device
(libOpen3D vs libOpen3D_cuda/xpu) library split.

- BUILD_SHARED_LIBS now defaults to ON.
- Single open3d.pybind module; CUDA/SYCL detected at runtime via
  core.cuda.is_available()/core.sycl.is_available() instead of shipping
  separate cpu/cuda package variants.
- Device strings accept a bare type name (e.g. "cuda"), defaulting id to 0.
- New utility::filesystem::GetSelfBinaryDirectory() helper; Logging.cpp
  print function is now a function-local static.
- Renamed pybind/core/tensor_type_caster -> type_caster and added an
  implicit Device<->str caster.
- Flattened ML custom-op output layout (no cpu/cuda subfolder) and fixed
  the torch/tf ops loaders to match.
- Fixed a static-link ordering bug (curl/BoringSSL) exposed by building
  Open3D as a shared library, using CMake's LINK_GROUP:RESCAN genex.
- Ported unrelated CI/Docker/WebRTC improvements from the source branch.
- Updated docs/compilation.rst to describe the single combined library.

Verified: BUILD_SHARED_LIBS=ON by default, cpp tests (Device, MemoryManager)
and python/test/core/test_core.py device tests pass, and python import/
smoke test shows no cpu/cuda subpackages.

Co-authored-by: Cursor <cursoragent@cursor.com>
@update-docs

update-docs Bot commented Jul 6, 2026

Copy link
Copy Markdown

Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant