Uploaded image for project: 'Qbs ("Cubes")'
  1. Qbs ("Cubes")
  2. QBS-1225

cpp.cxxLanguageVersion set by user module conflicts with value in Qt.core

    XMLWordPrintable

Details

    • 2bda52aa3d50deb56128f42395ae9f2686af2a99

    Description

      The Problem

      Consider a product that

      • depends on Qt.core (which sets cpp.cxxLanguageVersion)
      • depends on another module "globals" that sets cpp.cxxLanguageVersion

      Module "globals" might be user-provided to set project-global properties as we recommend to do.

      Resolving such a product will print a warning:

      WARNING: Conflicting scalar values at /home/jobor/.config/QtProject/qbs/1.10.0/profiles/qt591/modules/Qt/core/core.qbs:94:29 and /home/jobor/playground/collidingModuleProp/modules/globals/globals.qbs:3:29.
      

      ...because cpp.cxxLanguageVersion is a scalar property, and qbs doesn't know how to resolve the conflict between scalar properties.

      Proposed Solution

      Provide a way to resolve conflicts on scalar properties. This could be done like this:

      // In the cpp module
      PropertyOptions {
          name: "cxxLanguageVersion"
          resolveConflict: function (a, b) {
              return cxxLanguageVersionLessThan(a, b) ? b : a;
          }
      }
      

      The function resolveConflict either returns a valid value or throws an exception. The default implementation returns the first parameter and prints the warning above.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              kandeler Christian Kandeler
              jbornema Joerg Bornemann
              Votes:
              2 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes