Opened 3 hours ago

Last modified 104 minutes ago

#71081 new defect

gtk4: Does not build with quartz variant when vulkan-<*>: ports are installed.

Reported by: christophecvr (christophecvr) Owned by:
Priority: Normal Milestone:
Component: ports Version:
Keywords: gtk4 spirv-tools vulkan Cc:
Port:

Description

Macos 10.15,Xcode 11.5,CommandlineTools 11.5

I do have vulkan,spirv and MoltenVK installed. Gtk4 does not build with quartz variant anymore.
Relevant sections in mainlog Error:

Run-time dependency vulkan found: YES 1.3.296
Program glslc found: NO
Found CMake: /opt/local/bin/cmake (3.29.5)
<........>
gsk/gpu/shaders/meson.build:95:15: ERROR: Tried to use not-found external program in "command"

A full log can be found at /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/build/meson-logs/meson-log.txt
Command failed:  cd "/opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/gtk-4.14.3" && /opt/local/bin/meson setup --prefix=/opt/local -Dbuild-examples=false -Dbuild-tests=false -Dbuild-testsuite=false -Ddocumentation=false -Dintrospection=enabled -Dman-pages=true -Dmedia-gstreamer=disabled -Dprint-cups=disabled -Dx11-backend=false -Dmacos-backend=true /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/gtk-4.14.3 /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/build --wrap-mode=nodownload 
Exit code: 1
Error: Failed to configure gtk4: consult /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/build/meson-logs/meson-log.txt
Error: Failed to configure gtk4: configure failure: command execution failed
Error: See /opt/local/var/macports/logs/_opt_mports_macports-ports_gnome_gtk4/gtk4/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gtk4 failed

The function:

Failed function command of gsk/gpu/shaders/meson.build

starting line 65

  if (have_vulkan)
    glslc_options = [
<.......> 
lines 94 to 107
    foreach option: glslc_options
      target = custom_target(option.get(0),
                             input: shader,
                             output: option.get(0),
                             depend_files: gsk_private_gpu_include_shaders,
                             command: [
                               glslc,
                               '-std=450',
                               option.get(1),
                               '@INPUT@',
                               '-o', '@OUTPUT@'
                             ])
      gsk_private_gpu_vulkan_shaders += target
    endforeach

Change History (1)

comment:1 Changed 104 minutes ago by christophecvr (christophecvr)

I found the solution :

  • new port shaderc: that will build the glslc binary.

I took the opportunity to update and set to python 3.12 version the ports:

  • spirv-tools and spirv headers.
  • vulkan-<all> ports
  • glslang

The spirv-tools port has also a small change concerning the FIXME routine used to work around the multiple download sources issue : The main module is not extracted into wrksrcdir when using multiple download sources.

The gslangport has a extra option -DENABLE_HLS=ON (required for sharderc).

I prepared already everything in a git branch called shaderc to create a pull request with 4 commits:

https://github.com/christophecvr/macports-ports/commits/shaderc/

Commits:

  • spirv-tools: spirv-headers: upgrade to tag 1.3.296.0
  • glslang: update to tag version 1.3.296.0
  • vulkan-<all>: update to tag 1.3.296.0
  • shaderc: New port to build shaderc which includes glslc binary.

@judaew

Can you check if all is alright with those updates before i create the pull request?

Full source build of all is performed.
lint checks done
runtime check with gtk4 build +quartz with vulkan installed does now work perfect.

Note: See TracTickets for help on using tickets.