Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. using variables for paths in project file
Qt 6.12 LTS is out! See what's new in the release blog

using variables for paths in project file

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
12 Posts 3 Posters 4.0k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • mzimmersM Offline
    mzimmersM Offline
    mzimmers
    wrote on last edited by
    #3

    It certainly could be, or I could create it within Qt. Either way is fine with me.

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #4

      To get the content of a variable you should use: $$VARIABLE_NAME and it's an environment variable use $${ENV_VAR_NAME}.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      1 Reply Last reply
      1
      • mzimmersM Offline
        mzimmersM Offline
        mzimmers
        wrote on last edited by
        #5

        That much I understand. Now, how do I fit that prefix to the rest of the path? Meaning, something like this (but this doesn't work):

        $$IDFPATH + "\components\bt\include"
        
        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #6

          INCLUDEPATH += $$IDFPATH/components/bt/include

          You can (and should) use forward slash also on Windows. qmake will do the necessary conversions for you.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          aha_1980A 1 Reply Last reply
          1
          • SGaistS SGaist

            INCLUDEPATH += $$IDFPATH/components/bt/include

            You can (and should) use forward slash also on Windows. qmake will do the necessary conversions for you.

            aha_1980A Offline
            aha_1980A Offline
            aha_1980
            Lifetime Qt Champion
            wrote on last edited by
            #7

            @SGaist

            I'd say you must ;)

            And a hint to @mzimmers: never end a line with a backslash or a slash - this will lead to problems sooner or later. I have had big problems already when doing something like: INCLUDEPATH += $$IDFPATH/components/bt/include/ as the last slash was converted to backslash and there to problems begun...

            Qt has to stay free or it will die.

            1 Reply Last reply
            1
            • mzimmersM Offline
              mzimmersM Offline
              mzimmers
              wrote on last edited by
              #8

              Yeah, I was just being lazy...I'd grabbed those paths from somewhere else and just plugged them in verbatim. Now corrected.

              So, aha - if I can't end a line with a backslash, when I want to use one as a concatenator, should I move it to the start of the next line?

              Thanks, guys.

              aha_1980A 1 Reply Last reply
              0
              • mzimmersM mzimmers

                Yeah, I was just being lazy...I'd grabbed those paths from somewhere else and just plugged them in verbatim. Now corrected.

                So, aha - if I can't end a line with a backslash, when I want to use one as a concatenator, should I move it to the start of the next line?

                Thanks, guys.

                aha_1980A Offline
                aha_1980A Offline
                aha_1980
                Lifetime Qt Champion
                wrote on last edited by
                #9

                @mzimmers said in using variables for paths in project file:

                when I want to use one as a concatenator,

                You don't want to.

                A backslash at the end-of-line in a .pro file is always line-continuation. But forward slashes may be translated in the generated Makefile and that's where the fun begins...

                Qt has to stay free or it will die.

                mzimmersM 1 Reply Last reply
                1
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #10
                  MYPATH = /usr/include
                  MYOTHERPATH = $$MYPATH/mylib
                  

                  If you need backslashes then you have to double them as you would in a classic C string. However, you really should use forward slashes.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  2
                  • aha_1980A aha_1980

                    @mzimmers said in using variables for paths in project file:

                    when I want to use one as a concatenator,

                    You don't want to.

                    A backslash at the end-of-line in a .pro file is always line-continuation. But forward slashes may be translated in the generated Makefile and that's where the fun begins...

                    mzimmersM Offline
                    mzimmersM Offline
                    mzimmers
                    wrote on last edited by
                    #11

                    @aha_1980 I misspoke - I didn't mean concatenator; I meant line continuator. I interpreted your earlier statement as saying a backslash shouldn't end a line, but I guess you meant when used as part of a Windows-style path?

                    aha_1980A 1 Reply Last reply
                    0
                    • mzimmersM mzimmers

                      @aha_1980 I misspoke - I didn't mean concatenator; I meant line continuator. I interpreted your earlier statement as saying a backslash shouldn't end a line, but I guess you meant when used as part of a Windows-style path?

                      aha_1980A Offline
                      aha_1980A Offline
                      aha_1980
                      Lifetime Qt Champion
                      wrote on last edited by aha_1980
                      #12

                      Hi @mzimmers,

                      you're right, the backslash is the line continuator for qmake.

                      but I guess you meant when used as part of a Windows-style path?

                      Also correct.

                      But what could be unexpected, is if you end a Unix-style path with '/', this will be converted to a backslash in the Makefile an can lead to fun there also.

                      Qt has to stay free or it will die.

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt
                      • Unsolved