mirror of
https://github.com/hyprwm/wlroots-hyprland.git
synced 2024-12-22 09:59:48 +01:00
Use meson build system
This commit is contained in:
parent
ce886c0353
commit
fdab81e1c9
33 changed files with 157 additions and 1001 deletions
|
@ -8,7 +8,8 @@ compiler:
|
|||
|
||||
arch:
|
||||
packages:
|
||||
- cmake
|
||||
- meson
|
||||
- ninja
|
||||
- wayland
|
||||
- wayland-protocols
|
||||
- mesa
|
||||
|
@ -16,8 +17,8 @@ arch:
|
|||
- libxkbcommon
|
||||
- libcap
|
||||
script:
|
||||
- "cmake -DCMAKE_BUILD_TYPE=Release ."
|
||||
- "make"
|
||||
- "meson build"
|
||||
- "ninja -C build"
|
||||
|
||||
script:
|
||||
- "curl -s https://raw.githubusercontent.com/mikkeloscar/arch-travis/master/arch-travis.sh | bash"
|
||||
|
|
|
@ -1,75 +0,0 @@
|
|||
#
|
||||
# (c)2015 KiCad Developers
|
||||
# (c)2015 Brian Sidebotham <brian.sidebotham@gmail.com>
|
||||
#
|
||||
# CMake module to find a2x (part of the asciidoc toolchain).
|
||||
#
|
||||
# Variables generated:
|
||||
#
|
||||
# A2X_FOUND true when A2X_COMMAND is valid
|
||||
# A2X_COMMAND The command to run a2x (may be a list including an interpreter)
|
||||
# A2X_VERSION The a2x version that has been found
|
||||
#
|
||||
|
||||
# Have a go at finding a a2x executable
|
||||
find_program( A2X_PROGRAM a2x )
|
||||
|
||||
# Found something, attempt to try and use it...
|
||||
if( A2X_PROGRAM )
|
||||
execute_process(
|
||||
COMMAND ${A2X_PROGRAM} --version
|
||||
OUTPUT_VARIABLE _OUT
|
||||
ERROR_VARIABLE _ERR
|
||||
RESULT_VARIABLE _RES
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
|
||||
# If it worked, set the A2X_COMMAND
|
||||
if( _RES MATCHES 0 )
|
||||
set( A2X_COMMAND "${A2X_PROGRAM}" )
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# If nothing could be found, test to see if we can just find the script file,
|
||||
# that we'll then run with the python interpreter
|
||||
if( NOT A2X_COMMAND )
|
||||
find_file( A2X_SCRIPT a2x.py )
|
||||
|
||||
if( A2X_SCRIPT )
|
||||
# Find the python interpreter quietly
|
||||
if( NOT PYTHONINTERP_FOUND )
|
||||
find_package( PYTHONINTERP QUIET )
|
||||
endif()
|
||||
|
||||
if( NOT PYTHONINTERP_FOUND )
|
||||
# Python's not available so can't find a2x...
|
||||
set( A2X_COMMAND "" )
|
||||
else()
|
||||
# Build the python based command
|
||||
set( A2X_COMMAND "${PYTHON_EXECUTABLE}" "${A2X_SCRIPT}" )
|
||||
|
||||
execute_process(
|
||||
COMMAND ${A2X_COMMAND} --version
|
||||
OUTPUT_VARIABLE _OUT
|
||||
ERROR_VARIABLE _ERR
|
||||
RESULT_VARIABLE _RES
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE )
|
||||
|
||||
# If it still can't be run, then give up
|
||||
if( NOT _RES MATCHES 0 )
|
||||
set( A2X_COMMAND "" )
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# If we've found a command that works, check the version
|
||||
if( A2X_COMMAND )
|
||||
string(REGEX REPLACE ".*a2x[^0-9.]*\([0-9.]+\).*" "\\1" A2X_VERSION "${_OUT}")
|
||||
endif()
|
||||
|
||||
# Generate the *_FOUND as necessary, etc.
|
||||
include( FindPackageHandleStandardArgs )
|
||||
find_package_handle_standard_args(
|
||||
A2X
|
||||
REQUIRED_VARS A2X_COMMAND
|
||||
VERSION_VAR A2X_VERSION )
|
|
@ -1,40 +0,0 @@
|
|||
#.rst:
|
||||
# FindDRM
|
||||
# -------
|
||||
#
|
||||
# Find DRM library
|
||||
#
|
||||
# Try to find DRM library on UNIX systems. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# DRM_FOUND - True if drm is available
|
||||
# DRM_INCLUDE_DIRS - Include directories for drm
|
||||
# DRM_LIBRARIES - List of libraries for drm
|
||||
# DRM_DEFINITIONS - List of definitions for drm
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(DRM PROPERTIES
|
||||
URL "http://dri.freedesktop.org/"
|
||||
DESCRIPTION "Kernel module that gives direct hardware access to DRI clients")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_DRM QUIET libdrm)
|
||||
find_library(DRM_LIBRARIES NAMES drm HINTS ${PC_DRM_LIBRARY_DIRS})
|
||||
find_path(DRM_INCLUDE_DIRS NAMES drm.h PATH_SUFFIXES libdrm drm HINTS ${PC_DRM_INCLUDE_DIRS})
|
||||
|
||||
set(DRM_DEFINITIONS ${PC_DRM_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(DRM DEFAULT_MSG DRM_INCLUDE_DIRS DRM_LIBRARIES)
|
||||
mark_as_advanced(DRM_INCLUDE_DIRS DRM_LIBRARIES DRM_DEFINITIONS)
|
|
@ -1,42 +0,0 @@
|
|||
#.rst:
|
||||
# FindDbus
|
||||
# -----------
|
||||
#
|
||||
# Find Dbus library
|
||||
#
|
||||
# Try to find Dbus library on UNIX systems. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# DBUS_FOUND - True if dbus is available
|
||||
# DBUS_INCLUDE_DIRS - Include directories for dbus
|
||||
# DBUS_LIBRARIES - List of libraries for dbus
|
||||
# DBUS_DEFINITIONS - List of definitions for dbus
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(Dbus PROPERTIES
|
||||
URL "http://www.freedesktop.org/wiki/Software/dbus/"
|
||||
DESCRIPTION "Message bus system")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_DBUS QUIET dbus-1)
|
||||
find_path(DBUS_SYSTEM_INCLUDES dbus/dbus.h PATH_SUFFIXES dbus-1.0)
|
||||
find_path(DBUS_LIB_INCLUDES dbus/dbus-arch-deps.h HINTS ${PC_DBUS_INCLUDE_DIRS} ${CMAKE_LIBRARY_PATH}/dbus-1.0/include ${CMAKE_SYSTEM_LIBRARY_PATH}/dbus-1.0/include)
|
||||
find_library(DBUS_LIBRARIES NAMES dbus-1 HINTS ${PC_DBUS_LIBRARY_DIRS})
|
||||
|
||||
set(DBUS_INCLUDE_DIRS ${DBUS_SYSTEM_INCLUDES} ${DBUS_LIB_INCLUDES})
|
||||
set(DBUS_DEFINITIONS ${PC_DBUS_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(DBUS DEFAULT_MSG DBUS_INCLUDE_DIRS DBUS_LIBRARIES)
|
||||
mark_as_advanced(DBUS_INCLUDE_DIRS DBUS_LIBRARIES DBUS_SYSTEM_INCLUDES DBUS_LIB_INCLUDES DBUS_DEFINITIONS)
|
|
@ -1,41 +0,0 @@
|
|||
#.rst:
|
||||
# FindEGL
|
||||
# -------
|
||||
#
|
||||
# Find EGL library
|
||||
#
|
||||
# Try to find EGL library. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# EGL_FOUND - True if egl is available
|
||||
# EGL_INCLUDE_DIRS - Include directories for egl
|
||||
# EGL_LIBRARIES - List of libraries for egl
|
||||
# EGL_DEFINITIONS - List of definitions for egl
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(EGL PROPERTIES
|
||||
URL "http://www.khronos.org/egl/"
|
||||
DESCRIPTION "Native Platform Interface")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_EGL QUIET egl)
|
||||
find_library(EGL_LIBRARIES NAMES egl EGL HINTS ${PC_EGL_LIBRARY_DIRS})
|
||||
find_path(EGL_INCLUDE_DIRS NAMES EGL/egl.h HINTS ${PC_EGL_INCLUDE_DIRS})
|
||||
|
||||
set(EGL_DEFINITIONS ${PC_EGL_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(EGL DEFAULT_MSG EGL_LIBRARIES EGL_INCLUDE_DIRS)
|
||||
mark_as_advanced(EGL_INCLUDE_DIRS EGL_LIBRARIES EGL_DEFINITIONS)
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
#.rst:
|
||||
# FindGBM
|
||||
# -------
|
||||
#
|
||||
# Find GBM library
|
||||
#
|
||||
# Try to find GBM library on UNIX systems. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# GBM_FOUND - True if gbm is available
|
||||
# GBM_INCLUDE_DIRS - Include directories for gbm
|
||||
# GBM_LIBRARIES - List of libraries for gbm
|
||||
# GBM_DEFINITIONS - List of definitions for gbm
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
set_package_properties(GBM PROPERTIES
|
||||
URL "http://www.mesa3d.org/"
|
||||
DESCRIPTION "Generic buffer manager")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_GBM QUIET gbm)
|
||||
find_library(GBM_LIBRARIES NAMES gbm HINTS ${PC_GBM_LIBRARY_DIRS})
|
||||
find_path(GBM_INCLUDE_DIRS gbm.h HINTS ${PC_GBM_INCLUDE_DIRS})
|
||||
|
||||
set(GBM_DEFINITIONS ${PC_GBM_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(GBM DEFAULT_MSG GBM_INCLUDE_DIRS GBM_LIBRARIES)
|
||||
mark_as_advanced(GBM_INCLUDE_DIRS GBM_LIBRARIES GBM_DEFINITIONS)
|
|
@ -1,41 +0,0 @@
|
|||
#.rst:
|
||||
# FindGLESv2
|
||||
# -------
|
||||
#
|
||||
# Find GLESv2 library
|
||||
#
|
||||
# Try to find GLESv2 library. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# GLESv2_FOUND - True if glesv2 is available
|
||||
# GLESv2_INCLUDE_DIRS - Include directories for glesv2
|
||||
# GLESv2_LIBRARIES - List of libraries for glesv2
|
||||
# GLESv2_DEFINITIONS - List of definitions for glesv2
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(GLESv2 PROPERTIES
|
||||
URL "https://www.khronos.org/opengles/"
|
||||
DESCRIPTION "The Standard for Embedded Accelerated 3D Graphics")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_GLES2 QUIET glesv2)
|
||||
find_library(GLESv2_LIBRARIES NAMES GLESv2 ${PC_GLES2_LIBRARY_DIRS})
|
||||
find_path(GLESv2_INCLUDE_DIRS NAMES GLES2/gl2.h HINTS ${PC_GLES2_INCLUDE_DIRS})
|
||||
|
||||
set(GLESv2_DEFINITIONS ${PC_GLES2_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(GLESv2 DEFAULT_MSG GLESv2_LIBRARIES GLESv2_INCLUDE_DIRS)
|
||||
mark_as_advanced(GLESv2_INCLUDE_DIRS GLESv2_LIBRARIES GLESv2_DEFINITIONS)
|
||||
|
|
@ -1,72 +0,0 @@
|
|||
#.rst:
|
||||
# FindLibInput
|
||||
# -------
|
||||
#
|
||||
# Find LibInput library
|
||||
#
|
||||
# Try to find LibInpu library. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# LIBINPUT_FOUND - True if libinput is available
|
||||
# LIBINPUT_INCLUDE_DIRS - Include directories for libinput
|
||||
# LIBINPUT_LIBRARIES - List of libraries for libinput
|
||||
# LIBINPUT_DEFINITIONS - List of definitions for libinput
|
||||
#
|
||||
# and also the following more fine grained variables
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# LIBINPUT_VERSION
|
||||
# LIBINPUT_VERSION_MAJOR
|
||||
# LIBINPUT_VERSION_MINOR
|
||||
# LIBINPUT_VERSION_MICRO
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(LibInput PROPERTIES
|
||||
URL "http://freedesktop.org/wiki/Software/libinput/"
|
||||
DESCRIPTION "Library to handle input devices")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_INPUT QUIET libinput)
|
||||
find_library(LIBINPUT_LIBRARIES NAMES input HINTS ${PC_INPUT_LIBRARY_DIRS})
|
||||
find_path(LIBINPUT_INCLUDE_DIRS libinput.h HINTS ${PC_INPUT_INCLUDE_DIRS})
|
||||
|
||||
set(LIBINPUT_VERSION ${PC_INPUT_VERSION})
|
||||
string(REPLACE "." ";" VERSION_LIST "${PC_INPUT_VERSION}")
|
||||
|
||||
LIST(LENGTH VERSION_LIST n)
|
||||
if (n EQUAL 3)
|
||||
list(GET VERSION_LIST 0 LIBINPUT_VERSION_MAJOR)
|
||||
list(GET VERSION_LIST 1 LIBINPUT_VERSION_MINOR)
|
||||
list(GET VERSION_LIST 2 LIBINPUT_VERSION_MICRO)
|
||||
else ()
|
||||
set(LIBINPUT_VERSION "9999.9999.9999")
|
||||
set(LIBINPUT_VERSION_MAJOR 9999)
|
||||
set(LIBINPUT_VERSION_MINOR 9999)
|
||||
set(LIBINPUT_VERSION_MICRO 9999)
|
||||
message(WARNING "Could not detect libinput version, assuming you have recent one")
|
||||
endif ()
|
||||
|
||||
# This is compatible with libinput-version.h that exists in upstream
|
||||
# but isn't in distribution (probably forgotten)
|
||||
set(LIBINPUT_DEFINITIONS ${PC_INPUT_CFLAGS_OTHER}
|
||||
-DLIBINPUT_VERSION=\"${LIBINPUT_VERSION}\"
|
||||
-DLIBINPUT_VERSION_MAJOR=${LIBINPUT_VERSION_MAJOR}
|
||||
-DLIBINPUT_VERSION_MINOR=${LIBINPUT_VERSION_MINOR}
|
||||
-DLIBINPUT_VERSION_MICRO=${LIBINPUT_VERSION_MICRO})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(LIBINPUT DEFAULT_MSG LIBINPUT_INCLUDE_DIRS LIBINPUT_LIBRARIES)
|
||||
mark_as_advanced(LIBINPUT_INCLUDE_DIRS LIBINPUT_LIBRARIES LIBINPUT_DEFINITIONS
|
||||
LIBINPUT_VERSION LIBINPUT_VERSION_MAJOR LIBINPUT_VERSION_MICRO LIBINPUT_VERSION_MINOR)
|
|
@ -1,56 +0,0 @@
|
|||
#.rst:
|
||||
# FindLibcap
|
||||
# -------
|
||||
#
|
||||
# Find Libcap library
|
||||
#
|
||||
# Try to find Libcap library. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# Libcap_FOUND - True if Libcap is available
|
||||
# Libcap_INCLUDE_DIRS - Include directories for Libcap
|
||||
# Libcap_LIBRARIES - List of libraries for Libcap
|
||||
# Libcap_DEFINITIONS - List of definitions for Libcap
|
||||
#
|
||||
# and also the following more fine grained variables
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# Libcap_VERSION
|
||||
# Libcap_VERSION_MAJOR
|
||||
# Libcap_VERSION_MINOR
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2017 Jerzi Kaminsky
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(Libcap PROPERTIES
|
||||
URL "https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2"
|
||||
DESCRIPTION "Library for getting and setting POSIX.1e capabilities")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_CAP QUIET Libcap)
|
||||
find_library(Libcap_LIBRARIES NAMES cap HINTS ${PC_CAP_LIBRARY_DIRS})
|
||||
find_path(Libcap_INCLUDE_DIRS sys/capability.h HINTS ${PC_CAP_INCLUDE_DIRS})
|
||||
|
||||
set(Libcap_VERSION ${PC_CAP_VERSION})
|
||||
string(REPLACE "." ";" VERSION_LIST "${PC_CAP_VERSION}")
|
||||
|
||||
LIST(LENGTH VERSION_LIST n)
|
||||
if (n EQUAL 2)
|
||||
list(GET VERSION_LIST 0 Libcap_VERSION_MAJOR)
|
||||
list(GET VERSION_LIST 1 Libcap_VERSION_MINOR)
|
||||
endif ()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(Libcap DEFAULT_MSG Libcap_INCLUDE_DIRS Libcap_LIBRARIES)
|
||||
mark_as_advanced(Libcap_INCLUDE_DIRS Libcap_LIBRARIES Libcap_DEFINITIONS
|
||||
Libcap_VERSION Libcap_VERSION_MAJOR Libcap_VERSION_MICRO Libcap_VERSION_MINOR)
|
|
@ -1,40 +0,0 @@
|
|||
#.rst:
|
||||
# FindSystemd
|
||||
# -------
|
||||
#
|
||||
# Find Systemd library
|
||||
#
|
||||
# Try to find Systemd library on UNIX systems. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# SYSTEMD_FOUND - True if Systemd is available
|
||||
# SYSTEMD_INCLUDE_DIRS - Include directories for Systemd
|
||||
# SYSTEMD_LIBRARIES - List of libraries for Systemd
|
||||
# SYSTEMD_DEFINITIONS - List of definitions for Systemd
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(Systemd PROPERTIES
|
||||
URL "http://freedesktop.org/wiki/Software/systemd/"
|
||||
DESCRIPTION "System and Service Manager")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_SYSTEMD QUIET libsystemd)
|
||||
find_library(SYSTEMD_LIBRARIES NAMES systemd ${PC_SYSTEMD_LIBRARY_DIRS})
|
||||
find_path(SYSTEMD_INCLUDE_DIRS systemd/sd-login.h HINTS ${PC_SYSTEMD_INCLUDE_DIRS})
|
||||
|
||||
set(SYSTEMD_DEFINITIONS ${PC_SYSTEMD_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(SYSTEMD DEFAULT_MSG SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES)
|
||||
mark_as_advanced(SYSTEMD_INCLUDE_DIRS SYSTEMD_LIBRARIES SYSTEMD_DEFINITIONS)
|
|
@ -1,40 +0,0 @@
|
|||
#.rst:
|
||||
# FindUdev
|
||||
# -------
|
||||
#
|
||||
# Find udev library
|
||||
#
|
||||
# Try to find udev library on UNIX systems. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# UDEV_FOUND - True if udev is available
|
||||
# UDEV_INCLUDE_DIRS - Include directories for udev
|
||||
# UDEV_LIBRARIES - List of libraries for udev
|
||||
# UDEV_DEFINITIONS - List of definitions for udev
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(Udev PROPERTIES
|
||||
URL "https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html"
|
||||
DESCRIPTION "Device manager for the Linux kernel")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_UDEV QUIET libudev)
|
||||
find_library(UDEV_LIBRARIES NAMES udev HINTS ${PC_UDEV_LIBRARY_DIRS})
|
||||
find_path(UDEV_INCLUDE_DIRS libudev.h HINTS ${PC_UDEV_INCLUDE_DIRS})
|
||||
|
||||
set(UDEV_DEFINITIONS ${PC_UDEV_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(UDEV DEFAULT_MSG UDEV_INCLUDE_DIRS UDEV_LIBRARIES)
|
||||
mark_as_advanced(UDEV_INCLUDE_DIRS UDEV_LIBRARIES UDEV_DEFINITIONS)
|
|
@ -1,69 +0,0 @@
|
|||
#.rst:
|
||||
# FindWayland
|
||||
# -----------
|
||||
#
|
||||
# Find Wayland installation
|
||||
#
|
||||
# Try to find Wayland. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# WAYLAND_FOUND - True if Wayland is found
|
||||
# WAYLAND_LIBRARIES - Link these to use Wayland
|
||||
# WAYLAND_INCLUDE_DIRS - Include directories for Wayland
|
||||
# WAYLAND_DEFINITIONS - Compiler flags for using Wayland
|
||||
#
|
||||
# and also the following more fine grained variables:
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# WAYLAND_CLIENT_FOUND, WAYLAND_CLIENT_INCLUDE_DIRS, WAYLAND_CLIENT_LIBRARIES
|
||||
# WAYLAND_SERVER_FOUND, WAYLAND_SERVER_INCLUDE_DIRS, WAYLAND_SERVER_LIBRARIES
|
||||
# WAYLAND_EGL_FOUND, WAYLAND_EGL_INCLUDE_DIRS, WAYLAND_EGL_LIBRARIES
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
# 2013 Martin Gräßlin <mgraesslin@kde.org>
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(Wayland PROPERTIES
|
||||
URL "http://wayland.freedesktop.org/"
|
||||
DESCRIPTION "Protocol for implementing compositors")
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_WAYLAND QUIET wayland-client>=1.7 wayland-server>=1.7 wayland-egl)
|
||||
|
||||
find_library(WAYLAND_CLIENT_LIBRARIES NAMES wayland-client HINTS ${PC_WAYLAND_LIBRARY_DIRS})
|
||||
find_library(WAYLAND_SERVER_LIBRARIES NAMES wayland-server HINTS ${PC_WAYLAND_LIBRARY_DIRS})
|
||||
find_library(WAYLAND_EGL_LIBRARIES NAMES wayland-egl HINTS ${PC_WAYLAND_LIBRARY_DIRS})
|
||||
|
||||
find_path(WAYLAND_CLIENT_INCLUDE_DIRS NAMES wayland-client.h HINTS ${PC_WAYLAND_INCLUDE_DIRS})
|
||||
find_path(WAYLAND_SERVER_INCLUDE_DIRS NAMES wayland-server.h HINTS ${PC_WAYLAND_INCLUDE_DIRS})
|
||||
find_path(WAYLAND_EGL_INCLUDE_DIRS NAMES wayland-egl.h HINTS ${PC_WAYLAND_INCLUDE_DIRS})
|
||||
|
||||
set(WAYLAND_INCLUDE_DIRS ${WAYLAND_CLIENT_INCLUDE_DIRS} ${WAYLAND_SERVER_INCLUDE_DIRS} ${WAYLAND_EGL_INCLUDE_DIRS})
|
||||
set(WAYLAND_LIBRARIES ${WAYLAND_CLIENT_LIBRARIES} ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_EGL_LIBRARIES})
|
||||
set(WAYLAND_DEFINITIONS ${PC_WAYLAND_CFLAGS})
|
||||
|
||||
list(REMOVE_DUPLICATES WAYLAND_INCLUDE_DIRS)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WAYLAND_CLIENT DEFAULT_MSG WAYLAND_CLIENT_LIBRARIES WAYLAND_CLIENT_INCLUDE_DIRS)
|
||||
find_package_handle_standard_args(WAYLAND_SERVER DEFAULT_MSG WAYLAND_SERVER_LIBRARIES WAYLAND_SERVER_INCLUDE_DIRS)
|
||||
find_package_handle_standard_args(WAYLAND_EGL DEFAULT_MSG WAYLAND_EGL_LIBRARIES WAYLAND_EGL_INCLUDE_DIRS)
|
||||
find_package_handle_standard_args(WAYLAND DEFAULT_MSG WAYLAND_LIBRARIES WAYLAND_INCLUDE_DIRS)
|
||||
|
||||
mark_as_advanced(
|
||||
WAYLAND_INCLUDE_DIRS WAYLAND_LIBRARIES
|
||||
WAYLAND_CLIENT_INCLUDE_DIRS WAYLAND_CLIENT_LIBRARIES
|
||||
WAYLAND_SERVER_INCLUDE_DIRS WAYLAND_SERVER_LIBRARIES
|
||||
WAYLAND_EGL_INCLUDE_DIRS WAYLAND_EGL_LIBRARIES
|
||||
WAYLAND_DEFINITIONS
|
||||
)
|
|
@ -1,39 +0,0 @@
|
|||
#.rst:
|
||||
# FindWaylandProtocols
|
||||
# -------
|
||||
#
|
||||
# Find wayland protocol description files
|
||||
#
|
||||
# Try to find wayland protocol files. The following values are defined
|
||||
#
|
||||
# ::
|
||||
#
|
||||
# WAYLANDPROTOCOLS_FOUND - True if wayland protocol files are available
|
||||
# WAYLANDPROTOCOLS_PATH - Path to wayland protocol files
|
||||
#
|
||||
#=============================================================================
|
||||
# Copyright (c) 2015 Jari Vetoniemi
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
include(FeatureSummary)
|
||||
set_package_properties(WaylandProtocols PROPERTIES
|
||||
URL "https://cgit.freedesktop.org/wayland/wayland-protocols"
|
||||
DESCRIPTION "Wayland protocol development")
|
||||
|
||||
unset(WAYLANDPROTOCOLS_PATH)
|
||||
|
||||
find_package(PkgConfig)
|
||||
if (PKG_CONFIG_FOUND)
|
||||
execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=pkgdatadir wayland-protocols
|
||||
OUTPUT_VARIABLE WAYLANDPROTOCOLS_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
endif ()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(WaylandProtocols DEFAULT_MSG WAYLANDPROTOCOLS_PATH)
|
||||
mark_as_advanced(WAYLANDPROTOCOLS_PATH)
|
|
@ -1,19 +0,0 @@
|
|||
# - Find XKBCommon
|
||||
# Once done, this will define
|
||||
#
|
||||
# XKBCOMMON_FOUND - System has XKBCommon
|
||||
# XKBCOMMON_INCLUDE_DIRS - The XKBCommon include directories
|
||||
# XKBCOMMON_LIBRARIES - The libraries needed to use XKBCommon
|
||||
# XKBCOMMON_DEFINITIONS - Compiler switches required for using XKBCommon
|
||||
|
||||
find_package(PkgConfig)
|
||||
pkg_check_modules(PC_XKBCOMMON QUIET xkbcommon)
|
||||
find_path(XKBCOMMON_INCLUDE_DIRS NAMES xkbcommon/xkbcommon.h HINTS ${PC_XKBCOMMON_INCLUDE_DIRS})
|
||||
find_library(XKBCOMMON_LIBRARIES NAMES xkbcommon HINTS ${PC_XKBCOMMON_LIBRARY_DIRS})
|
||||
|
||||
set(XKBCOMMON_DEFINITIONS ${PC_XKBCOMMON_CFLAGS_OTHER})
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(XKBCOMMON DEFAULT_MSG XKBCOMMON_LIBRARIES XKBCOMMON_INCLUDE_DIRS)
|
||||
mark_as_advanced(XKBCOMMON_LIBRARIES XKBCOMMON_INCLUDE_DIRS)
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
find_package(A2X)
|
||||
|
||||
if (A2X_FOUND)
|
||||
add_custom_target(man ALL)
|
||||
|
||||
function(add_manpage name section)
|
||||
add_custom_command(
|
||||
OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}
|
||||
COMMAND ${A2X_COMMAND}
|
||||
--no-xmllint
|
||||
--doctype manpage
|
||||
--format manpage
|
||||
-D ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt
|
||||
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${name}.${section}.txt
|
||||
COMMENT Generating manpage for ${name}.${section}
|
||||
)
|
||||
|
||||
add_custom_target(man-${name}.${section}
|
||||
DEPENDS
|
||||
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}
|
||||
)
|
||||
add_dependencies(man
|
||||
man-${name}.${section}
|
||||
)
|
||||
|
||||
install(
|
||||
FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${name}.${section}
|
||||
DESTINATION ${CMAKE_INSTALL_FULL_DATAROOTDIR}/man/man${section}
|
||||
COMPONENT documentation
|
||||
)
|
||||
endfunction()
|
||||
endif()
|
|
@ -1,77 +0,0 @@
|
|||
#=============================================================================
|
||||
# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
#
|
||||
# * Neither the name of Pier Luigi Fiorini nor the names of his
|
||||
# contributors may be used to endorse or promote products derived
|
||||
# from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
#=============================================================================
|
||||
|
||||
find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner)
|
||||
|
||||
# wayland_add_protocol_client(outfiles inputfile basename)
|
||||
function(WAYLAND_ADD_PROTOCOL_CLIENT _sources _protocol _basename)
|
||||
if(NOT WAYLAND_SCANNER_EXECUTABLE)
|
||||
message(FATAL "The wayland-scanner executable has not been found on your system. You must install it.")
|
||||
endif()
|
||||
|
||||
get_filename_component(_infile ${_protocol} ABSOLUTE)
|
||||
set(_client_header "${CMAKE_CURRENT_BINARY_DIR}/wayland-${_basename}-client-protocol.h")
|
||||
set(_code "${CMAKE_CURRENT_BINARY_DIR}/wayland-${_basename}-protocol.c")
|
||||
|
||||
add_custom_command(OUTPUT "${_client_header}"
|
||||
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header < ${_infile} > ${_client_header}
|
||||
DEPENDS ${_infile} VERBATIM)
|
||||
|
||||
add_custom_command(OUTPUT "${_code}"
|
||||
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code < ${_infile} > ${_code}
|
||||
DEPENDS ${_infile} VERBATIM)
|
||||
|
||||
list(APPEND ${_sources} "${_client_header}" "${_code}")
|
||||
set(${_sources} ${${_sources}} PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
||||
# wayland_add_protocol_server(outfiles inputfile basename)
|
||||
function(WAYLAND_ADD_PROTOCOL_SERVER _sources _protocol _basename)
|
||||
if(NOT WAYLAND_SCANNER_EXECUTABLE)
|
||||
message(FATAL "The wayland-scanner executable has not been found on your system. You must install it.")
|
||||
endif()
|
||||
|
||||
get_filename_component(_infile ${_protocol} ABSOLUTE)
|
||||
set(_server_header "${CMAKE_CURRENT_BINARY_DIR}/wayland-${_basename}-server-protocol.h")
|
||||
set(_code "${CMAKE_CURRENT_BINARY_DIR}/wayland-${_basename}-protocol.c")
|
||||
|
||||
add_custom_command(OUTPUT "${_server_header}"
|
||||
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} server-header < ${_infile} > ${_server_header}
|
||||
DEPENDS ${_infile} VERBATIM)
|
||||
|
||||
add_custom_command(OUTPUT "${_code}"
|
||||
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} code < ${_infile} > ${_code}
|
||||
DEPENDS ${_infile} VERBATIM)
|
||||
|
||||
list(APPEND ${_sources} "${_server_header}" "${_code}")
|
||||
set(${_sources} ${${_sources}} PARENT_SCOPE)
|
||||
endfunction()
|
|
@ -1,74 +0,0 @@
|
|||
cmake_minimum_required(VERSION 3.1.0)
|
||||
|
||||
project(wlroots C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_EXTENSIONS OFF)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-field-initializers") # fuck off, clang
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-missing-braces") # oh my god clang
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
|
||||
if (CMAKE_COMPILER_IS_GNUCC)
|
||||
if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 7.0)
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wimplicit-fallthrough=0")
|
||||
endif()
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-lto-type-mismatch")
|
||||
endif()
|
||||
if (CMAKE_BUILD_TYPE MATCHES Release)
|
||||
# Some variables are only used for assertions
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-variable")
|
||||
endif()
|
||||
|
||||
list(INSERT CMAKE_MODULE_PATH 0
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/CMake
|
||||
)
|
||||
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
|
||||
execute_process(
|
||||
COMMAND git describe --always --tags
|
||||
OUTPUT_VARIABLE GIT_COMMIT_HASH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
execute_process(
|
||||
COMMAND git rev-parse --abbrev-ref HEAD
|
||||
OUTPUT_VARIABLE GIT_BRANCH
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
)
|
||||
endif()
|
||||
|
||||
add_definitions(-DWLR_GIT_VERSION=\"${GIT_COMMIT_HASH}\")
|
||||
add_definitions(-DWLR_GIT_BRANCH=\"${GIT_BRANCH}\")
|
||||
add_definitions(-DWLR_SRC_DIR=\"${CMAKE_SOURCE_DIR}\")
|
||||
|
||||
string(TIMESTAMP CURRENT_DATE "%Y-%m-%d" UTC)
|
||||
add_definitions(-DWLR_VERSION_DATE=\"${CURRENT_DATE}\")
|
||||
|
||||
find_package(Wayland REQUIRED)
|
||||
find_package(WaylandProtocols REQUIRED)
|
||||
find_package(EGL REQUIRED)
|
||||
find_package(GLESv2 REQUIRED)
|
||||
find_package(DRM REQUIRED)
|
||||
find_package(GBM REQUIRED)
|
||||
find_package(LibInput REQUIRED)
|
||||
find_package(XKBCommon REQUIRED)
|
||||
find_package(Udev REQUIRED)
|
||||
find_package(Libcap)
|
||||
find_package(Systemd)
|
||||
|
||||
include(Wayland)
|
||||
include(Manpage)
|
||||
|
||||
include_directories(include)
|
||||
|
||||
add_subdirectory(backend)
|
||||
add_subdirectory(types)
|
||||
add_subdirectory(session)
|
||||
add_subdirectory(render)
|
||||
add_subdirectory(util)
|
||||
|
||||
add_subdirectory(examples)
|
|
@ -23,8 +23,5 @@ Install dependencies:
|
|||
|
||||
Run these commands:
|
||||
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=Release ..
|
||||
make
|
||||
sudo make install
|
||||
meson build
|
||||
ninja -C build
|
||||
|
|
|
@ -1,42 +0,0 @@
|
|||
include_directories(
|
||||
${PROTOCOLS_INCLUDE_DIRS}
|
||||
${WAYLAND_INCLUDE_DIR}
|
||||
${DRM_INCLUDE_DIRS}
|
||||
${LIBINPUT_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
add_library(wlr-backend
|
||||
wayland/backend.c
|
||||
wayland/registry.c
|
||||
wayland/wl_seat.c
|
||||
wayland/output.c
|
||||
drm/backend.c
|
||||
drm/drm.c
|
||||
|
||||
libinput/backend.c
|
||||
libinput/events.c
|
||||
libinput/keyboard.c
|
||||
libinput/pointer.c
|
||||
libinput/touch.c
|
||||
libinput/tablet_tool.c
|
||||
libinput/tablet_pad.c
|
||||
|
||||
multi/backend.c
|
||||
backend.c
|
||||
egl.c
|
||||
udev.c
|
||||
)
|
||||
|
||||
target_link_libraries(wlr-backend
|
||||
wlr-util
|
||||
wlr-types
|
||||
${WAYLAND_LIBRARIES}
|
||||
${DRM_LIBRARIES}
|
||||
${GBM_LIBRARIES}
|
||||
${GLESv2_LIBRARIES}
|
||||
${EGL_LIBRARIES}
|
||||
${SYSTEMD_LIBRARIES}
|
||||
${UDEV_LIBRARIES}
|
||||
${LIBINPUT_LIBRARIES}
|
||||
${GBM_LIBRARIES}
|
||||
)
|
19
backend/meson.build
Normal file
19
backend/meson.build
Normal file
|
@ -0,0 +1,19 @@
|
|||
wlr_files += files(
|
||||
'backend.c',
|
||||
'egl.c',
|
||||
'udev.c',
|
||||
'drm/backend.c',
|
||||
'drm/drm.c',
|
||||
'libinput/backend.c',
|
||||
'libinput/events.c',
|
||||
'libinput/keyboard.c',
|
||||
'libinput/pointer.c',
|
||||
'libinput/tablet_pad.c',
|
||||
'libinput/tablet_tool.c',
|
||||
'libinput/touch.c',
|
||||
'multi/backend.c',
|
||||
'wayland/backend.c',
|
||||
'wayland/output.c',
|
||||
'wayland/registry.c',
|
||||
'wayland/wl_seat.c',
|
||||
)
|
|
@ -1,81 +0,0 @@
|
|||
include_directories(
|
||||
${DRM_INCLUDE_DIRS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${XKBCOMMON_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
add_executable(simple
|
||||
simple.c
|
||||
shared.c
|
||||
)
|
||||
|
||||
target_link_libraries(simple
|
||||
wlr-backend
|
||||
wlr-session
|
||||
${XKBCOMMON_LIBRARIES}
|
||||
)
|
||||
|
||||
add_executable(rotation
|
||||
rotation.c
|
||||
shared.c
|
||||
cat.c
|
||||
)
|
||||
|
||||
target_link_libraries(rotation
|
||||
wlr-backend
|
||||
wlr-session
|
||||
wlr-render
|
||||
${XKBCOMMON_LIBRARIES}
|
||||
)
|
||||
|
||||
add_executable(pointer
|
||||
pointer.c
|
||||
shared.c
|
||||
cat.c
|
||||
)
|
||||
|
||||
target_link_libraries(pointer
|
||||
wlr-backend
|
||||
wlr-session
|
||||
wlr-render
|
||||
${XKBCOMMON_LIBRARIES}
|
||||
)
|
||||
|
||||
add_executable(touch
|
||||
touch.c
|
||||
shared.c
|
||||
cat.c
|
||||
)
|
||||
|
||||
target_link_libraries(touch
|
||||
wlr-backend
|
||||
wlr-session
|
||||
wlr-render
|
||||
${XKBCOMMON_LIBRARIES}
|
||||
)
|
||||
|
||||
add_executable(tablet
|
||||
tablet.c
|
||||
shared.c
|
||||
)
|
||||
|
||||
target_link_libraries(tablet
|
||||
wlr-backend
|
||||
wlr-session
|
||||
wlr-render
|
||||
${XKBCOMMON_LIBRARIES}
|
||||
)
|
||||
|
||||
add_executable(compositor
|
||||
compositor/main.c
|
||||
compositor/wl_compositor.c
|
||||
compositor/wl_shell.c
|
||||
shared.c
|
||||
)
|
||||
|
||||
target_link_libraries(compositor
|
||||
wlr-backend
|
||||
wlr-session
|
||||
wlr-render
|
||||
${XKBCOMMON_LIBRARIES}
|
||||
)
|
17
examples/meson.build
Normal file
17
examples/meson.build
Normal file
|
@ -0,0 +1,17 @@
|
|||
lib_shared = static_library('shared',
|
||||
['shared.c', 'cat.c'],
|
||||
dependencies: dep_wlr)
|
||||
|
||||
executable('simple', 'simple.c', dependencies: dep_wlr, link_with: lib_shared)
|
||||
executable('rotation', 'rotation.c', dependencies: dep_wlr, link_with: lib_shared)
|
||||
executable('pointer', 'pointer.c', dependencies: dep_wlr, link_with: lib_shared)
|
||||
executable('touch', 'touch.c', dependencies: dep_wlr, link_with: lib_shared)
|
||||
executable('tablet', 'tablet.c', dependencies: dep_wlr, link_with: lib_shared)
|
||||
|
||||
compositor_src = [
|
||||
'compositor/main.c',
|
||||
'compositor/wl_compositor.c',
|
||||
'compositor/wl_shell.c',
|
||||
]
|
||||
|
||||
executable('compositor', compositor_src, dependencies: dep_wlr, link_with: lib_shared)
|
77
meson.build
Normal file
77
meson.build
Normal file
|
@ -0,0 +1,77 @@
|
|||
project('wlroots', 'c',
|
||||
license: 'MIT',
|
||||
default_options: 'c_std=c11')
|
||||
|
||||
add_project_arguments('-Wall', '-Wextra', '-Wno-unused-parameter', '-Werror', language: 'c')
|
||||
add_project_arguments('-DWLR_SRC_DIR="@0@"'.format(meson.source_root()), language: 'c')
|
||||
add_project_link_arguments('-Wl,-rpath,@0@'.format(meson.build_root()), language: 'c')
|
||||
|
||||
wlr_inc = include_directories('include')
|
||||
|
||||
#add_project_arguments('-flto', language: 'c')
|
||||
#add_project_link_arguments('-flto', language: 'c')
|
||||
|
||||
cc = meson.get_compiler('c')
|
||||
|
||||
# Clang complains about some zeroed initialiser lists (= {0}), even though they are valid
|
||||
if cc.get_id() == 'clang'
|
||||
add_project_arguments('-Wno-missing-field-initializers', language: 'c')
|
||||
add_project_arguments('-Wno-missing-braces', language: 'c')
|
||||
endif
|
||||
|
||||
dep_wayland_server = dependency('wayland-server')
|
||||
dep_wayland_client = dependency('wayland-client')
|
||||
dep_wayland_egl = dependency('wayland-egl')
|
||||
dep_wayland_proto = dependency('wayland-protocols')
|
||||
dep_egl = dependency('egl')
|
||||
dep_glesv2 = dependency('glesv2')
|
||||
dep_drm = dependency('libdrm')
|
||||
dep_gbm = dependency('gbm')
|
||||
dep_libinput = dependency('libinput')
|
||||
dep_xkbcommon = dependency('xkbcommon')
|
||||
dep_udev = dependency('libudev')
|
||||
dep_libcap = dependency('libcap', required: false)
|
||||
dep_systemd = dependency('libsystemd', required: false)
|
||||
dep_math = cc.find_library('m', required: false)
|
||||
|
||||
all_deps = [
|
||||
dep_wayland_server,
|
||||
dep_wayland_client,
|
||||
dep_wayland_egl,
|
||||
dep_wayland_proto,
|
||||
dep_egl,
|
||||
dep_glesv2,
|
||||
dep_drm,
|
||||
dep_gbm,
|
||||
dep_libinput,
|
||||
dep_xkbcommon,
|
||||
dep_udev,
|
||||
dep_libcap,
|
||||
dep_systemd,
|
||||
dep_math,
|
||||
]
|
||||
|
||||
if dep_libcap.found()
|
||||
add_project_arguments('-DHAS_LIBCAP', language: 'c')
|
||||
endif
|
||||
|
||||
if dep_systemd.found()
|
||||
add_project_arguments('-DHAS_SYSTEMD', language: 'c')
|
||||
endif
|
||||
|
||||
wlr_files = []
|
||||
|
||||
subdir('backend')
|
||||
subdir('render')
|
||||
subdir('session')
|
||||
subdir('types')
|
||||
subdir('util')
|
||||
|
||||
lib_wlr = library('wlroots', wlr_files,
|
||||
dependencies: all_deps,
|
||||
include_directories: wlr_inc)
|
||||
dep_wlr = declare_dependency(link_with: lib_wlr,
|
||||
dependencies: all_deps,
|
||||
include_directories: wlr_inc)
|
||||
|
||||
subdir('examples')
|
|
@ -1,10 +0,0 @@
|
|||
add_library(wlr-render
|
||||
matrix.c
|
||||
wlr_renderer.c
|
||||
wlr_surface.c
|
||||
gles2/shaders.c
|
||||
gles2/renderer.c
|
||||
gles2/surface.c
|
||||
gles2/pixel_format.c
|
||||
gles2/util.c
|
||||
)
|
|
@ -123,7 +123,11 @@ static void draw_quad() {
|
|||
|
||||
static bool wlr_gles2_render_surface(struct wlr_renderer_state *state,
|
||||
struct wlr_surface *surface, const float (*matrix)[16]) {
|
||||
assert(surface && surface->valid);
|
||||
if(!surface || !surface->valid) {
|
||||
wlr_log(L_ERROR, "attempt to render invalid surface");
|
||||
return false;
|
||||
}
|
||||
|
||||
wlr_surface_bind(surface);
|
||||
GL_CALL(glUniformMatrix4fv(0, 1, GL_FALSE, *matrix));
|
||||
// TODO: source alpha from somewhere else I guess
|
||||
|
|
10
render/meson.build
Normal file
10
render/meson.build
Normal file
|
@ -0,0 +1,10 @@
|
|||
wlr_files += files(
|
||||
'matrix.c',
|
||||
'wlr_renderer.c',
|
||||
'wlr_surface.c',
|
||||
'gles2/pixel_format.c',
|
||||
'gles2/renderer.c',
|
||||
'gles2/shaders.c',
|
||||
'gles2/surface.c',
|
||||
'gles2/util.c',
|
||||
)
|
|
@ -1,35 +0,0 @@
|
|||
include_directories(
|
||||
${WAYLAND_INCLUDE_DIR}
|
||||
${DRM_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
set(sources
|
||||
session.c
|
||||
direct.c
|
||||
direct-ipc.c
|
||||
)
|
||||
|
||||
set(libs
|
||||
wlr-util
|
||||
${WAYLAND_LIBRARIES}
|
||||
)
|
||||
|
||||
if (SYSTEMD_FOUND)
|
||||
add_definitions(${SYSTEMD_DEFINITIONS})
|
||||
include_directories(${SYSTEMD_INCLUDE_DIRS})
|
||||
|
||||
add_definitions(-DHAS_SYSTEMD)
|
||||
list(APPEND sources logind.c)
|
||||
list(APPEND libs ${SYSTEMD_LIBRARIES})
|
||||
endif ()
|
||||
|
||||
if (Libcap_FOUND)
|
||||
add_definitions(${Libcap_DEFINITIONS})
|
||||
include_directories(${Libcap_INCLUDE_DIRS})
|
||||
|
||||
add_definitions(-DHAS_LIBCAP)
|
||||
list(APPEND libs ${Libcap_LIBRARIES})
|
||||
endif ()
|
||||
|
||||
add_library(wlr-session ${sources})
|
||||
target_link_libraries(wlr-session ${libs})
|
9
session/meson.build
Normal file
9
session/meson.build
Normal file
|
@ -0,0 +1,9 @@
|
|||
wlr_files += files(
|
||||
'direct-ipc.c',
|
||||
'direct.c',
|
||||
'session.c',
|
||||
)
|
||||
|
||||
if dep_systemd.found()
|
||||
wlr_files += files('logind.c')
|
||||
endif
|
|
@ -1,20 +0,0 @@
|
|||
include_directories(
|
||||
${PROTOCOLS_INCLUDE_DIRS}
|
||||
${WAYLAND_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
add_library(wlr-types
|
||||
wlr_output.c
|
||||
wlr_input_device.c
|
||||
wlr_keyboard.c
|
||||
wlr_pointer.c
|
||||
wlr_touch.c
|
||||
wlr_tablet_tool.c
|
||||
wlr_tablet_pad.c
|
||||
)
|
||||
|
||||
target_link_libraries(wlr-types
|
||||
wlr-util
|
||||
wlr-render
|
||||
${WAYLAND_LIBRARIES}
|
||||
)
|
9
types/meson.build
Normal file
9
types/meson.build
Normal file
|
@ -0,0 +1,9 @@
|
|||
wlr_files += files(
|
||||
'wlr_input_device.c',
|
||||
'wlr_keyboard.c',
|
||||
'wlr_output.c',
|
||||
'wlr_pointer.c',
|
||||
'wlr_tablet_pad.c',
|
||||
'wlr_tablet_tool.c',
|
||||
'wlr_touch.c',
|
||||
)
|
|
@ -206,7 +206,7 @@ bool wlr_output_set_cursor(struct wlr_output *output,
|
|||
output->cursor.texture = wlr_render_surface_init(output->cursor.renderer);
|
||||
}
|
||||
|
||||
wlr_surface_attach_pixels(output->cursor.texture, WL_SHM_FORMAT_XBGR8888,
|
||||
wlr_surface_attach_pixels(output->cursor.texture, WL_SHM_FORMAT_ABGR8888,
|
||||
stride, width, height, buf);
|
||||
|
||||
return true;
|
||||
|
|
|
@ -1,6 +0,0 @@
|
|||
add_library(wlr-util STATIC
|
||||
list.c
|
||||
log.c
|
||||
)
|
||||
|
||||
target_link_libraries(wlr-util m)
|
4
util/meson.build
Normal file
4
util/meson.build
Normal file
|
@ -0,0 +1,4 @@
|
|||
wlr_files += files(
|
||||
'list.c',
|
||||
'log.c',
|
||||
)
|
Loading…
Reference in a new issue