Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. [SOLVED] Having custom variables in Makefile

[SOLVED] Having custom variables in Makefile

Scheduled Pinned Locked Moved General and Desktop
qmakemakemakefile
16 Posts 3 Posters 7.3k Views
  • 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.
  • SGaistS SGaist

    You'll have to escape your string more than that:

    TESTSTR = '\"$$(TEST)\"'
    DEFINES += TEST=\"$${TESTSTR}\"

    SOURCES += main.cpp

    [edit: fixed code sample SGaist]

    K Offline
    K Offline
    kumararajas
    wrote on last edited by kumararajas
    #6

    @SGaist Thanks Sam.

    With your thoughts,

    WAT+="\"/lib/aaa/bbb"\"
    DEFINES += WAT=$${WAT}
    
    GCPU_PATH=$(BOOST_LIBS_PATH)
    DEFINES+=GCPU_PATH=$${GCPU_PATH}
    

    And this is how the generated Makefile looks like:

    DEFINES       = -DQT_WEBKIT -DWAT="/lib/aaa/bbb" -DGCPU_PATH=$(BOOST_LIBS_PATH) -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
    

    What I see here is, with the local variables, it looks to be working.

    but the environment variable, I am not able to acheive.
    -DGCPU_PATH=$(BOOST_LIBS_PATH) I expect this to be -DGCPU_PATH="/path/to/boost"

    Any more thoughts?

    Thank you,
    Kumara

    --Kumar

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

      Sorry, it seems that the code highlighter is not working exactly the same when you are editing the answer and once it's re-loaded.

      I've fixed it. Please take a look again, it's already working for environment variables.

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

      K 1 Reply Last reply
      0
      • SGaistS SGaist

        Sorry, it seems that the code highlighter is not working exactly the same when you are editing the answer and once it's re-loaded.

        I've fixed it. Please take a look again, it's already working for environment variables.

        K Offline
        K Offline
        kumararajas
        wrote on last edited by kumararajas
        #8

        Sam, I am bit confused.

        If I understand correctly,

        Having your code,

        TESTSTR = '\\"$\\"'
        DEFINES += TEST=\"$\"
        

        Should I need to add my environment variable here?
        Example:

        TSTR = '\\"$(BOOST_PATH)\\"'
        DEFINES += TEST=$${TSTR}
        

        Makefile looks like this:

        -DTEST=\"$(BOOST_PATH)\"
        

        Or I understood wrongly?

        Please clarify. Thank you very much for your kind help..

        --Kumara

        --Kumar

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

          Sorry again about the code formatting…

          Trying again here:

          TESTSTR = '\\"$$(TEST)\\"'
          DEFINES += TEST=\"\$\$\{TESTSTR\}\"

          On that last line remove the backslashes before the dollar signs and curly braces...

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

          K 1 Reply Last reply
          0
          • SGaistS SGaist

            Sorry again about the code formatting…

            Trying again here:

            TESTSTR = '\\"$$(TEST)\\"'
            DEFINES += TEST=\"\$\$\{TESTSTR\}\"

            On that last line remove the backslashes before the dollar signs and curly braces...

            K Offline
            K Offline
            kumararajas
            wrote on last edited by kumararajas
            #10

            I did try the exact as you said..
            STRT = '\\"$(BOOST_PATH)\\"'
            DEFINES += BOOST_PATH=\"\$\$\{STRT\}\"
            And the output is,
            -DBOOST_PATH="$${STRT}"

            And I tried removing the back slashes on dollar sign and curly braces
            STRT = '\\"$(BOOST_PATH)\\"'
            DEFINES += BOOST_PATH=\"$${STRT}\"
            And the output is
            -DBOOST_PATH="\"$(BOOST_PATH)\""

            Still no success..

            --Kumara

            --Kumar

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

              What do you get for the various variable if you show a message with their content:

              e.g.

              message($$(BOOST_PATH))
              message(\$\$\{STRT\})
              ?

              Again, remove the backslashes in the second line...

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

              K 1 Reply Last reply
              0
              • SGaistS SGaist

                What do you get for the various variable if you show a message with their content:

                e.g.

                message($$(BOOST_PATH))
                message(\$\$\{STRT\})
                ?

                Again, remove the backslashes in the second line...

                K Offline
                K Offline
                kumararajas
                wrote on last edited by kumararajas
                #12

                While printing a message, it looks good.

                message($(BOOST_PATH))

                Project MESSAGE: /path/to/boost
                

                message($${STRT})

                Project MESSAGE: \"/path/to/boost\"
                

                But why this has not been taken to Makefile? Mysteries..

                --Kumar

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

                  Then you are likely just missing some escaping for the last call...

                  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
                  0
                  • SGaistS Offline
                    SGaistS Offline
                    SGaist
                    Lifetime Qt Champion
                    wrote on last edited by
                    #14

                    Finally found a way to write it:

                    BOOST = $ $ ( BOOST_PATH )
                    BOOST_STR = ' \ \ " $ $ { BOOST } \ \ " '
                    DEFINES += BOOST_PATH= \ " $ $ { BOOST_STR } \ "
                    

                    Extra spaces to be removed for the sample code

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

                    K 1 Reply Last reply
                    1
                    • SGaistS SGaist

                      Finally found a way to write it:

                      BOOST = $ $ ( BOOST_PATH )
                      BOOST_STR = ' \ \ " $ $ { BOOST } \ \ " '
                      DEFINES += BOOST_PATH= \ " $ $ { BOOST_STR } \ "
                      

                      Extra spaces to be removed for the sample code

                      K Offline
                      K Offline
                      kumararajas
                      wrote on last edited by
                      #15

                      Thanks Sam, for helping me to fix the problem.

                      I do confirm that, it works.

                      (I do not want copy the instruction again here, which contains more spaces :P)

                      With the above code, I can see this in my Makefile

                      -DBOO_PATH="/path/to/boost"
                      

                      It has been a great help! Thanks a lot.

                      --Kumara

                      --Kumar

                      K 1 Reply Last reply
                      0
                      • K kumararajas

                        Thanks Sam, for helping me to fix the problem.

                        I do confirm that, it works.

                        (I do not want copy the instruction again here, which contains more spaces :P)

                        With the above code, I can see this in my Makefile

                        -DBOO_PATH="/path/to/boost"
                        

                        It has been a great help! Thanks a lot.

                        --Kumara

                        K Offline
                        K Offline
                        kumararajas
                        wrote on last edited by kumararajas
                        #16

                        Later to that,

                        I have figured out a problem in having:

                        We need to have \" in the argument:
                        -DBOO_PATH="/path/to/boost"
                        Problem is that, the macro turned out to be
                        #define BOO_PATH /path/to/boost
                        which is actually useless. We need to have double quotes to cover them up.

                        BOOST =  $ $ ( BOOST_PATH )
                        BOOST_STR = ' \ \ " $ $ { BOOST } \ \ " '
                        DEFINES += BOOST_PATH=\ " $ $ { BOOST_STR } \"
                        

                        Again, eliminate the spaces :)

                        --Kumar

                        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 Extensions
                        • Unsolved