Enable cross compilation by removing dependency on `ShaderEncoder` and `ShaderLinker`
- Dominant language
- C++
- Stars
- 14k
- Forks
- 2.6k
- Avg merge
- 5d 18h
- Merged PRs (30d)
- 6
Description
### Checklist
- [x] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [x] For Python issues, I have tested with the [latest development wheel](https://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [x] I have checked the [release documentation](https://www.open3d.org/docs/release/) and the [latest documentation](https://www.open3d.org/docs/latest/) (for `main` branch).
### Proposed new feature or change
The current cmake build process involves a step to build two executables `ShaderEncoder` and `ShaderLinker`, which operate on the `.glsl` shader files in the `visualization` section of the library. When cross-compiling, these executables (`ShaderEncoder` and `ShaderLinker`) are built with the toolchain file used for cross-compiling, which usually cannot be run on the host machine. This means that the build step always fails when attempting to run those executables on the shader files.
Possible solutions include:
* Allowing a cmake variable that disables building the visualization portion of the library
* Removing the `ShaderEncoder` and `ShaderLinker` executable steps from the build process, replacing them with a cmake-native approach that does not depend on a separate executable step
* Remove the `ShaderEncoder` and `ShaderLinker` executable steps from the build process and replace them with using Vulkan shaders
* Keep the `ShaderEncoder` and `ShaderLinker` portions of the cmake build process, but aggressively and carefully ensure that all those executables are built on the _host machine_ rather than with any build flags relevant for cross-compilation
### References
_No response_
### Additional information
Other issues in the Open3D repository showing this issue:
https://github.com/isl-org/Open3D/issues/5732
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.