Update to hyprland pkg-config

This also allows hy3 to be built as an output
This commit is contained in:
outfoxxed 2023-04-27 11:14:11 -07:00
parent 4c95fc5737
commit e57d1aec4c
No known key found for this signature in database
GPG key ID: 4C88A185FB89301E
8 changed files with 53 additions and 55 deletions

View file

@ -10,12 +10,8 @@ if(CMAKE_EXPORT_COMPILE_COMMANDS)
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
endif()
IF(NOT DEFINED ENV{HYPRLAND_HEADERS})
message(FATAL_ERROR "$HYPRLAND_HEADERS is unset")
ENDIF()
find_package(PkgConfig REQUIRED)
pkg_check_modules(DEPS REQUIRED pixman-1 libdrm)
pkg_check_modules(DEPS REQUIRED hyprland pixman-1 libdrm)
add_library(hy3 SHARED
src/main.cpp
@ -23,7 +19,6 @@ add_library(hy3 SHARED
src/SelectionHook.cpp
)
target_include_directories(hy3 PRIVATE
${DEPS_INCLUDE_DIRS}
$ENV{HYPRLAND_HEADERS}
)
target_include_directories(hy3 PRIVATE ${DEPS_INCLUDE_DIRS})
install(TARGETS hy3 LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

54
flake.lock generated
View file

@ -1,12 +1,15 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1678901627,
"narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
@ -23,11 +26,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1680645538,
"narHash": "sha256-H9gAx2U3XKVoI2WjwbOXULL4TYj9y7ctxBB4up0v9tI=",
"lastModified": 1682603803,
"narHash": "sha256-NY9nVAdB7UyInu2vPx/DIUVNZ83t4RdP16QY9DTIn4s=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "a80ba54bbc6a423ab0e79730442e09aea832d9d6",
"rev": "f23455e592bca14e0abd9249de467cc71cd2850e",
"type": "github"
},
"original": {
@ -44,11 +47,11 @@
]
},
"locked": {
"lastModified": 1671839510,
"narHash": "sha256-+PY1qqJfmZzzROgcIY4I7AkCwpnC+qBIYk2eFoA9RWc=",
"lastModified": 1681065697,
"narHash": "sha256-QPzwwlGKX95tl6ZEshboZbEwwAXww6lNLdVYd6T9Mrc=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "b8f55e02a328c47ed373133c52483bbfa20a1b75",
"rev": "4d29e48433270a2af06b8bc711ca1fe5109746cd",
"type": "github"
},
"original": {
@ -59,11 +62,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1680487167,
"narHash": "sha256-9FNIqrxDZgSliGGN2XJJSvcDYmQbgOANaZA4UWnTdg4=",
"lastModified": 1682453498,
"narHash": "sha256-WoWiAd7KZt5Eh6n+qojcivaVpnXKqBsVgpixpV2L9CE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "53dad94e874c9586e71decf82d972dfb640ef044",
"rev": "c8018361fa1d1650ee8d4b96294783cf564e8a7f",
"type": "github"
},
"original": {
@ -83,15 +86,30 @@
]
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"wlroots": {
"flake": false,
"locked": {
"host": "gitlab.freedesktop.org",
"lastModified": 1680629978,
"narHash": "sha256-2iVx5zqU2CpMgmtVadsHSkhkAsoxAWKQp6RQqt2OgQY=",
"lastModified": 1682436395,
"narHash": "sha256-GGEjkQO9m7YLYIXIXM76HWdhjg4Ye+oafOtyaFAYKI4=",
"owner": "wlroots",
"repo": "wlroots",
"rev": "835208db98a29431fa687c9506f4b43fe645ff65",
"rev": "6830bfc17fd94709e2cdd4da0af989f102a26e59",
"type": "gitlab"
},
"original": {
@ -113,11 +131,11 @@
]
},
"locked": {
"lastModified": 1673116118,
"narHash": "sha256-eR0yDSkR2XYMesfdRWJs25kAdXET2mbNNHu5t+KUcKA=",
"lastModified": 1682439384,
"narHash": "sha256-zHDa8LCZs05TZHQSIZ3ucwyMPglBGHcqTBzfkLjYXTM=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "d479c846531fd0e1d2357c9588b8310a2b859ef2",
"rev": "c0e233955568fbea4e859336f6d3d14d51294d7c",
"type": "github"
},
"original": {

View file

@ -8,8 +8,8 @@
outputs = { nixpkgs, hyprland, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs { inherit system; };
hyprpkgs = hyprland.packages.${system};
in {
hyprland_pkg = hyprland.packages.${system}.hyprland;
in rec {
packages.default = pkgs.gcc12Stdenv.mkDerivation {
pname = "hy3";
version = "0.1";
@ -17,35 +17,21 @@
src = ./.;
nativeBuildInputs = with pkgs; [
hyprland_pkg.dev
cmake
pkg-config
];
#HYPRLAND_HEADERS = hyprpkgs.hyprland.src; - TODO
] ++ hyprland_pkg.buildInputs;
};
devShells.default = pkgs.mkShell.override { stdenv = pkgs.gcc12Stdenv; } {
name = "hy3-shell";
nativeBuildInputs = with pkgs; [
cmake
pkg-config
nativeBuildInputs = with pkgs; [
clang-tools_15
bear
];
buildInputs = with pkgs; [
hyprpkgs.wlroots-hyprland
libdrm
pixman
];
inputsFrom = [
hyprpkgs.hyprland
hyprpkgs.wlroots-hyprland
];
#HYPRLAND_HEADERS = hyprpkgs.hyprland.src; - TODO
inputsFrom = [ packages.default ];
};
});
}

View file

@ -2,7 +2,7 @@
#include "Hy3Layout.hpp"
#include "SelectionHook.hpp"
#include <src/Compositor.hpp>
#include <hyprland/src/Compositor.hpp>
Hy3GroupData::Hy3GroupData(Hy3GroupLayout layout): layout(layout) {}

View file

@ -1,7 +1,7 @@
#pragma once
#include <list>
#include <src/layout/IHyprLayout.hpp>
#include <hyprland/src/layout/IHyprLayout.hpp>
class Hy3Layout;
struct Hy3Node;

View file

@ -1,7 +1,6 @@
#include "globals.hpp"
#include "src/Window.hpp"
#include <src/plugins/PluginAPI.hpp>
#include <src/Compositor.hpp>
#include <hyprland/src/plugins/PluginAPI.hpp>
#include <hyprland/src/Compositor.hpp>
inline CFunctionHook* g_LastSelectionHook = nullptr;

View file

@ -1,4 +1,4 @@
#include <src/plugins/PluginAPI.hpp>
#include <hyprland/src/plugins/PluginAPI.hpp>
#include "Hy3Layout.hpp"
inline HANDLE PHANDLE = nullptr;

View file

@ -1,5 +1,5 @@
#include <src/plugins/PluginAPI.hpp>
#include <src/Compositor.hpp>
#include <hyprland/src/plugins/PluginAPI.hpp>
#include <hyprland/src/Compositor.hpp>
#include "globals.hpp"