diff options
| author | Charles Giessen <charles@lunarg.com> | 2024-01-16 11:54:28 -0600 |
|---|---|---|
| committer | Charles Giessen <46324611+charles-lunarg@users.noreply.github.com> | 2024-01-16 12:00:16 -0700 |
| commit | c86d42cf9eb620eeac377e3bff46ae342c5cd664 (patch) | |
| tree | 143cb0e1fdc2c2e16c5ebaab2f25f11f74b12843 | |
| parent | e156996c478a8e5d040ccf199437bcdbdbab63ed (diff) | |
| download | usermoji-c86d42cf9eb620eeac377e3bff46ae342c5cd664.tar.xz | |
cube: Link to Threads directly
On Ubuntu 20.04, it was found that the validation layers fail to launch in vkcube & vkcubepp
due to a missing dependency on libpthread. While newer Ubuntu versions use a glibc version
where libpthread is integrated into libc, older ubuntu's do not so we need to link threads
directly in order for validation layers to be loadable.
| -rw-r--r-- | cube/CMakeLists.txt | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt index 266e90de..71267a48 100644 --- a/cube/CMakeLists.txt +++ b/cube/CMakeLists.txt @@ -205,6 +205,15 @@ if(WIN32) add_compile_definitions(_USE_MATH_DEFINES) endif() + +# On Ubuntu 20.04, it was found that the validation layers fail to launch in vkcube & vkcubepp due to +# a missing dependency on libpthread. While newer Ubuntu versions use a glibc version where libpthread +# is integrated into libc, older ubuntu's do not so we need to link threads directly in order for +# validation layers to be loadable. +if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD") + find_package(Threads REQUIRED) +endif() + # ---------------------------------------------------------------------------- # vkcube @@ -234,7 +243,7 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD") if (NEED_RT) target_link_libraries(vkcube PRIVATE rt) endif() - target_link_libraries(vkcube PRIVATE Vulkan::Headers volk::volk_headers) + target_link_libraries(vkcube PRIVATE Vulkan::Headers volk::volk_headers Threads::Threads) elseif(WIN32) add_executable(vkcube WIN32) target_sources(vkcube PRIVATE @@ -285,7 +294,7 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD") cube.vert.inc cube.frag.inc ${OPTIONAL_WAYLAND_DATA_FILES}) - target_link_libraries(vkcubepp Vulkan::Headers volk::volk_headers) + target_link_libraries(vkcubepp Vulkan::Headers volk::volk_headers Threads::Threads) target_compile_definitions(vkcubepp PUBLIC ${CUBE_PLATFORM}) else() add_executable(vkcubepp @@ -339,6 +348,7 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD") target_link_libraries(vkcube-wayland PRIVATE Vulkan::Headers volk::volk_headers + Threads::Threads PkgConfig::WAYLAND_CLIENT ) target_compile_definitions(vkcube-wayland PRIVATE VK_USE_PLATFORM_WAYLAND_KHR VK_NO_PROTOTYPES) |
