cmake_minimum_required(VERSION 3.0 ) set(CMAKE_C_STANDARD 11) project(wlgol VERSION 0.0.1 DESCRIPTION "Wayland Game Of Life" LANGUAGES C) # Download xdg-shell.xml # file(DOWNLOAD "https://cgit.freedesktop.org/wayland/wayland-protocols/plain/stable/xdg-shell/xdg-shell.xml" "${CMAKE_CURRENT_BINARY_DIR}/xdg-shell.xml") # Generation of xdg-shell.h and xdg-shell.c add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/xdg-shell.h COMMAND wayland-scanner client-header ${CMAKE_SOURCE_DIR}/xdg-shell.xml ${CMAKE_CURRENT_BINARY_DIR}/include/xdg-shell.h DEPENDS ${CMAKE_SOURCE_DIR}/xdg-shell.xml ) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/xdg-shell.c COMMAND wayland-scanner private-code ${CMAKE_SOURCE_DIR}/xdg-shell.xml ${CMAKE_CURRENT_BINARY_DIR}/xdg-shell.c DEPENDS ${CMAKE_SOURCE_DIR}/xdg-shell.xml ) set(SOURCES wlgol.c tkeyboard.c tpointer.c hashtable.c ${CMAKE_CURRENT_BINARY_DIR}/xdg-shell.c ) set(GENHEADERS ${CMAKE_CURRENT_BINARY_DIR}/include/xdg-shell.h ) add_executable(wlgol ${SOURCES} ${GENHEADERS}) target_include_directories(wlgol PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/include PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ) target_link_libraries(wlgol wayland-client wayland-cursor )