-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Nix build #6854
Nix build #6854
Conversation
* Remove the use of deprecated functions in ImGui * CMake option to exclude uvatlas as dependency as a single function leads to the inclusion of many libraries. * CMake option to override the desktop install path
Thanks for submitting this pull request! The maintainers of this repository would appreciate if you could update the CHANGELOG.md based on your changes. |
* Remove the use of deprecated functions in ImGui * CMake option to exclude uvatlas as dependency as a single function leads to the inclusion of many libraries. * CMake option to override the desktop install path
@netogallo thanks for submitting this PR. Removing deprecated imgui functions is very useful. About making UVAtlas optional, @benjaminum what do you think? I think this adds extra complexity to the build system without being widely useful, so I would recommend to maintain that in a fork of Open3D. |
@netogallo if there is a constraint on fetching resources during build, you can build Open3D once on an internet connected system. All required 3rdparty downloads are stored in the 3rdparty_downloads folder. If you include this in the Open3D source, Open3D can be built without an internet connection. cmake looks in the 3rdparty_downloads folder first before downloading from the internet. |
@netogallo Thank you for these contributions! About UVAtlas, I removed the build option as we have already quite a large number of build options and likely will expand UV map functionality in the future. Happy to hear from you how we can make it easier to deal with dependencies for Nix. |
I am building a derivation for NixOS 24.05 of open3d-cpu so it can be easily used in nix. To guarantee reproducibility, Nix cannot fetch resources during build and best practices recommend using packages already present in the nix store. For that reason, I removed the use of deprecated functions from ImGui.
Additionally, Nix allows users to easily modify the build parameters of packages, to that end I included a flag to disable the "ComputeUVAtlas" function as it is a single function that leads to the inclusion of significant dependencies.
Finally, Nix does not install packages in systemwide directories. Instead, each package and version gets installed in an isolated directory and nix uses symlinks and env variables to bring the packages into scope. Therefore, a hardcoded DESKTOP_INSTALL_DIR is not suitable for this environment and must be supplied through a compile time variable. If this variable is not supplied (default), the behavior remains unchanged.
Motivation and Context
These changes are required to eventually update ImGui to version 1.9.6. Furthermore, it adds a CMake flag that allows users to build a smaller package by removing the TriangleMesh::ComptueUVAtlas function which adds many additional dependencies to the project. The function is included by default in order to preserve existing behavior.
Checklist:
python util/check_style.py --apply
to apply Open3D code styleto my code.
updated accordingly.
results (e.g. screenshots or numbers) here.
Description
Allow compiling open3d-cpu python package on NixOs 24.05
The derivation for packaging v0.18.0 is available at: https://github.com/netogallo/nix-packages/blob/main/pkgs/python-packages/open3d/open3d-common.nix
It currently applies a similar patch before building.