mirror of
https://github.com/hyprwm/hyprland-protocols.git
synced 2025-12-20 05:00:02 +01:00
meson -> cmake
This commit is contained in:
parent
bd153e76f7
commit
3f3860b869
4 changed files with 50 additions and 74 deletions
41
CMakeLists.txt
Normal file
41
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
cmake_minimum_required(VERSION 3.20)
|
||||
|
||||
file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/VERSION" HYPRLAND_PROTOCOLS_VERSION
|
||||
LIMIT_COUNT 1)
|
||||
string(STRIP "${HYPRLAND_PROTOCOLS_VERSION}" HYPRLAND_PROTOCOLS_VERSION)
|
||||
|
||||
project(
|
||||
hyprland-protocols
|
||||
VERSION ${HYPRLAND_PROTOCOLS_VERSION}
|
||||
LANGUAGES NONE)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
|
||||
set(PROTOCOL_FILES
|
||||
protocols/hyprland-toplevel-export-v1.xml
|
||||
protocols/hyprland-global-shortcuts-v1.xml
|
||||
protocols/hyprland-focus-grab-v1.xml
|
||||
protocols/hyprland-ctm-control-v1.xml
|
||||
protocols/hyprland-surface-v1.xml
|
||||
protocols/hyprland-lock-notify-v1.xml
|
||||
protocols/hyprland-toplevel-mapping-v1.xml
|
||||
protocols/hyprland-input-capture-v1.xml)
|
||||
|
||||
foreach(PROTOCOL_FILE ${PROTOCOL_FILES})
|
||||
get_filename_component(PROTOCOL_DIR ${PROTOCOL_FILE} DIRECTORY)
|
||||
install(
|
||||
FILES ${PROTOCOL_FILE}
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/hyprland-protocols/${PROTOCOL_DIR}")
|
||||
endforeach()
|
||||
|
||||
# Configure pkg-config file
|
||||
set(prefix "${CMAKE_INSTALL_PREFIX}")
|
||||
set(datarootdir "\${prefix}/${CMAKE_INSTALL_DATADIR}")
|
||||
set(abs_top_srcdir "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
set(PACKAGE "hyprland-protocols")
|
||||
|
||||
configure_file(hyprland-protocols.pc.in hyprland-protocols.pc @ONLY)
|
||||
|
||||
# Install pkg-config file
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/hyprland-protocols.pc"
|
||||
DESTINATION "${CMAKE_INSTALL_DATADIR}/pkgconfig")
|
||||
12
README.md
12
README.md
|
|
@ -1,4 +1,5 @@
|
|||
# hyprland-protocols
|
||||
|
||||
Wayland protocol extensions for Hyprland.
|
||||
|
||||
This repository exists in an effort to bridge the gap between Hyprland and KDE/Gnome's functionality,
|
||||
|
|
@ -10,6 +11,7 @@ a set of protocols Hyprland uses to plumb some things / add some useful features
|
|||
Some of the protocols here also do not belong in w-p, as they are specific to Hyprland.
|
||||
|
||||
## Finished protocols
|
||||
|
||||
- `hyprland_toplevel_export` -> for exporting toplevel buffers (aka. windows) for screensharing
|
||||
- `hyprland_global_keybindings` -> for managing global keybinds via D-Bus.
|
||||
- `hyprland_focus_grab` -> for grabbing input focus, primarily for complex context menus.
|
||||
|
|
@ -20,14 +22,15 @@ Some of the protocols here also do not belong in w-p, as they are specific to Hy
|
|||
- `hyprland_input_capture` -> for EIS input capture.
|
||||
|
||||
## Building
|
||||
|
||||
```sh
|
||||
git clone https://github.com/hyprwm/hyprland-protocols
|
||||
cd hyprland-protocols
|
||||
meson setup build
|
||||
sudo meson install -C build
|
||||
git clone https://github.com/hyprwm/hyprland-protocols && cd hyprland-protocols
|
||||
cmake -S . -B ./build
|
||||
cmake --build ./build
|
||||
```
|
||||
|
||||
## Contributing
|
||||
|
||||
Adding new protocols is *discouraged*, as most things you think of can already be done one way or another.
|
||||
However, if the protocol has a good reason to be, and you have an impl ready, feel free to make a PR.
|
||||
We're always up for a discussion to improve things!
|
||||
|
|
@ -35,4 +38,3 @@ We're always up for a discussion to improve things!
|
|||
Fixing typos / adding explanations to existing protocols - welcome.
|
||||
|
||||
Adding functionality to protocols / new revisions - welcome, if accompanied with a reason and an impl.
|
||||
|
||||
|
|
|
|||
66
meson.build
66
meson.build
|
|
@ -1,66 +0,0 @@
|
|||
project('hyprland-protocols',
|
||||
version: run_command('cat', 'VERSION', check: true).stdout().strip(),
|
||||
meson_version: '>= 0.60.3',
|
||||
)
|
||||
|
||||
hyprland_protocols_version = meson.project_version()
|
||||
|
||||
fs = import('fs')
|
||||
|
||||
protocols = {
|
||||
'hyprland-toplevel-export': ['v1'],
|
||||
'hyprland-toplevel-mapping': ['v1'],
|
||||
'hyprland-global-shortcuts': ['v1'],
|
||||
'hyprland-focus-grab': ['v1'],
|
||||
'hyprland-ctm-control': ['v1'],
|
||||
'hyprland-surface': ['v1'],
|
||||
'hyprland-lock-notify': ['v1'],
|
||||
'hyprland-input-capture': ['v1'],
|
||||
}
|
||||
|
||||
protocol_files = []
|
||||
|
||||
foreach name : protocols.keys()
|
||||
foreach version : protocols.get(name)
|
||||
protocol_files += [
|
||||
'protocols/@0@-@1@.xml'.format(name, version)
|
||||
]
|
||||
endforeach
|
||||
endforeach
|
||||
|
||||
foreach protocol_file : protocol_files
|
||||
protocol_install_dir = fs.parent(join_paths(
|
||||
get_option('datadir'),
|
||||
'hyprland-protocols',
|
||||
protocol_file,
|
||||
))
|
||||
install_data(
|
||||
protocol_file,
|
||||
install_dir: protocol_install_dir,
|
||||
)
|
||||
endforeach
|
||||
|
||||
hyprland_protocols_srcdir = meson.current_source_dir()
|
||||
|
||||
pkgconfig_configuration = configuration_data()
|
||||
pkgconfig_configuration.set('prefix', get_option('prefix'))
|
||||
pkgconfig_configuration.set('datarootdir', '${prefix}/@0@'.format(get_option('datadir')))
|
||||
pkgconfig_configuration.set('abs_top_srcdir', hyprland_protocols_srcdir)
|
||||
pkgconfig_configuration.set('PACKAGE', 'hyprland-protocols')
|
||||
pkgconfig_configuration.set('HYPRLAND_PROTOCOLS_VERSION', hyprland_protocols_version)
|
||||
|
||||
pkg_install_dir = join_paths(get_option('datadir'), 'pkgconfig')
|
||||
configure_file(
|
||||
input: 'hyprland-protocols.pc.in',
|
||||
output: 'hyprland-protocols.pc',
|
||||
configuration: pkgconfig_configuration,
|
||||
install_dir: pkg_install_dir,
|
||||
)
|
||||
|
||||
hyprland_protocols = declare_dependency(
|
||||
variables: {
|
||||
'pkgdatadir': hyprland_protocols_srcdir,
|
||||
},
|
||||
)
|
||||
|
||||
meson.override_dependency('hyprland-protocols', hyprland_protocols)
|
||||
|
|
@ -1,8 +1,7 @@
|
|||
{
|
||||
lib,
|
||||
stdenv,
|
||||
meson,
|
||||
ninja,
|
||||
cmake,
|
||||
version,
|
||||
}:
|
||||
stdenv.mkDerivation {
|
||||
|
|
@ -11,7 +10,7 @@ stdenv.mkDerivation {
|
|||
|
||||
src = ../.;
|
||||
|
||||
nativeBuildInputs = [meson ninja];
|
||||
nativeBuildInputs = [cmake];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/hyprwm/hyprland-protocols";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue