Open AlexJakeGreen opened 1 year ago
Getting the exact same issue with the current master build, seems like 0.8 is gonna come with some breaking changes...
Can't build it either on wayfire 0.7.5 :/
I've started working on getting this to work with the latest wayfire API changes. It builds again, but doesn't work yet / is extremely crashy: https://github.com/AhoyISki/Firedecor/compare/main...mntmn:Firedecor:main
Just a little updated (or more recent) status.
Please let me know if I can provide any information, or try to do anything, that can be of use.
On a reasonable fresh Arch install with wayfire 0.7.5-1 (that's without xwayland, so I can't use the AUR package wayfire-firedecor-git), I follow the instroctions for building from source:
(~/GIT)$ git clone https://github.com/AhoyISki/Firedecor
Cloning into 'Firedecor'...
remote: Enumerating objects: 1423, done.
remote: Counting objects: 100% (184/184), done.
remote: Compressing objects: 100% (128/128), done.
remote: Total 1423 (delta 111), reused 122 (delta 56), pack-reused 1239
Receiving objects: 100% (1423/1423), 8.69 MiB | 1.55 MiB/s, done.
Resolving deltas: 100% (857/857), done.
(~/GIT/Firedecor)$ meson build
The Meson build system
Version: 1.1.1
Source dir: /home/username/GIT/Firedecor
Build dir: /home/username/GIT/Firedecor/build
Build type: native build
Project name: firedecor
Project version: 0.1
C compiler for the host machine: cc (gcc 13.1.1 "cc (GCC) 13.1.1 20230429")
C linker for the host machine: cc ld.bfd 2.40.0
C++ compiler for the host machine: c++ (gcc 13.1.1 "c++ (GCC) 13.1.1 20230429")
C++ linker for the host machine: c++ ld.bfd 2.40.0
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.8.1)
Run-time dependency wayfire found: YES 0.7.5
Run-time dependency wf-config found: YES 0.7.1
Run-time dependency wlroots found: YES 0.16.2
Run-time dependency librsvg-2.0 found: YES 2.56.0
Run-time dependency pixman-1 found: YES 0.42.2
Run-time dependency cairo found: YES 1.17.8
Run-time dependency pango found: YES 1.50.14
Run-time dependency pangocairo found: YES 1.50.14
Run-time dependency glib-2.0 found: YES 2.76.3
Run-time dependency gdk-pixbuf-2.0 found: YES 2.42.10
Run-time dependency Boost found: YES 1.81.0 (/usr)
Message:
----------------
firedecor 0.1
----------------
Build targets in project: 1
Found ninja-1.11.1 at /usr/bin/ninja
Generating targets: 0%| |
Writing build.ninja: 0%| | 0
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
(~/GIT/Firedecor)$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/username/GIT/Firedecor/build
ninja: Entering directory `/home/username/GIT/Firedecor/build'
[1/6] Compiling C++ object src/libfiredecor.so.p/firedecor-subsurface.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-subsurface.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-subsurface.cpp.o -MF src/libfiredecor.so.p/firedecor-subsurface.cpp.o.d -o src/libfiredecor.so.p/firedecor-subsurface.cpp.o -c ../src/firedecor-subsurface.cpp
In file included from ../src/firedecor-subsurface.cpp:14:
../src/firedecor-layout.hpp:4:10: fatal error: wayfire/region.hpp: No such file or directory
4 | #include <wayfire/region.hpp>
| ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[2/6] Compiling C++ object src/libfiredecor.so.p/firedecor-layout.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-layout.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-layout.cpp.o -MF src/libfiredecor.so.p/firedecor-layout.cpp.o.d -o src/libfiredecor.so.p/firedecor-layout.cpp.o -c ../src/firedecor-layout.cpp
In file included from ../src/firedecor-layout.cpp:6:
../src/firedecor-layout.hpp:4:10: fatal error: wayfire/region.hpp: No such file or directory
4 | #include <wayfire/region.hpp>
| ^~~~~~~~~~~~~~~~~~~~
compilation terminated.
[3/6] Compiling C++ object src/libfiredecor.so.p/firedecor-buttons.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-buttons.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-buttons.cpp.o -MF src/libfiredecor.so.p/firedecor-buttons.cpp.o.d -o src/libfiredecor.so.p/firedecor-buttons.cpp.o -c ../src/firedecor-buttons.cpp
In file included from ../src/firedecor-buttons.cpp:4:
../src/firedecor-buttons.hpp:75:27: error: ‘render_target_t’ in namespace ‘wf’ does not name a type
75 | void render(const wf::render_target_t& buffer, wf::geometry_t geometry,
| ^~~~~~~~~~~~~~~
../src/firedecor-buttons.cpp:72:33: error: ‘render_target_t’ in namespace ‘wf’ does not name a type
72 | void button_t::render(const wf::render_target_t& fb, wf::geometry_t geometry,
| ^~~~~~~~~~~~~~~
../src/firedecor-buttons.cpp: In member function ‘void wf::firedecor::button_t::render(const int&, wf::geometry_t, wf::geometry_t)’:
../src/firedecor-buttons.cpp:74:25: error: no matching function for call to ‘render_begin(const int&)’
74 | OpenGL::render_begin(fb);
| ~~~~~~~~~~~~~~~~~~~~^~~~
In file included from ../src/firedecor-buttons.cpp:1:
/usr/include/wayfire/opengl.hpp:179:6: note: candidate: ‘void OpenGL::render_begin()’
179 | void render_begin(); // use if you just want to bind GL context but won't draw
| ^~~~~~~~~~~~
/usr/include/wayfire/opengl.hpp:179:6: note: candidate expects 0 arguments, 1 provided
/usr/include/wayfire/opengl.hpp:180:6: note: candidate: ‘void OpenGL::render_begin(const wf::framebuffer_base_t&)’
180 | void render_begin(const wf::framebuffer_base_t& fb);
| ^~~~~~~~~~~~
/usr/include/wayfire/opengl.hpp:180:49: note: no known conversion for argument 1 from ‘const int’ to ‘const wf::framebuffer_base_t&’
180 | void render_begin(const wf::framebuffer_base_t& fb);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/usr/include/wayfire/opengl.hpp:181:6: note: candidate: ‘void OpenGL::render_begin(int32_t, int32_t, uint32_t)’
181 | void render_begin(int32_t viewport_width, int32_t viewport_height, uint32_t fb);
| ^~~~~~~~~~~~
/usr/include/wayfire/opengl.hpp:181:6: note: candidate expects 3 arguments, 1 provided
../src/firedecor-buttons.cpp:75:8: error: request for member ‘logic_scissor’ in ‘fb’, which is of non-class type ‘const int’
75 | fb.logic_scissor(scissor);
| ^~~~~~~~~~~~~
../src/firedecor-buttons.cpp:76:48: error: invalid initialization of reference of type ‘const wf::framebuffer_t&’ from expression of type ‘const int’
76 | OpenGL::render_texture(button_texture.tex, fb, geometry, {1, 1, 1, 1},
| ^~
/usr/include/wayfire/opengl.hpp:263:30: note: in passing argument 2 of ‘void OpenGL::render_texture(wf::texture_t, const wf::framebuffer_t&, const wf::geometry_t&, glm::vec4, uint32_t)’
263 | const wf::framebuffer_t& framebuffer,
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
../src/firedecor-buttons.cpp: In lambda function:
../src/firedecor-buttons.cpp:94:32: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
94 | this->idle_damage.run_once([=] () {
| ^
../src/firedecor-buttons.cpp:94:32: note: add explicit ‘this’ or ‘*this’ capture
[4/6] Compiling C++ object src/libfiredecor.so.p/firedecor.cpp.o
FAILED: src/libfiredecor.so.p/firedecor.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor.cpp.o -MF src/libfiredecor.so.p/firedecor.cpp.o.d -o src/libfiredecor.so.p/firedecor.cpp.o -c ../src/firedecor.cpp
In file included from ../src/firedecor-theme.hpp:4,
from ../src/firedecor-subsurface.hpp:5,
from ../src/firedecor.cpp:8:
../src/firedecor-buttons.hpp:75:27: error: ‘render_target_t’ in namespace ‘wf’ does not name a type
75 | void render(const wf::render_target_t& buffer, wf::geometry_t geometry,
| ^~~~~~~~~~~~~~~
../src/firedecor.cpp: In lambda function:
../src/firedecor.cpp:35:43: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
35 | wf::signal_connection_t view_updated{ [=] (wf::signal_data_t *data) {
| ^
../src/firedecor.cpp:35:43: note: add explicit ‘this’ or ‘*this’ capture
[5/6] Compiling C++ object src/libfiredecor.so.p/firedecor-theme.cpp.o
FAILED: src/libfiredecor.so.p/firedecor-theme.cpp.o
c++ -Isrc/libfiredecor.so.p -Isrc -I../src -I/usr/include/libevdev-1.0 -I/usr/include/libxml2 -I/usr/include/libdrm -I/usr/include/pixman-1 -I/usr/include/librsvg-2.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/cairo -I/usr/include/freetype2 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/fribidi -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -std=c++20 -O0 -g -DWLR_USE_UNSTABLE -DWAYFIRE_PLUGIN -fPIC -pthread -MD -MQ src/libfiredecor.so.p/firedecor-theme.cpp.o -MF src/libfiredecor.so.p/firedecor-theme.cpp.o.d -o src/libfiredecor.so.p/firedecor-theme.cpp.o -c ../src/firedecor-theme.cpp
In file included from ../src/firedecor-theme.hpp:4,
from ../src/firedecor-theme.cpp:10:
../src/firedecor-buttons.hpp:75:27: error: ‘render_target_t’ in namespace ‘wf’ does not name a type
75 | void render(const wf::render_target_t& buffer, wf::geometry_t geometry,
| ^~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
No file named region.hpp exist anywhere on my computer, although I see it in the API subfolder of the Wayfire source files.
Please anybody able to circumvent this problem. I need this plugin
I'm getting the same error attempting to compile this from source in Gentoo under Wayfire 0.7.5, so it's not just a question of the 0.8.x series breaking things.
That particular render_target_t type is defined in wayfire/opengl.hpp, which firedecor-buttons.cpp does explicitly pull in, so I don't understand why this isn't being exported...
same error as @Taqras on 0.7.5
same error as @Taqras on 0.7.5
At the moment of writing the latest version in git is https://github.com/WayfireWM/wayfire/commit/b8b8486613b297b8fe02ce1a0439e18577cfbbea
Additional Info:
surface.hpp
has gone in https://github.com/WayfireWM/wayfire/commit/fe2221da32e6e81c229b2fa11bb7a87acdc3c059singleton-plugin.hpp
is also absent in the latest git version