@@ -33,10 +33,13 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
3333 endif ()
3434
3535 if (BUILD_WSI_WAYLAND_SUPPORT)
36- find_package (Wayland REQUIRED)
37- find_package (WaylandScanner REQUIRED)
38- find_package (WaylandProtocols REQUIRED)
39- include_directories (${WAYLAND_CLIENT_INCLUDE_DIR} )
36+ pkg_check_modules(WAYLAND_CLIENT REQUIRED IMPORTED_TARGET wayland-client)
37+
38+ pkg_get_variable(WAYLAND_SCANNER_EXECUTABLE wayland-scanner wayland_scanner)
39+ message (STATUS "WAYLAND_SCANNER_EXECUTABLE = ${WAYLAND_SCANNER_EXECUTABLE} " )
40+
41+ pkg_get_variable(WAYLAND_PROTOCOLS_PATH wayland-protocols pkgdatadir)
42+ message (STATUS "WAYLAND_PROTOCOLS_PATH = ${WAYLAND_PROTOCOLS_PATH} " )
4043 set (XDG_SHELL_PROTOCOL ${WAYLAND_PROTOCOLS_PATH} /stable/xdg-shell/xdg-shell.xml)
4144 add_custom_command (COMMENT "Generating xdg-shell protocol dispatch data"
4245 OUTPUT xdg-shell-code.c
@@ -113,7 +116,7 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
113116 if (NOT BUILD_WSI_WAYLAND_SUPPORT)
114117 message (FATAL_ERROR "Selected Wayland for vkcube build but not building Wayland support" )
115118 endif ()
116- link_libraries (${WAYLAND_CLIENT_LIBRARIES} )
119+ link_libraries (PkgConfig::WAYLAND_CLIENT )
117120 set (CUBE_PLATFORM VK_USE_PLATFORM_WAYLAND_KHR)
118121 set (XDG_SHELL_PROTOCOL ${WAYLAND_PROTOCOLS_PATH} /stable/xdg-shell/xdg-shell.xml)
119122 set (OPTIONAL_WAYLAND_DATA_FILES
@@ -264,29 +267,33 @@ endif()
264267
265268if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD" )
266269 if (BUILD_WSI_WAYLAND_SUPPORT AND EXISTS ${WAYLAND_PROTOCOLS_PATH} /unstable/xdg-decoration/xdg-decoration-unstable-v1.xml)
267- link_libraries (${WAYLAND_CLIENT_LIBRARIES} )
268- set (OPTIONAL_WAYLAND_DATA_FILES
270+ add_executable (vkcube-wayland)
271+
272+ target_sources (vkcube-wayland PRIVATE
273+ cube.c
274+ ${PROJECT_SOURCE_DIR} /cube/cube.vert
275+ ${PROJECT_SOURCE_DIR} /cube/cube.frag
276+ cube.vert.inc
277+ cube.frag.inc
269278 ${CMAKE_CURRENT_BINARY_DIR} /xdg-shell-code.c
270279 ${CMAKE_CURRENT_BINARY_DIR} /xdg-shell-client-header.h
271280 ${CMAKE_CURRENT_BINARY_DIR} /xdg-decoration-code.c
272- ${CMAKE_CURRENT_BINARY_DIR} /xdg-decoration-client-header.h)
273- add_executable (vkcube-wayland
274- cube.c
275- ${PROJECT_SOURCE_DIR} /cube/cube.vert
276- ${PROJECT_SOURCE_DIR} /cube/cube.frag
277- cube.vert.inc
278- cube.frag.inc
279- ${OPTIONAL_WAYLAND_DATA_FILES} )
281+ ${CMAKE_CURRENT_BINARY_DIR} /xdg-decoration-client-header.h
282+ )
280283 target_include_directories (vkcube-wayland PRIVATE
281284 ${CMAKE_CURRENT_BINARY_DIR}
282285 .
283286 )
284- target_link_libraries (vkcube-wayland Vulkan::Headers Vulkan::Loader)
285- target_compile_definitions (vkcube-wayland PUBLIC VK_USE_PLATFORM_WAYLAND_KHR)
287+ target_link_libraries (vkcube-wayland PRIVATE
288+ Vulkan::Headers
289+ Vulkan::Loader
290+ PkgConfig::WAYLAND_CLIENT
291+ )
292+ target_compile_definitions (vkcube-wayland PRIVATE VK_USE_PLATFORM_WAYLAND_KHR)
286293 include (CheckLibraryExists)
287294 CHECK_LIBRARY_EXISTS("rt" clock_gettime "" NEED_RT)
288295 if (NEED_RT)
289- target_link_libraries (vkcube-wayland rt)
296+ target_link_libraries (vkcube-wayland PRIVATE rt)
290297 endif ()
291298 install (TARGETS vkcube-wayland)
292299
0 commit comments