KhronosGroup / glslang

Khronos-reference front end for GLSL/ESSL, partial front end for HLSL, and a SPIR-V generator.
Other
2.99k stars 826 forks source link

The builds are broken #2658

Closed Yuri6037 closed 2 years ago

Yuri6037 commented 3 years ago

I tried to use the automatic CI builds, but they are broken on both Linux and Mac:

Windows on the other hand, does include headers and binaries in both Debug and Release.

Could you please provide proper ZIP packages for Debug and Release configurations under both Linux and Mac?

greg-lunarg commented 3 years ago

Did this ever work for you? If so, when is the last time that you know this worked?

Yuri6037 commented 3 years ago

I never tried to use glslang before.

Context: For the SDK of one of my project I need to compile shaders for Vulkan and check validity of GL shaders. I've read the README which said I could download the releases from master-tot. Because my SDK MUST work on at least all 3 major platforms. I began downloading the releases for each platform and found out that both Linux and Mac builds were broken.

EDIT: I noticed you are using CMake. By default CMake does not add a "d" suffix to any debug libraries under unix systems.

KarenGhavam-lunarG commented 3 years ago

The SDKs for all 3 platforms include all of the glslang libraries and executables built. Could you use that?

Yuri6037 commented 3 years ago

As I said the Debug builds for Linux and Mac do not include the libraries. Additionally the headers are missing for Linux and Mac builds.

About the executable, I could use it as a last resort. My SDK requires the libraries (with the headers otherwise it's not usable). To use the executable instead I would need to slow down the SDK by 1- Download the exe from this release page 2- Command line processing + save the shader code in a temp file instead of keeping the shader source in memory 3- Load back the output bytecode from EXE, delete the files and continue processing

With the direct libs I can work in memory and I don't need to compute any command line as I can directly give to the lib the environment information. Additionally download is also not needed as the glslang compiler would be integrated into the SDK application.

EDIT: Before using the EXE, I will try to setup a build server for this library using my GitLab. If that works I will link it here.

KarenGhavam-lunarG commented 3 years ago

Perhaps I am misunderstanding you, but both the executables and the API libraries for glslang are included with all 3 SDKs (linux, Window, mac). To use the API libraries, the headers are also included.

greg-lunarg commented 3 years ago

As @KarenGhavam-lunarG stated, all the glslang headers and libraries are available by downloading the Vulkan SDK available at lunarg.com for Windows, Linux and Mac. Of course, the SDK is not top-of-tree, but rather a snapshot taken every couple months. But the components are likely more stable than top-of-tree, since we do some extra testing for the SDK.

I will look at the master-tot zips for Linux and Mac, but the SDK is available right now.

Yuri6037 commented 3 years ago

Thank you I did not know about the lunarg.com website. I'll check if I can easily integrate this in my build process.

spnda commented 2 years ago

This is still an active issue that is making it hard for me to use glslang on platforms other than Windows. The headers are simply missing on macOS and Linux binaries. Alternatively using the Vulkan SDK was a temporary fix but after over a year I think this should finally be addressed.

Though if anyone needs this before this has been fixed: You can use brew's glslang formula which works on both Mac and Linux.