Bug 445248

Summary: Using kirigami_package_breeze_icons on Windows results in failed INSTALL due to symlink to duplicate icons
Product: [Developer tools] Craft Reporter: Javier O. Cordero Pérez (Cuperino) <javiercorderoperez>
Component: BlueprintsAssignee: Hannah von Reth <vonreth>
Status: REOPENED ---    
Severity: normal CC: kde-windows
Priority: NOR    
Version: master   
Target Milestone: ---   
Platform: Microsoft Windows   
OS: Microsoft Windows   
Latest Commit: Version Fixed In:

Description Javier O. Cordero Pérez (Cuperino) 2021-11-10 07:00:20 UTC
SUMMARY
Using the `kirigami_package_breeze_icons` CMake instruction on Windows results in INSTALL failing due to some icons being found duplicate by CMake while reading symlink.

Some of the conflicting icons include:
> go-next-symbolic, go-previous-symbolic, format-fill-color

Not listing some icons as part of `kirigami_package_breeze_icons`, such as the "format-fill-color" icon, will result in the conflict going away. Nevertheless, other icons, such as go-next-symbolic, create the conflict even if they are not listed to be imported. This results in an inability to use `kirigami_package_breeze_icons` on Windows. `kirigami_package_breeze_icons` continues to work fine for the macOS and Android platforms.

STEPS TO REPRODUCE
1. Create a Kirigami project
2. Add `kirigami_package_breeze_icons` call to the `CMakeLists.txt` file where resources are added.
3. Build and install the project on Windows.
(I'm using Craft to build the project on Windows. There, updating the package is enough to trigger the error because it occurs during CMake's install phase.)

OBSERVED RESULT
CMake fails to complete INSTALL due to being unable to read symlink because some icons were duplicated. Some of the duplicate icons are not listed by `kirigami_package_breeze_icons` thus making the conflict apparently impossible to avoid.

>CMake Error at build/cmake_install.cmake:153 (file):
>  file INSTALL cannot read symlink
>  "C:/CraftRoot/build/_/e31ae30d/build/breeze-icons/src/breeze-icons/icons/actions/22/format-fill-color.svg"
>  to duplicate at
>  "C:/CraftRoot/build/entity/project/image-RelWithDebInfo-main/CraftRoot/qml/org/kde/kirigami.2/icons/format-fill-color.svg":
>  File exists.
>Call Stack (most recent call first):
>  cmake_install.cmake:37 (include)

EXPECTED RESULT
Windows build completes INSTALL and shows appropriate icons when ran.

SOFTWARE/OS VERSIONS
Windows: Windows 10
KDE Frameworks Version: 5.83 - 5.87
Qt Version: 5.15 kde patched

ADDITIONAL INFORMATION
Here are the links to the Craft repository and project I'm attempting to build with `kirigami_package_breeze_icons`:
https://github.com/Cuperino/craft-blueprints-qprompt
https://github.com/Cuperino/QPrompt
Comment 1 Javier O. Cordero Pérez (Cuperino) 2022-06-04 05:14:03 UTC
This issue seems to have been fixed. I'll mark it as solved.
Comment 2 Javier O. Cordero Pérez (Cuperino) 2022-07-07 14:03:17 UTC
This issue is still present. It turns out it did not manifest itself previously because I wasn't using the Qt Patch Collection in my new Craft environment. The issue only seems to occur when using the Qt Patch Collection on Windows.

I don't know if this bug is specific to Craft or to the Patch Collection. But, given the problem doesn't seem to lie in Kirigami, I've moved this issue from frameworks-kirigami to Craft.