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

Depends resolution behaves counter-intuitive on case-sensitive filesystems

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: P3: Somewhat important P3: Somewhat important
    • 0.3
    • 0.3
    • None
    • 64bit Linux, qbs from git master, built against Qt 4.8.4

      Consider having module Foo inside /module/search/path/Foo/Foo.qbs
      The following:

      Product{
      moduleSearchPaths: "/module/search/path"
      Depends

      {name: "Foo"}

      }

      works fine on windows but not on linux. If the module is relocated to

      /module/search/path/foo/Foo.qbs

      it works fine on Linux, too. (E.g. via ln -s /module/search/path/Foo /module/search/path/foo)

      This is counter-intuitive, since the dependency is explicitly mentioned as "Foo", not as "foo". Also the documentation does not mention anything about case sensitivity.

      The attached patch introduces the method
      QStringList ModuleLoader::moduleSubDirs(const QString &path, const QStringList &moduleName)
      which returns all candidate subdirectories inside path that need to be considered for looking up "moduleName". The lookup is done case-insensitive inside path, so both path/Foo and path/foo are chosen for the module "foo".
      I've also tested the patch for the case of submodules, i.e. "Foo.Bar" are correctly found in Foo/Bar.

      Cheers,
      Thomas

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

            jbornema Joerg Bornemann
            cptg thomas gahr
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes