cmake_minimum_required(VERSION 3.10) project ( wtr_harness VERSION 0.1 LANGUAGES C) set(CMAKE_VERBOSE_MAKEFILE ON) set(CMAKE_BUILD_TYPE Debug) include_directories(include/ ../wlroots/include /usr/include/pixman-1 ${CMAKE_CURRENT_BINARY_DIR}/ ${CMAKE_CURRENT_BINARY_DIR}/../wlroots/include) add_definitions(-DWLR_USE_UNSTABLE) execute_process( COMMAND pkg-config --variable=pkgdatadir wayland-protocols OUTPUT_VARIABLE WAYLAND_PROTOCOLS RESULT_VARIABLE ec OUTPUT_STRIP_TRAILING_WHITESPACE ) if(${ec} EQUAL 0) else() message(FATAL_ERROR "Failed to execute pkg-config") endif() execute_process( COMMAND pkg-config --variable=wayland_scanner wayland-scanner OUTPUT_VARIABLE WAYLAND_SCANNER RESULT_VARIABLE ec OUTPUT_STRIP_TRAILING_WHITESPACE ) if(${ec} EQUAL 0) else() message(FATAL_ERROR "Failed to execute pkg-config") endif() set(PLUGIN_INTF ${CMAKE_BINARY_DIR}/plugin_interface.h) add_custom_command( OUTPUT ${PLUGIN_INTF} COMMAND perl ${PROJECT_SOURCE_DIR}/tools/genintf.pl < ${PROJECT_SOURCE_DIR}/include/plugin.h > ${PLUGIN_INTF} DEPENDS ${PROJECT_SOURCE_DIR}/include/plugin.h DEPENDS ${PROJECT_SOURCE_DIR}/tools/genintf.pl ) set(PLUGIN_LOAD ${CMAKE_BINARY_DIR}/gen_plugin_load.c) add_custom_command( OUTPUT ${PLUGIN_LOAD} COMMAND perl ${PROJECT_SOURCE_DIR}/tools/genbuild.pl < ${PROJECT_SOURCE_DIR}/include/plugin.h > ${PLUGIN_LOAD} DEPENDS ${PROJECT_SOURCE_DIR}/include/plugin.h DEPENDS ${PROJECT_SOURCE_DIR}/tools/genbuild.pl ) add_custom_command( OUTPUT xdg-shell-protocol.h COMMAND ${WAYLAND_SCANNER} server-header ${WAYLAND_PROTOCOLS}/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.h ) add_custom_command( OUTPUT xdg-shell-protocol.c COMMAND ${WAYLAND_SCANNER} private-code ${WAYLAND_PROTOCOLS}/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.c DEPENDS xdg-shell-protocol.h ) file (GLOB_RECURSE SOURCES src/*.c) set(CMAKE_EXPORT_COMPILE_COMMANDS ON) add_executable (wtr_harness ${SOURCES} ${PLUGIN_LOAD} ${PLUGIN_INTF} xdg-shell-protocol.c) target_link_libraries(wtr_harness dl) target_link_directories(wtr_harness PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/../wlroots") target_link_libraries(wtr_harness wlroots wayland-server xkbcommon pthread) target_link_options(wtr_harness PRIVATE -Wl,--wrap=pthread_create)