Skip to content

Enable cross compilation by removing dependency on ShaderEncoder and ShaderLinker #7385

@mprat

Description

@mprat

Checklist

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:

#5732

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions