Important: Please read the Qt Code of Conduct -

How can I stop qtcreator / qmake from resolving links in .pro file path before resolving relative path names of files, it defeats my build system.ayout.

  • Qtcreator/Qmake defeat the OS feature of soft links and I'd like it to stop doing that.

    Was this an intentional feature? What does it fix and how is that possibly worth forcing a physical layout on disk.

    If it quits going through that extra effort then I can lay out directories as I see fit (mostly for revision management convenience) and use links to satisfy the arbitrary seeming requirements for file hierarchy imposed by various build systems.

    I have a set of libraries which depend upon each other. I put them beneath a folder where I keep the common settings.
    Projects for applications using those libraries are most conveniently placed in parallel with the lib folders so that I can share .pro file fragments between the app and the library building.

    I want different git repos for the applications (developed for different customers) and I dislike nesting git repos, it makes it easy to forget to update one. So, I put my newest application where I remember to git push it, and put a link beside my library files. Qtcreator or Qmake resolve that link to its absolute pathname and that screws up all the relative paths in my set of working-for-months .pro files.

  • Lifetime Qt Champion


    Can you share an example of your project setup and project files ? Maybe an image that shows exactly how it's created ?

  • I'll try to make a small example, but the project is public on github: using eponymous projects in cppext,system.posix and rpi.

    'rpi' works where it is.
    I was starting a variant of that directory as as subdirectory of an independent git repo.
    I made a link
    ln -s otherrepo/folder safely/linktorepo

    The pro file in linktorepo had in it include(../ where .. is expected to be directory 'safely'.
    When I ran qmake via qtcreator it emitted paths showing 'otherrepo' instead of 'safely'.

    FYI: qtcreator is what allows me to work in C++ instead of having to live with Java, I really do appreciate it.

  • Lifetime Qt Champion

    Qt Creator has nothing to do with the problem at hand. It uses the build system of your project, in your case qmake.

    A smaller project showing your problem would indeed be better.

Log in to reply