catsout / wallpaper-engine-kde-plugin

A kde wallpaper plugin integrating wallpaper engine
https://store.kde.org/p/1475528/
GNU General Public License v2.0
1.63k stars 65 forks source link

plasma 6 support ? #367

Open Fluxy05 opened 4 months ago

Fluxy05 commented 4 months ago

hello i just wanted to know if this plugin will be available in plasma 6 ,thank you

xxhinotorixx commented 4 months ago

I'm curious as well. One of the best KDE plugins ever! Totally look forward to installing it again for Plasma 6.

lgdsgd2000 commented 4 months ago

Migrate to KDE Plasma 6 There is an unmerged request, also check out this fork.

Crono141 commented 4 months ago

I can't get that fork to build.

/home/joel/Build/wallpaper-engine-kde-plugin/src/backend_mpv/MpvBackend.cpp:37:14: fatal error: QX11Info: No such file or directory 37 | # include // IWYU pragma: keep | ^~~~~~ compilation terminated.

I have the required dependencies for Qt5, but for some reason it isn't going. QX11Info, and qtx11extras in general were removed in Qt6, so not sure what needs to happen on the code side to make this work.

@fxzjshm can you advise?

hydranmenace commented 4 months ago

I was just looking for plasma 6 support after an update and found this. Great plugin. Please keep it alive.

zjypls commented 4 months ago

I can't get that fork to build.

/home/joel/Build/wallpaper-engine-kde-plugin/src/backend_mpv/MpvBackend.cpp:37:14: fatal error: QX11Info: No such file or directory 37 | # include // IWYU pragma: keep | ^~~~~~ compilation terminated.

I have the required dependencies for Qt5, but for some reason it isn't going. QX11Info, and qtx11extras in general were removed in Qt6, so not sure what needs to happen on the code side to make this work.

@fxzjshm can you advise?

i build that fork successfully with qt5 , but make install_pkg error image

fxzjshm commented 4 months ago

@Crono141 related code is

#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
#    include <QX11Info> // IWYU pragma: keep
#endif

which should not be used if compiling with Qt 6, that's strange.

@zjypls do not use the fork with Qt 5 because the package structure and QML code is not compatible with Qt 5, just use the original version.

zjypls commented 4 months ago

this fork work good with plasma 6 on my Arch now 😃 image although run make install_pkg on build directory still give error output:

kf.package: Invalid metadata for package structure "Plasma/Wallpaper"
Package type "Plasma/Wallpaper" not found
kf.package: Invalid metadata for package structure "Plasma/Wallpaper"
kf.package: Cannot set a path in a package without structure "/home/z/Documents/GitHub/wallpaper-engine-kde-plugin/plugin"
kf.package: Invalid metadata for package structure "Plasma/Wallpaper"
Error:plugin com.github.casout.wallpaperEngineKde not install 。
make[3]: *** [CMakeFiles/install_pkg.dir/build.make:70:CMakeFiles/install_pkg] Error 2
make[2]: *** [CMakeFiles/Makefile2:667:CMakeFiles/install_pkg.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:674:CMakeFiles/install_pkg.dir/rule] Error 2
make: *** [Makefile:221:install_pkg] Error 2

but i copy the every file in plugin folder to my local plugin folder like:

cp -r ../plugin/* ~/.local/share/plasma/wallpapers/wallpaper-engine-kde-plugin/

and install the fork build with qt6,it works good😃

queenbiscuit311 commented 4 months ago

this fork work good with plasma 6 on my Arch now 😃 image although run make install_pkg on build directory still give error output:

kf.package: Invalid metadata for package structure "Plasma/Wallpaper"
Package type "Plasma/Wallpaper" not found
kf.package: Invalid metadata for package structure "Plasma/Wallpaper"
kf.package: Cannot set a path in a package without structure "/home/z/Documents/GitHub/wallpaper-engine-kde-plugin/plugin"
kf.package: Invalid metadata for package structure "Plasma/Wallpaper"
Error:plugin com.github.casout.wallpaperEngineKde not install 。
make[3]: *** [CMakeFiles/install_pkg.dir/build.make:70:CMakeFiles/install_pkg] Error 2
make[2]: *** [CMakeFiles/Makefile2:667:CMakeFiles/install_pkg.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:674:CMakeFiles/install_pkg.dir/rule] Error 2
make: *** [Makefile:221:install_pkg] Error 2

but i copy the every file in plugin folder to my local plugin folder like:

cp -r ../plugin/* ~/.local/share/plasma/wallpapers/wallpaper-engine-kde-plugin/

and install the fork build with qt6,it works good😃

what did you use to make it build? mine can't get past make: *** [Makefile:136: all] Error 2

zjypls commented 4 months ago

what did you use to make it build? mine can't get past make: *** [Makefile:136: all] Error 2

@queenbiscuit311

do you mean build tool ? version output like this :

$ cmake --version cmake version 3.28.3 $ gcc -v gcc version 13.2.1 20230801 (GCC)

and run

cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6
make -j 15

on build directory , my directory like : image

queenbiscuit311 commented 4 months ago

what did you use to make it build? mine can't get past make: *** [Makefile:136: all] Error 2

@queenbiscuit311

do you mean build tool ? version output like this :

$ cmake --version cmake version 3.28.3 $ gcc -v gcc version 13.2.1 20230801 (GCC)

and run

cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6
make -j 15

on build directory , my directory like : image

these instructions do in fact allow it to build, but for me its just a black screen oddly enough

zjypls commented 4 months ago

these instructions do in fact allow it to build, but for me its just a black screen oddly enough

cmake or your compiler give some other message ? , like include error or symbol not found

queenbiscuit311 commented 4 months ago

There's some of the usual compiler warnings but according to the logs everything compiled 100% successfully. make install_pkg gives same error as yours but when i copy it manually it doesnt work

zjypls commented 4 months ago

There's some of the usual compiler warnings but according to the logs everything compiled 100% successfully. make install_pkg gives same error as yours but when i copy it manually it doesnt work

have you install the libraries you build ? my library install in there: image and , you should that mean you install it successfully , and choose a wallpaper , but your desktop just a black ? i find out that it seem not work with qtmediaplayer , this make desktop just a black , i change it to mpv in settings image

queenbiscuit311 commented 4 months ago

its less that desktop is black and more that it appears to just be busted entirely. here's what i'm seeing image

queenbiscuit311 commented 4 months ago

let me double check the library actually

zjypls commented 4 months ago

its less that desktop is black and more that it appears to just be busted entirely. here's what i'm seeing image

oh , it looks so strange , i have got the same situation before, because i just copy the metadata.json to the folder

cp GitHub/wallpaper-engine-kde-plugin/plugin/metadata.json ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde/

and then i fixed it by move the all old files to a backup folder , and copy the new files to that local folder

mv ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde/* ~/backup/wallper-old
cp GitHub/wallpaper-engine-kde-plugin/plugin/* ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde -r

this make it work well

Crono141 commented 4 months ago

Seems for Qt6 there are additional dependents. I had to install QT6-kpackage-devel and qt6-qtbase-private-devel to get it to build. With Catsout's new qt6 branch, it built fine, make install_pkg reported it worked, and make install reported it worked. However, the plugin does NOT show up in the KDE Wallpaper picker.

This is QT6, using the cmake command cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6

queenbiscuit311 commented 4 months ago

There's some of the usual compiler warnings but according to the logs everything compiled 100% successfully. make install_pkg gives same error as yours but when i copy it manually it doesnt work

have you install the libraries you build ? my library install in there: image and , you should that mean you install it successfully , and choose a wallpaper , but your desktop just a black ? i find out that it seem not work with qtmediaplayer , this make desktop just a black , i change it to mpv in settings image

okay so i notived that when i run sudo make install it doesnt actually install the library files and they dont seem to be present in the build files either. going to try to see if i can find them

edit: got library still not working unfortunately

queenbiscuit311 commented 4 months ago

image i found an error message, but not sure what to do about it

edit: just found out that im really dumb and still had aur package for plasma 5 build installed. let me see if i can fix it by unisntalling that

zjypls commented 4 months ago

image i found an error message, but not sure what to do about it

edit: just found out that im really dumb and still had aur package for plasma 5 build installed. let me see if i can fix it by unisntalling that

this seem to say that your qml module lost ? this is what my qml module folder like : image

queenbiscuit311 commented 4 months ago

Okay i figured it out. first i had to uninstall plasma5-wallpapers-wallpaper-engine-git from aur, then I had to build, run sudo make install, but instead of what you did I needed to run

cp -r ../plugin/* ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde

The json file and javascript programs inside the plugin expect the program to be in a directory with a specific name and it doesn't work if you name it something else. not sure why it worked for you without doing this. either way it's fully operational now!

image

Looks like the procedure is as follows:

git clone https://github.com/fxzjshm/wallpaper-engine-kde-plugin.git

cd wallpaper-engine-kde-plugin

git submodule update --init

mkdir build && cd build

cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6

make -j$(nproc)

sudo make install

mkdir ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde

cp -r ../plugin/* ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde

Also this means that the directory coded into the plugin is misspelled lol

Crono141 commented 4 months ago

I think you forgot to git submodule update --init before making your build directory. Otherwise it builds and installs fine. But I am still stuck when I open it: image I have double checked and I already have qmlwebmodule and qtwebsockets for qt6 installed.

queenbiscuit311 commented 4 months ago

I think you forgot to git submodule update --init before making your build directory. Otherwise it builds and installs fine. But I am still stuck when I open it: image I have double checked and I already have qmlwebmodule and qtwebsockets for qt6 installed.

which distro are you on?

(sorry for sending this again github sent this twice then when I deleted one of the duplicates it deleted both)

TeamBattino commented 4 months ago
git clone https://github.com/fxzjshm/wallpaper-engine-kde-plugin.git

Hasn't this been merged into the official branch? also has anyone gotten the AUR package (plasma6-wallpapers-wallpaper-engine-git) to work?

frozht commented 4 months ago

Everyone, make sure to install the new qt6 packages. For Fedora (replace other distros commands qt5 -> qt6, x11 package was missing for me): sudo dnf install vulkan-headers plasma-workspace-devel kf6-plasma-devel gstreamer1-libav lz4-devel mpv-libs-devel python3-websockets qt6-qtbase-private-devel qt6-qtwebchannel-devel qt6-qtwebsockets-devel cmake

frozht commented 4 months ago

cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6

I get this error when running that on Fedora:

-- Could NOT find KF6Package (missing: KF6Package_DIR)
-- Could NOT find KF6Package: found neither KF6PackageConfig.cmake nor kf6package-config.cmake 
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find KF6 (missing: Package) (Required is at least version
  "5.68.0")
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/ECM/find-modules/FindKF6.cmake:93 (find_package_handle_standard_args)
  CMakeLists.txt:34 (find_package)
Crono141 commented 4 months ago

cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6

I get this error when running that on Fedora:

-- Could NOT find KF6Package (missing: KF6Package_DIR)
-- Could NOT find KF6Package: found neither KF6PackageConfig.cmake nor kf6package-config.cmake 
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find KF6 (missing: Package) (Required is at least version
  "5.68.0")
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/ECM/find-modules/FindKF6.cmake:93 (find_package_handle_standard_args)
  CMakeLists.txt:34 (find_package)

You need kf6-kpackage-devel.x86_64 and qt6-qtbase-private-devel.x86_64 as well.

Crono141 commented 4 months ago

which distro are you on?

(sorry for sending this again github sent this twice then when I deleted one of the duplicates it deleted both)

Nobara 39, steam deck. I installed qt6 dependencies per @frozht 's post, and rebuilt, but still have the qml error message in the wallpaper picker. I also tried rebuilding from catsout's repository since he's made several commits today, but get errors in cmake:

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Qml" does
not agree with the value of QT_MAJOR_VERSION already determined
for "WallpaperEngineKde".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "mpvbackend".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "wescene-renderer-qml".
N3gD0r commented 4 months ago

which distro are you on? (sorry for sending this again github sent this twice then when I deleted one of the duplicates it deleted both)

Nobara 39, steam deck. I installed qt6 dependencies per @frozht 's post, and rebuilt, but still have the qml error message in the wallpaper picker. I also tried rebuilding from catsout's repository since he's made several commits today, but get errors in cmake:

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Qml" does
not agree with the value of QT_MAJOR_VERSION already determined
for "WallpaperEngineKde".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "mpvbackend".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "wescene-renderer-qml".

I manage to install the plugin in nobara 39. cloning this repo but switching to qt6 branch. Then in src/CMakeLists.txt remove Qt5:

find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core)

Then in plugin/contents/ui/Pyext.qml fix the typo from casout to catsout:

readonly property string file: "plasma/wallpapers/com.github.catsout.wallpaperEngineKde/contents/pyext.py"
Crono141 commented 4 months ago

I was able to build and install with those fixes, but I still have the same qml message when I go to select a wallpaper.

Did you use "cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6" or the new instruction on the readme:

cmake -B build -S . -GNinja -DUSE_PLASMAPKG=ON cmake --build build cmake --install build

N3gD0r commented 4 months ago

I used the new instructions. Including the cmake --build build --target install_pkg

zany130 commented 4 months ago

worked for me using the new instructions

just make sure to use sudo for the cmake --install build otherwise it will fail due to permissions

Crono141 commented 4 months ago

Well, turns out it was operator error. I had qt6-websockets-devel installed, but it was the i686 build, not x86_64. Installed that and my weird error went away.

That said, there is still something awry. When I went to pick my steam library from the GUI, it hung a LONG time, and then there was a crash message on the main window (behind the folder picker). Unfortunately, the critical part of the error was chopped off. That said, I was able to work around it by getting the full path of the Steam install, and pasting it into the folder selector after the crash. After I closed the window and reopened it, the wallpapers populated and I was able to choose one, and they work.

Thanks for the assists, everyone.

HAL703 commented 4 months ago

which distro are you on? (sorry for sending this again github sent this twice then when I deleted one of the duplicates it deleted both)

Nobara 39, steam deck. I installed qt6 dependencies per @frozht 's post, and rebuilt, but still have the qml error message in the wallpaper picker. I also tried rebuilding from catsout's repository since he's made several commits today, but get errors in cmake:

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Qml" does
not agree with the value of QT_MAJOR_VERSION already determined
for "WallpaperEngineKde".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "mpvbackend".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "wescene-renderer-qml".

I manage to install the plugin in nobara 39. cloning this repo but switching to qt6 branch. Then in src/CMakeLists.txt remove Qt5:

find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core)

Then in plugin/contents/ui/Pyext.qml fix the typo from casout to catsout:

readonly property string file: "plasma/wallpapers/com.github.catsout.wallpaperEngineKde/contents/pyext.py"

Hilariously, I tried almost everything listed here and it still doesn't work. I tried both repos from catsout and fxzjshm. It seems to give me a new error every time. I have all the necessary packages installed too. I installed using the instructions on the qt6 repo by catsout and the instructions from @queenbiscuit311, and it didn't help. I don't really get it. It seems to get stuck on the cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6 (or the catsout qt6 repo equivalent) command most often, and if that succeeds, then the next will fail for some bizarre reason.

fxzjshm commented 4 months ago

For configuring,

cmake .. -DQT_MAJOR_VERSION=6 -DUSE_PLASMAPKG=OFF

For installing,

Noticed that plasmapkg2 is now a wrapper of kpackagetool5, consider

kpackagetool6 -i plugin/ || kpackagetool6 -u plugin/

for installing and upgrading; or if still not working, maybe just -DUSE_PLASMAPKG=OFF.

so you can either use kpackagetool6 -i plugin/ || kpackagetool6 -u plugin/, or make install when -DUSE_PLASMAPKG=OFF

Didn't noticed the change in this repo, should have been fixed by 98bf9ff

HAL703 commented 4 months ago

For configuring,

cmake .. -DQT_MAJOR_VERSION=6 -DUSE_PLASMAPKG=OFF

For installing,

Noticed that plasmapkg2 is now a wrapper of kpackagetool5, consider

kpackagetool6 -i plugin/ || kpackagetool6 -u plugin/

for installing and upgrading; or if still not working, maybe just -DUSE_PLASMAPKG=OFF.

@fxzjshm, I used cmake .. -DQT_MAJOR_VERSION=6 -DUSE_PLASMAPKG=OFF in the build directory and it worked fine.

make install doesn't work and gives this error: image

fxzjshm commented 4 months ago

@HAL703 make then make install, for some reason install doesn't automatically build the project.

HAL703 commented 4 months ago

It works! I forgot to do make, my bad. Can't believe make install doesn't automatically build a project though. I'll update here if I have any more issues! There are a few black screens here and there but I assume those are incompatible wallpapers.

frozht commented 4 months ago

cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6

I get this error when running that on Fedora:

-- Could NOT find KF6Package (missing: KF6Package_DIR)
-- Could NOT find KF6Package: found neither KF6PackageConfig.cmake nor kf6package-config.cmake 
CMake Error at /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
  Could NOT find KF6 (missing: Package) (Required is at least version
  "5.68.0")
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
  /usr/share/ECM/find-modules/FindKF6.cmake:93 (find_package_handle_standard_args)
  CMakeLists.txt:34 (find_package)

You need QT6-kpackage-devel and qt6-qtbase-private-dev as well.

Couldn't find QT6-kpackage-devel, installed the following:

sudo dnf install kf6-kpackage-devel.x86_64
sudo dnf install qt6-qtbase-private-devel.x86_64

Editing the following line in plugin/contents/ui/Pyext.qml did NOT fix it for me:

readonly property string file: "plasma/wallpapers/com.github.catsout.wallpaperEngineKde/contents/pyext.py"

Managed to build with:

cmake .. -DUSE_PLASMAPKG=ON -DCMAKE_BUILD_TYPE=Release -DBUILD_QML=ON -DQT_MAJOR_VERSION=6

make

sudo make install

Then copied the plugin files to:

mkdir ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde

cp -r ../plugin/* ~/.local/share/plasma/wallpapers/com.github.casout.wallpaperEngineKde

That fixed it.

Crono141 commented 4 months ago

My bad. I had to recall the package name by memory, and got it a little mixed up. Will edit my comment.

That line in plugin/contents/ui/Pyext.qml needs to updated to read: readonly property string file: "plasma/wallpapers/com.github.ca**t**sout.wallpaperEngineKde/contents/pyext.py"

with a "T" in "catsout", missing in the original

frozht commented 4 months ago

My bad. I had to recall the package name by memory, and got it a little mixed up. Will edit my comment.

That line in plugin/contents/ui/Pyext.qml needs to updated to read: readonly property string file: "plasma/wallpapers/com.github.catsout.wallpaperEngineKde/contents/pyext.py"

with a "T" in "catsout", missing in the original

Yea, that's what I did, I should've put that in the comment. However, for me, that didn't work. The wallpaperEngine option wouldn't show up in the selector, even if I had the folder ~/.local/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde with the correct name as well.

I had to use casout in both the pyext.py line and as the actual folder name. It's working now, anyways.

Exw27 commented 4 months ago
CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Qml" does
not agree with the value of QT_MAJOR_VERSION already determined
for "WallpaperEngineKde".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "mpvbackend".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "wescene-renderer-qml".
RSerejo commented 4 months ago
CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Qml" does
not agree with the value of QT_MAJOR_VERSION already determined
for "WallpaperEngineKde".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "mpvbackend".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "wescene-renderer-qml".

me too

zjypls commented 4 months ago
CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Qml" does
not agree with the value of QT_MAJOR_VERSION already determined
for "WallpaperEngineKde".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "mpvbackend".

CMake Error: The INTERFACE_QT_MAJOR_VERSION property of "Qt6::Gui" does
not agree with the value of QT_MAJOR_VERSION already determined
for "wescene-renderer-qml".

I had got the same error before ,I think it is seem to be caused by the src/CMakeLists.txt line 1 :

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)

The find_package functions seem to use Qt5 instead of Qt6 , although I have both Qt5 and 6 installed . And these errors don't stop cmake from generating build files in my environment , but it make the expression be true . QT_VERSION < QT_VERSION_CHECK( 6 , 0 , 0 )

It causes the project to incorrectly contain Qt5 files , and them are removed by in Qt6 , this will cause some compile error image

I just delete Qt5 in src/CMakeLists.txt line 1 , only use Qt6

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core)

This make it work well in my environment

THEGOLDENPRO commented 4 months ago

this fix helped, thanks alot 💛

matrikslee commented 4 months ago
~/git/wallpaper-engine-kde-plugin qt6 39s ❯ cmake --build build
[1/1] Linking CXX shared library src/libWallpaperEngineKde.so
FAILED: src/libWallpaperEngineKde.so 
: && /usr/bin/c++ -fPIC -O2 -g -DNDEBUG  -Wl,--exclude-libs,ALL -shared -Wl,-soname,libWallpaperEngineKde.so -o src/libWallpaperEngineKde.so src/CMakeFiles/WallpaperEngineKde.dir/WallpaperEngineKde_autogen/mocs_compilation.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/plugin.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/MouseGrabber.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/PluginInfo.cpp.o  src/backend_mpv/libmpvbackend.a  src/backend_scene/libwescene-renderer-qml.a  -lmpv  /usr/lib/libQt6Quick.so.6.6.2  /usr/lib/libQt6QmlModels.so.6.6.2  /usr/lib/libQt6Qml.so.6.6.2  /usr/lib/libQt6Network.so.6.6.2  /usr/lib/libQt6OpenGL.so.6.6.2  /usr/lib/libQt6Gui.so.6.6.2  /usr/lib/libGLX.so  /usr/lib/libOpenGL.so  /usr/lib/libQt6Core.so.6.6.2  src/backend_scene/third_party/glad/libglad.a  src/backend_scene/src/libwescene-renderer.a  src/backend_scene/src/Audio/libwpAudio.a  src/backend_scene/src/Looper/libwpLooper.a  src/backend_scene/src/VulkanRender/libwpVulkanRender.a  src/backend_scene/src/Vulkan/libwpVulkan.a  src/backend_scene/third_party/glslang/glslang/libglslang.a  -lspirv-reflect-static  /lib/libvulkan.so  src/backend_scene/third_party/glslang/SPIRV/libSPIRV.a  src/backend_scene/third_party/glslang/glslang/libMachineIndependent.a  src/backend_scene/third_party/glslang/glslang/OSDependent/Unix/libOSDependent.a  src/backend_scene/third_party/glslang/glslang/libGenericCodeGen.a  src/backend_scene/src/RenderGraph/libwpRGraph.a  src/backend_scene/src/Scene/libwpScene.a  src/backend_scene/src/Particle/libwpParticle.a  src/backend_scene/src/Scene/libwpScene.a  src/backend_scene/src/Particle/libwpParticle.a  src/backend_scene/src/Timer/libwpTimer.a  src/backend_scene/src/Utils/libwpUtils.a  -llz4  -ldl && cd /home/matrikslee/git/wallpaper-engine-kde-plugin/build/src && /usr/bin/cmake -E copy /home/matrikslee/git/wallpaper-engine-kde-plugin/src/qmldir /home/matrikslee/git/wallpaper-engine-kde-plugin/build/src/qmldir
/usr/bin/ld: 找不到 -lspirv-reflect-static: 没有那个文件或目录
collect2: 错误:ld 返回 1
ninja: build stopped: subcommand failed.

build from the latest qt6 branch and readme gives me a error like above, ~there is anyone can tell me how to fix? thanks!~

I found the solution: delete the OPTION() command lines from src/plasma6-wallpapers-wallpaper-engine-git/src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt

OPTION(SPIRV_REFLECT_STATIC_LIB     "Build a SPIRV-Reflect static library" OFF)
OPTION(SPIRV_REFLECT_BUILD_TESTS    "Build the SPIRV-Reflect test suite" OFF)
OPTION(SPIRV_REFLECT_ENABLE_ASSERTS "Enable asserts for debugging" OFF)
OPTION(SPIRV_REFLECT_ENABLE_ASAN    "Use address sanitization" OFF)
catsout commented 4 months ago

build from the latest qt6 branch and readme gives me a error like above, there is anyone can tell me how to fix? thanks!

Fixed dad187083cb61ea89a5d4fcb7fcd125d2e51c9bd

STIA-Maverick commented 4 months ago
~/git/wallpaper-engine-kde-plugin qt6 39s ❯ cmake --build build
[1/1] Linking CXX shared library src/libWallpaperEngineKde.so
FAILED: src/libWallpaperEngineKde.so 
: && /usr/bin/c++ -fPIC -O2 -g -DNDEBUG  -Wl,--exclude-libs,ALL -shared -Wl,-soname,libWallpaperEngineKde.so -o src/libWallpaperEngineKde.so src/CMakeFiles/WallpaperEngineKde.dir/WallpaperEngineKde_autogen/mocs_compilation.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/plugin.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/MouseGrabber.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/PluginInfo.cpp.o  src/backend_mpv/libmpvbackend.a  src/backend_scene/libwescene-renderer-qml.a  -lmpv  /usr/lib/libQt6Quick.so.6.6.2  /usr/lib/libQt6QmlModels.so.6.6.2  /usr/lib/libQt6Qml.so.6.6.2  /usr/lib/libQt6Network.so.6.6.2  /usr/lib/libQt6OpenGL.so.6.6.2  /usr/lib/libQt6Gui.so.6.6.2  /usr/lib/libGLX.so  /usr/lib/libOpenGL.so  /usr/lib/libQt6Core.so.6.6.2  src/backend_scene/third_party/glad/libglad.a  src/backend_scene/src/libwescene-renderer.a  src/backend_scene/src/Audio/libwpAudio.a  src/backend_scene/src/Looper/libwpLooper.a  src/backend_scene/src/VulkanRender/libwpVulkanRender.a  src/backend_scene/src/Vulkan/libwpVulkan.a  src/backend_scene/third_party/glslang/glslang/libglslang.a  -lspirv-reflect-static  /lib/libvulkan.so  src/backend_scene/third_party/glslang/SPIRV/libSPIRV.a  src/backend_scene/third_party/glslang/glslang/libMachineIndependent.a  src/backend_scene/third_party/glslang/glslang/OSDependent/Unix/libOSDependent.a  src/backend_scene/third_party/glslang/glslang/libGenericCodeGen.a  src/backend_scene/src/RenderGraph/libwpRGraph.a  src/backend_scene/src/Scene/libwpScene.a  src/backend_scene/src/Particle/libwpParticle.a  src/backend_scene/src/Scene/libwpScene.a  src/backend_scene/src/Particle/libwpParticle.a  src/backend_scene/src/Timer/libwpTimer.a  src/backend_scene/src/Utils/libwpUtils.a  -llz4  -ldl && cd /home/matrikslee/git/wallpaper-engine-kde-plugin/build/src && /usr/bin/cmake -E copy /home/matrikslee/git/wallpaper-engine-kde-plugin/src/qmldir /home/matrikslee/git/wallpaper-engine-kde-plugin/build/src/qmldir
/usr/bin/ld: 找不到 -lspirv-reflect-static: 没有那个文件或目录
collect2: 错误:ld 返回 1
ninja: build stopped: subcommand failed.

build from the latest qt6 branch and readme gives me a error like above, ~there is anyone can tell me how to fix? thanks!~

I found the solution: delete the OPTION() command lines from src/plasma6-wallpapers-wallpaper-engine-git/src/backend_scene/third_party/SPIRV-Reflect/CMakeLists.txt

OPTION(SPIRV_REFLECT_STATIC_LIB     "Build a SPIRV-Reflect static library" OFF)
OPTION(SPIRV_REFLECT_BUILD_TESTS    "Build the SPIRV-Reflect test suite" OFF)
OPTION(SPIRV_REFLECT_ENABLE_ASSERTS "Enable asserts for debugging" OFF)
OPTION(SPIRV_REFLECT_ENABLE_ASAN    "Use address sanitization" OFF)

This actually fixed my plugins with the same problem of not finding libWallpaperEngineKde.so as well (fresh EOS install), although you need to run cmake with sudo for them to work, thank you so much for fixing it!

Crono141 commented 4 months ago

I am trying to build on a different machine and following the build instructions from the readme. Cloned the repo about an hour ago. Still had to install the missing packages manually, identified above. After that it built the whole thing until the last step. I'm running into a similar problem as @matrikslee. Here's my error:

[131/131] Linking CXX shared library src/libWallpaperEngineKde.so
FAILED: src/libWallpaperEngineKde.so
: && /usr/lib64/ccache/c++ -fPIC -O2 -g -DNDEBUG  -Wl,--exclude-libs,ALL -shared -Wl,-soname,libWallpaperEngineKde.so -o src/libWallpaperEngineKde.so src/CMakeFiles/WallpaperEngineKde.dir/WallpaperEngineKde_autogen/mocs_compilation.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/plugin.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/MouseGrabber.cpp.o src/CMakeFiles/WallpaperEngineKde.dir/PluginInfo.cpp.o  src/backend_mpv/libmpvbackend.a  src/backend_scene/libwescene-renderer-qml.a  -lmpv  /usr/lib64/libQt6Quick.so.6.6.2  /usr/lib64/libQt6QmlModels.so.6.6.2  /usr/lib64/libQt6Qml.so.6.6.2  /usr/lib64/libQt6Network.so.6.6.2  /usr/lib64/libQt6OpenGL.so.6.6.2  /usr/lib64/libQt6Gui.so.6.6.2  /usr/lib64/libGLX.so  /usr/lib64/libOpenGL.so  /usr/lib64/libQt6Core.so.6.6.2  src/backend_scene/third_party/glad/libglad.a  src/backend_scene/src/libwescene-renderer.a  src/backend_scene/src/Audio/libwpAudio.a  src/backend_scene/src/Looper/libwpLooper.a  src/backend_scene/src/VulkanRender/libwpVulkanRender.a  src/backend_scene/src/Vulkan/libwpVulkan.a  src/backend_scene/third_party/glslang/glslang/libglslang.a  -lspirv-reflect-static  /lib64/libvulkan.so  src/backend_scene/third_party/glslang/SPIRV/libSPIRV.a  src/backend_scene/third_party/glslang/glslang/libMachineIndependent.a  src/backend_scene/third_party/glslang/glslang/OSDependent/Unix/libOSDependent.a  src/backend_scene/third_party/glslang/glslang/libGenericCodeGen.a  src/backend_scene/src/RenderGraph/libwpRGraph.a  src/backend_scene/src/Scene/libwpScene.a  src/backend_scene/src/Particle/libwpParticle.a  src/backend_scene/src/Scene/libwpScene.a  src/backend_scene/src/Particle/libwpParticle.a  src/backend_scene/src/Timer/libwpTimer.a  src/backend_scene/src/Utils/libwpUtils.a  -llz4  -ldl && cd /home/joel/Build/wallpaper-engine-kde-plugin/build/src && /usr/bin/cmake -E copy /home/joel/Build/wallpaper-engine-kde-plugin/src/qmldir /home/joel/Build/wallpaper-engine-kde-plugin/build/src/qmldir
/usr/bin/ld: cannot find -lspirv-reflect-static: No such file or directory
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed

Based on catsout's comment I assumed this was fixed. Am I mistaken?

ThePelicano commented 4 months ago
  1. I managed to make it work here with some tips, but the mpv option doesn't appear for me.
  2. I have some wallpapers with black screens.

Screenshot_20240309_135042