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

Depends resolution behaves counter-intuitive on case-sensitive filesystems

    XMLWordPrintable

Details

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

    Description

      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

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: