Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. Why is jom called with "qmake all", and what does it mean?
Forum Updated to NodeBB v4.3 + New Features

Why is jom called with "qmake all", and what does it mean?

Scheduled Pinned Locked Moved Solved Qt Creator and other tools
12 Posts 4 Posters 8.0k Views 3 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.
  • A Offline
    A Offline
    Asperamanca
    wrote on last edited by
    #1

    I am trying to find out why my autodetected MSVC 2015 kit for Qt 5.9.4 fails miserably in Qt Creator.
    I am using the kit as it was autodetected. Here is the output of an attempt to build a project that builds without any problem on my MinGW kit:

    10:08:14: Running steps for project lpad_widgets...
    10:08:14: Starting: "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" C:\sources\svcs\ent\lpad\frei\widgets\lpad_widgets.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
    10:08:14: The process "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" exited normally.
    10:08:14: Starting: "C:\Qt\Tools\QtCreator\bin\jom.exe" qmake_all
    Usage: jom @commandfile
           jom [options] [/f makefile] [macro definitions] [targets]
    
    nmake compatible options:
    /A build all targets
    /D display build information
    /E override environment variable macros
    /F <filename> use the specified makefile
    /G display included makefiles
    /H show help
    /I ignore all exit codes
    /K keep going - build unrelated targets on error
    /N dry run - just print commands
    /NOLOGO do not print logo
    /P print makefile info
    /R ignore predefined rules and macros
    /S silent mode
    /U print content of inline files
    /L same as /NOLOGO
    /W print the working directory before and after other processing
    /X <filename> write stderr to file.
    /Y disable batch mode inference rules
    
    jom only options:
    /DUMPGRAPH show the generated dependency graph
    /DUMPGRAPHDOT dump dependency graph in dot format
    /J <n> use up to n processes in parallel
    /KEEPTEMPFILES keep all temporary files
    /VERSION print version and exit
    Error: unknown command line option '"' in arguments: '/"--keep-going"', 'qmake_all'
    

    The only issue displayed with my kit is the lack of a debugger. It has the correct compiler and Qt version set up for sure.

    Note that I am fully able to build my project with a correctly configured command line and the commands

    qmake lpad_widgets.pro
    nmake
    

    Question:

    • Why is jom called, and not nmake?
    • What is the "qmake all" parameter, and where does it come from? I couldn't find it anywhere in my project or kit configuration.
    jsulmJ JKSHJ 2 Replies Last reply
    0
    • A Asperamanca

      I am trying to find out why my autodetected MSVC 2015 kit for Qt 5.9.4 fails miserably in Qt Creator.
      I am using the kit as it was autodetected. Here is the output of an attempt to build a project that builds without any problem on my MinGW kit:

      10:08:14: Running steps for project lpad_widgets...
      10:08:14: Starting: "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" C:\sources\svcs\ent\lpad\frei\widgets\lpad_widgets.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
      10:08:14: The process "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" exited normally.
      10:08:14: Starting: "C:\Qt\Tools\QtCreator\bin\jom.exe" qmake_all
      Usage: jom @commandfile
             jom [options] [/f makefile] [macro definitions] [targets]
      
      nmake compatible options:
      /A build all targets
      /D display build information
      /E override environment variable macros
      /F <filename> use the specified makefile
      /G display included makefiles
      /H show help
      /I ignore all exit codes
      /K keep going - build unrelated targets on error
      /N dry run - just print commands
      /NOLOGO do not print logo
      /P print makefile info
      /R ignore predefined rules and macros
      /S silent mode
      /U print content of inline files
      /L same as /NOLOGO
      /W print the working directory before and after other processing
      /X <filename> write stderr to file.
      /Y disable batch mode inference rules
      
      jom only options:
      /DUMPGRAPH show the generated dependency graph
      /DUMPGRAPHDOT dump dependency graph in dot format
      /J <n> use up to n processes in parallel
      /KEEPTEMPFILES keep all temporary files
      /VERSION print version and exit
      Error: unknown command line option '"' in arguments: '/"--keep-going"', 'qmake_all'
      

      The only issue displayed with my kit is the lack of a debugger. It has the correct compiler and Qt version set up for sure.

      Note that I am fully able to build my project with a correctly configured command line and the commands

      qmake lpad_widgets.pro
      nmake
      

      Question:

      • Why is jom called, and not nmake?
      • What is the "qmake all" parameter, and where does it come from? I couldn't find it anywhere in my project or kit configuration.
      jsulmJ Online
      jsulmJ Online
      jsulm
      Lifetime Qt Champion
      wrote on last edited by
      #2

      @Asperamanca jom.exe is another build tool which can compile several files in parallel. This way the build is much faster if you have more than one core. Check your kit in QtCreator, there must be a checkbox to activate/deactivate jom.

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      A 1 Reply Last reply
      1
      • jsulmJ jsulm

        @Asperamanca jom.exe is another build tool which can compile several files in parallel. This way the build is much faster if you have more than one core. Check your kit in QtCreator, there must be a checkbox to activate/deactivate jom.

        A Offline
        A Offline
        Asperamanca
        wrote on last edited by
        #3

        @jsulm said in Why is jom called with "qmake all", and what does it mean?:

        @Asperamanca jom.exe is another build tool which can compile several files in parallel. This way the build is much faster if you have more than one core. Check your kit in QtCreator, there must be a checkbox to activate/deactivate jom.

        I don't see any options in any kit related to jom. If you find something, please give me a keyword to look for.

        jsulmJ 1 Reply Last reply
        0
        • A Asperamanca

          @jsulm said in Why is jom called with "qmake all", and what does it mean?:

          @Asperamanca jom.exe is another build tool which can compile several files in parallel. This way the build is much faster if you have more than one core. Check your kit in QtCreator, there must be a checkbox to activate/deactivate jom.

          I don't see any options in any kit related to jom. If you find something, please give me a keyword to look for.

          jsulmJ Online
          jsulmJ Online
          jsulm
          Lifetime Qt Champion
          wrote on last edited by
          #4

          @Asperamanca Go to "Build & Run" on the "General" page at the bottom there is "Use jom instead of nmake" checkbox...

          https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          2
          • A Offline
            A Offline
            Asperamanca
            wrote on last edited by
            #5

            Thanks for that.
            Now nmake is called with the mysterious "qmake_all" option, which it doesn't know what do do about, either.

            Any ideas on that?

            jsulmJ aha_1980A 2 Replies Last reply
            0
            • A Asperamanca

              Thanks for that.
              Now nmake is called with the mysterious "qmake_all" option, which it doesn't know what do do about, either.

              Any ideas on that?

              jsulmJ Online
              jsulmJ Online
              jsulm
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @Asperamanca Try to delete the build folder, run qmake and build

              https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              1
              • A Asperamanca

                Thanks for that.
                Now nmake is called with the mysterious "qmake_all" option, which it doesn't know what do do about, either.

                Any ideas on that?

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

                @Asperamanca said in Why is jom called with "qmake all", and what does it mean?:

                qmake_all

                Without deeper knowing about this, this is just a target in your makefile that execute some steps.

                If your Makefile does not contains this target, then it is maybe created with another/older qmake version.

                Try cleaning the build folder (and maybe deleting the *.pro.user) to build again from a clean state.

                Regards

                Edit: @jsulm was faster :)

                Qt has to stay free or it will die.

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Asperamanca
                  wrote on last edited by
                  #8

                  Indeed, my makefile includes the line:

                  qmake_all: FORCE
                  

                  When I delete and regenerate the makefile, it's there again. No other files in my whole source tree contain the word "qmake_all", but it is contained within qmake.exe, so it seems to be some kind of hardcoded keyword.

                  jsulmJ 1 Reply Last reply
                  0
                  • A Asperamanca

                    Indeed, my makefile includes the line:

                    qmake_all: FORCE
                    

                    When I delete and regenerate the makefile, it's there again. No other files in my whole source tree contain the word "qmake_all", but it is contained within qmake.exe, so it seems to be some kind of hardcoded keyword.

                    jsulmJ Online
                    jsulmJ Online
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    @Asperamanca said in Why is jom called with "qmake all", and what does it mean?:

                    qmake_all: FORCE

                    If this is in your Makefile then it should work. This is what qmake puts into Makefile by default. What exact error do you get now with nmake?

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      Asperamanca
                      wrote on last edited by
                      #10
                      14:40:49: Running steps for project lpad_widgets...
                      14:40:49: Starting: "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" C:\sources\svcs\ent\lpad\frei\widgets\lpad_widgets.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
                      14:40:49: The process "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" exited normally.
                      14:40:49: Starting: "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" qmake_all
                      
                      Microsoft (R) Program Maintenance Utility Version 14.00.24210.0
                      Copyright (C) Microsoft Corporation.  All rights reserved.
                      
                      NMAKE : fatal error U1065: invalid option '"'
                      Stop.
                      14:40:49: The process "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\nmake.exe" exited with code 2.
                      Error while building/deploying project lpad_widgets (kit: Desktop Qt 5.9.4 MSVC2015 32bit2)
                      The kit Desktop Qt 5.9.4 MSVC2015 32bit2 has configuration issues which might be the root cause for this problem.
                      When executing step "qmake"
                      14:40:49: Elapsed time: 00:00.
                      

                      I start to suspect that Creator has issues with double quotes...

                      1 Reply Last reply
                      0
                      • A Asperamanca

                        I am trying to find out why my autodetected MSVC 2015 kit for Qt 5.9.4 fails miserably in Qt Creator.
                        I am using the kit as it was autodetected. Here is the output of an attempt to build a project that builds without any problem on my MinGW kit:

                        10:08:14: Running steps for project lpad_widgets...
                        10:08:14: Starting: "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" C:\sources\svcs\ent\lpad\frei\widgets\lpad_widgets.pro -spec win32-msvc "CONFIG+=debug" "CONFIG+=qml_debug"
                        10:08:14: The process "C:\Qt\5.9.4\msvc2015\bin\qmake.exe" exited normally.
                        10:08:14: Starting: "C:\Qt\Tools\QtCreator\bin\jom.exe" qmake_all
                        Usage: jom @commandfile
                               jom [options] [/f makefile] [macro definitions] [targets]
                        
                        nmake compatible options:
                        /A build all targets
                        /D display build information
                        /E override environment variable macros
                        /F <filename> use the specified makefile
                        /G display included makefiles
                        /H show help
                        /I ignore all exit codes
                        /K keep going - build unrelated targets on error
                        /N dry run - just print commands
                        /NOLOGO do not print logo
                        /P print makefile info
                        /R ignore predefined rules and macros
                        /S silent mode
                        /U print content of inline files
                        /L same as /NOLOGO
                        /W print the working directory before and after other processing
                        /X <filename> write stderr to file.
                        /Y disable batch mode inference rules
                        
                        jom only options:
                        /DUMPGRAPH show the generated dependency graph
                        /DUMPGRAPHDOT dump dependency graph in dot format
                        /J <n> use up to n processes in parallel
                        /KEEPTEMPFILES keep all temporary files
                        /VERSION print version and exit
                        Error: unknown command line option '"' in arguments: '/"--keep-going"', 'qmake_all'
                        

                        The only issue displayed with my kit is the lack of a debugger. It has the correct compiler and Qt version set up for sure.

                        Note that I am fully able to build my project with a correctly configured command line and the commands

                        qmake lpad_widgets.pro
                        nmake
                        

                        Question:

                        • Why is jom called, and not nmake?
                        • What is the "qmake all" parameter, and where does it come from? I couldn't find it anywhere in my project or kit configuration.
                        JKSHJ Offline
                        JKSHJ Offline
                        JKSH
                        Moderators
                        wrote on last edited by
                        #11

                        @Asperamanca said in Why is jom called with "qmake all", and what does it mean?:

                        I am trying to find out why my autodetected MSVC 2015 kit for Qt 5.9.4 fails miserably in Qt Creator.

                        First test: Use this kit to create a brand new project (such as a Qt Widgets Application) and build that without any modifications. Does that work? If not, then the problem is in your kit or Qt Creator. Otherwise, the problem is in your lpad_widgets project.

                        @Asperamanca said in Why is jom called with "qmake all", and what does it mean?:

                        Indeed, my makefile includes the line:
                        qmake_all: FORCE

                        This means when nmake or jom or mingw32-make is started with the qmake_all argument, it will run everything under the target called "FORCE". Note that many other lines have FORCE too, not just qmake_all.

                        More info on how to FORCE is commonly used in Makefiles: https://www.gnu.org/software/make/manual/html_node/Force-Targets.html (Note: This is Section 4.7 in the document though, so you might need to read Sections 4.1- 4.6 to fully understand it)

                        Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                        1 Reply Last reply
                        3
                        • A Offline
                          A Offline
                          Asperamanca
                          wrote on last edited by
                          #12

                          Thanks for all your input. I dug my own grave here:

                          As a temporary workaround for this issue, I started Creator via a batch file that sets some variables, and since that was my normal desktop link, I wasn't really aware of it anymore (I created that workaround years ago, long before the issue was posted).
                          One of the variable was "--keep-going"...which of course MSVC doesn't understand...

                          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