File fixed-build-with-qbs-2_6.patch of Package tiled

From 2517c68db2c0dd5e382076e97ef1fae7535bd704 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= <bjorn@lindeijer.nl>
Date: Fri, 4 Apr 2025 10:00:17 +0000
Subject: [PATCH] Qbs: Fixed warnings and error when using Qbs 2.6 (#4182)

* Use exportingProduct.sourceDirectory

  This fixes the following warning when using Qbs 2.6: "Resolving path
  properties relative to the exporting product's location is deprecated."

  Raises the minimum version of Qbs to 1.18.

* Avoid warning about using list properties as fallback values

  The warning says:

  > In future versions of qbs, such properties will be considered unconditionally.
  > If you want to keep the current semantics for this value, use a fallback Properties item.

  However, since we were using `outer.concat`, using a fallback Properties
  item is not a solution. Eventually, it's nice that we can drop the
  `outer.concat` usage, but for now I've switched to not overriding such
  properties in a Properties item at all for compatibility between Qbs
  1.18 and 2.6.

* Explicitly select qbs profile on macOS

  Due to installing Qbs from Homebrew, there are multiple Qt versions
  detected, which appears to be causing trouble later on when the
  following error is raised:

    qbs/share/qbs/imports/qbs/base/QtModule.qbs:49:14 cannot read property 'version' of undefined

  Somehow this wasn't an issue yet with Qbs 2.5.
---
 .github/workflows/packages.yml                  |  4 +++-
 src/karchive/karchive.qbs                       |  4 +++-
 src/libtiled/libtiled.qbs                       | 16 ++++++++++------
 src/libtiledquick/libtiledquick.qbs             |  2 +-
 src/plugins/python/python.qbs                   |  6 +++++-
 src/qtsingleapplication/qtsingleapplication.qbs |  4 +++-
 src/tiled/libtilededitor.qbs                    |  2 +-
 tiled.qbs                                       |  2 +-
 8 files changed, 27 insertions(+), 13 deletions(-)

Index: tiled-1.11.2/.github/workflows/packages.yml
===================================================================
--- tiled-1.11.2.orig/.github/workflows/packages.yml
+++ tiled-1.11.2/.github/workflows/packages.yml
@@ -258,7 +258,9 @@ jobs:
       run: |
         brew install qbs
         qbs setup-toolchains --detect
-        qbs config defaultProfile xcode
+        qbs setup-qt --detect
+        qbs config profiles.qt-6-8-2.baseProfile xcode
+        qbs config defaultProfile qt-6-8-2
 
     - name: Build Zstandard
       run: |
Index: tiled-1.11.2/src/karchive/karchive.qbs
===================================================================
--- tiled-1.11.2.orig/src/karchive/karchive.qbs
+++ tiled-1.11.2/src/karchive/karchive.qbs
@@ -1,3 +1,5 @@
+import qbs.FileInfo
+
 StaticLibrary {
     condition: !qbs.toolchain.contains("msvc")
 
@@ -54,7 +56,7 @@ StaticLibrary {
 
     Export {
         Depends { name: "cpp" }
-        cpp.includePaths: "src"
+        cpp.includePaths: FileInfo.joinPaths(exportingProduct.sourceDirectory, "src")
         cpp.defines: [
             "KARCHIVE_NO_DEPRECATED",
             "KARCHIVE_STATIC_DEFINE",
Index: tiled-1.11.2/src/libtiled/libtiled.qbs
===================================================================
--- tiled-1.11.2.orig/src/libtiled/libtiled.qbs
+++ tiled-1.11.2/src/libtiled/libtiled.qbs
@@ -16,10 +16,15 @@ DynamicLibrary {
     cpp.cxxLanguageVersion: "c++17"
     cpp.cxxFlags: {
         var flags = base;
+
         if (qbs.toolchain.contains("msvc")) {
             if (Qt.core.versionMajor >= 6 && Qt.core.versionMinor >= 3)
                 flags.push("/permissive-");
         }
+
+        if (pkgConfigZstd.found)
+            flags = flags.concat(pkgConfigZstd.cflags);
+
         return flags;
     }
     cpp.visibility: "minimal"
@@ -69,9 +74,8 @@ DynamicLibrary {
 
     Properties {
         condition: pkgConfigZstd.found
-        cpp.cxxFlags: outer.concat(pkgConfigZstd.cflags)
-        cpp.libraryPaths: outer.concat(pkgConfigZstd.libraryPaths)
-        cpp.linkerFlags: outer.concat(pkgConfigZstd.linkerFlags)
+        cpp.libraryPaths: pkgConfigZstd.libraryPaths
+        cpp.linkerFlags: pkgConfigZstd.linkerFlags
     }
 
     // When libzstd was not found but staticZstd is enabled, assume that zstd
@@ -79,8 +83,8 @@ DynamicLibrary {
     // done by the autobuilds for Windows and macOS).
     Properties {
         condition: !pkgConfigZstd.found && project.staticZstd
-        cpp.libraryPaths: outer.concat(["../../zstd/lib"])
-        cpp.includePaths: outer.concat(["../../zstd/lib"])
+        cpp.libraryPaths: "../../zstd/lib"
+        cpp.includePaths: "../../zstd/lib"
     }
 
     Properties {
@@ -199,7 +203,7 @@ DynamicLibrary {
             submodules: ["gui"]
         }
 
-        cpp.includePaths: "."
+        cpp.includePaths: exportingProduct.sourceDirectory
     }
 
     install: !qbs.targetOS.contains("darwin")
Index: tiled-1.11.2/src/libtiledquick/libtiledquick.qbs
===================================================================
--- tiled-1.11.2.orig/src/libtiledquick/libtiledquick.qbs
+++ tiled-1.11.2/src/libtiledquick/libtiledquick.qbs
@@ -59,7 +59,7 @@ DynamicLibrary {
             submodules: ["quick"]
         }
 
-        cpp.includePaths: "."
+        cpp.includePaths: exportingProduct.sourceDirectory
     }
 
     install: !qbs.targetOS.contains("darwin")
Index: tiled-1.11.2/src/plugins/python/python.qbs
===================================================================
--- tiled-1.11.2.orig/src/plugins/python/python.qbs
+++ tiled-1.11.2/src/plugins/python/python.qbs
@@ -15,8 +15,13 @@ TiledPlugin {
 
     cpp.cxxFlags: {
         var flags = base
+
         if (qbs.toolchain.contains("gcc") && !qbs.toolchain.contains("clang"))
             flags.push("-Wno-cast-function-type")
+
+        if (pkgConfigPython3.found)
+            flags = flags.concat(pkgConfigPython3.compilerFlags);
+
         return flags
     }
 
@@ -34,7 +39,6 @@ TiledPlugin {
 
     Properties {
         condition: pkgConfigPython3.found
-        cpp.cxxFlags: outer.concat(pkgConfigPython3.compilerFlags)
         cpp.defines: pkgConfigPython3.defines
         cpp.dynamicLibraries: pkgConfigPython3.libraries
         cpp.includePaths: pkgConfigPython3.includePaths
Index: tiled-1.11.2/src/qtsingleapplication/qtsingleapplication.qbs
===================================================================
--- tiled-1.11.2.orig/src/qtsingleapplication/qtsingleapplication.qbs
+++ tiled-1.11.2/src/qtsingleapplication/qtsingleapplication.qbs
@@ -1,3 +1,5 @@
+import qbs.FileInfo
+
 StaticLibrary {
     name: "qtsingleapplication"
 
@@ -26,6 +28,6 @@ StaticLibrary {
     Export {
         Depends { name: "cpp" }
         Depends { name: "Qt.widgets" }
-        cpp.includePaths: "src"
+        cpp.includePaths: FileInfo.joinPaths(exportingProduct.sourceDirectory, "src")
     }
 }
Index: tiled-1.11.2/src/tiled/libtilededitor.qbs
===================================================================
--- tiled-1.11.2.orig/src/tiled/libtilededitor.qbs
+++ tiled-1.11.2/src/tiled/libtilededitor.qbs
@@ -614,7 +614,7 @@ DynamicLibrary {
         Depends { name: "libtiled" }
         Depends { name: "qtsingleapplication" }
         Depends { name: "Qt"; submodules: ["qml"] }
-        cpp.includePaths: "."
+        cpp.includePaths: exportingProduct.sourceDirectory
     }
 
     install: !qbs.targetOS.contains("darwin")
Index: tiled-1.11.2/tiled.qbs
===================================================================
--- tiled-1.11.2.orig/tiled.qbs
+++ tiled-1.11.2/tiled.qbs
@@ -4,7 +4,7 @@ Project {
     name: "Tiled"
 
     qbsSearchPaths: "qbs"
-    minimumQbsVersion: "1.13"
+    minimumQbsVersion: "1.18"
 
     property string version: Environment.getEnv("TILED_VERSION") || "1.11.2";
     property bool snapshot: Environment.getEnv("TILED_SNAPSHOT") == "true"
Index: tiled-1.11.2/src/qtpropertybrowser/qtpropertybrowser.qbs
===================================================================
--- tiled-1.11.2.orig/src/qtpropertybrowser/qtpropertybrowser.qbs
+++ tiled-1.11.2/src/qtpropertybrowser/qtpropertybrowser.qbs
@@ -1,3 +1,5 @@
+import qbs.FileInfo
+
 StaticLibrary {
     name: "qtpropertybrowser"
 
@@ -41,6 +43,6 @@ StaticLibrary {
 
     Export {
         Depends { name: "cpp" }
-        cpp.includePaths: "src"
+        cpp.includePaths: FileInfo.joinPaths(exportingProduct.sourceDirectory, "src")
     }
 }
openSUSE Build Service is sponsored by