Skip to content

Commit 09d1b5e

Browse files
committed
cmake: Use pkg-config for Wayland
1 parent 48686ee commit 09d1b5e

File tree

7 files changed

+29
-254
lines changed

7 files changed

+29
-254
lines changed

cmake/Copyright_cmake.txt

Lines changed: 0 additions & 126 deletions
This file was deleted.

cmake/FindWayland.cmake

Lines changed: 0 additions & 68 deletions
This file was deleted.

cmake/FindWaylandProtocols.cmake

Lines changed: 0 additions & 18 deletions
This file was deleted.

cmake/FindWaylandScanner.cmake

Lines changed: 0 additions & 18 deletions
This file was deleted.

cube/CMakeLists.txt

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

265268
if (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

icd/CMakeLists.txt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ target_include_directories(VkICD_mock_icd PRIVATE
5757
${GENERATED}
5858
.
5959
)
60-
if(BUILD_WSI_WAYLAND_SUPPORT)
61-
target_include_directories(VkICD_mock_icd PRIVATE ${WAYLAND_CLIENT_INCLUDE_DIR})
62-
endif()
6360

6461
if(${CMAKE_CXX_COMPILER_ID} MATCHES "GNU|Clang")
6562
target_compile_options(VkICD_mock_icd PRIVATE

vulkaninfo/CMakeLists.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,10 @@ if (CMAKE_SYSTEM_NAME MATCHES "Linux|BSD")
9090
endif()
9191

9292
if(BUILD_WSI_WAYLAND_SUPPORT)
93-
find_package(Wayland REQUIRED)
94-
target_include_directories(vulkaninfo PRIVATE ${WAYLAND_CLIENT_INCLUDE_DIR})
95-
target_link_libraries(vulkaninfo ${WAYLAND_CLIENT_LIBRARIES})
93+
pkg_check_modules(WAYLAND_CLIENT REQUIRED IMPORTED_TARGET wayland-client)
94+
add_compile_definitions(VK_USE_PLATFORM_WAYLAND_KHR)
95+
96+
target_link_libraries(vulkaninfo PkgConfig::WAYLAND_CLIENT)
9697
target_compile_definitions(vulkaninfo PRIVATE -DVK_USE_PLATFORM_WAYLAND_KHR -DVK_NO_PROTOTYPES)
9798
endif()
9899

0 commit comments

Comments
 (0)