pdel
pdel

Reputation: 705

Qt qmake cross platform development

What is the correct way of defining cross platform behavior in qmake? I'm attempting to merge two projects that use the same codebase but have different parameters in the qmake project file for things like different compiler flags or icon files.

To clarify, if someone pulls the MyProject.pro from version control and attempts to run qmake on it on a mac, I want a couple lines to change when compared to the same operation on a windows machine. Is there any way of adding arguments to $> qmake ... or better, not have to change anything?

Upvotes: 2

Views: 655

Answers (2)

Yes, QMake does support conditional statements, in the form of scopes. Basically, you write something like this:

DEFINES = MY_DEF

win32 {
  DEFINES += WE_ARE_ON_WINDOWS
  debug {
    DEFINES += DEBUG_WINDOWS
  }
}

As the example shows, scopes can be nested. Operators such as | for OR are also possible.

For a full list of variables and functions, refer to QMake documentation.

Upvotes: 2

vahancho
vahancho

Reputation: 21250

You can write something like:

win32:{
    # Do something Windows specific 
} else {
    # Options for other platforms
}

in your .pro file(s).

Upvotes: 2

Related Questions