Compile a Qt project from command Line

I am developing a application using Qt, the C++ library/framework. Using the QT-Creator I can compile my project just fine and the build directory generates the desired executable files just fine. However, I am trying to automate my asks and using Apache ANT. But I am running into the following issues.

Here is the output from the command line:

build.mac.64:
     [echo] Building for Mac
     [echo] Updating destination path
     [exec] Project WARNING: No .qmake.cache is present. This significantly slows down qmake with this makespec.
     [exec] Project WARNING: Call 'cache()' in the top-level project file to rectify this problem.
     [exec] make: Nothing to be done for `first'.
     [exec] cp: ./build/mac.64/settings.ini: No such file or directory
     [exec] Result: 1
     [echo] Reverting destination path

I am not sure why it is not compiling the executable file.

Here is how my target looks like:

<target name="build.mac.64">
    <echo>Building for Mac</echo>
    <exec executable="qmake">
        <arg value="myproject.pro"/>
        <arg
        value="-r"/>
        <arg value="-spec"/>
        <arg value="macx-clang"/>
        <arg value="CONFIG+=x86_64"/>
    </exec>

    <exec executable="make" />

    <exec executable="cp">
        <arg value="./settings.ini"/>
        <arg value="${default.build.dir.mac.64}/settings.ini"/>
    </exec>

</target>

Any idea where I am going wrong?

Answers


Thanks for the tips guys. I realized what I was doing wrong. QT-Creator actually takes the first two steps silently.

  1. Create the build output directory
  2. CD to the build output directory (KEY STEP)
  3. Call qmake referencing the .pro file
  4. Call make

So, the key thing that I overlooked was that you had to be in the build directory first and then call qmake, make etc... And also if the build already has the files compiled it throws that error. I just have to make sure I clean the build directory to compile everything fresh.


In terminal window

  1. cd ~/your_project_folder/
  2. qmake -project
  3. qmake
  4. make

If compiling an existing project, qmake -project is actually wrong, see "qmake --help".

qmake -makefile
make

If its a large project, "make -j4" or similar.


Need Your Help

Deserializing Client-Side AJAX JSON Dates

c# asp.net json ajax date

Given the following JSON Date representation:

Creating a File that the Path does not exists?

c# file path

I just can't get around this. I am able to create a file with File.Create... File.CrateText and so on, only if the path exists. If it does not the file will not we written and returns an error. How...