[Development] Proposition for a new Q_OS_ define

Jake Thomas Petroules jake.petroules at petroules.com
Mon Mar 25 16:59:11 CET 2013

On Mar 25, 2013, at 5:11 AM, Sorvig Morten <Morten.Sorvig at digia.com> wrote:

> On Mar 23, 2013, at 1:51 AM, Jake Thomas Petroules <jake.petroules at petroules.com> wrote:
>> I'd like to suggest that we add a new Q_OS_ define.
>> Currently, for Apple platforms, we have:
>> Q_OS_MAC32
>> Q_OS_MAC64
>> The first three are very straightforward. Q_OS_DARWIN is defined for both Apple platforms, OS X and iOS, with specific defines for 32 and 64 bit. iOS -- also straightforward; means iOS.
>> Then we get confusing. You'd think Q_OS_MAC is defined for OS X only, but it's just a synonym for Darwin, which makes it mostly useless. Further confusing is Q_OS_MACX which even more strongly implies that  it refers to OS X, but again it's simply a synonym for Darwin.
>> This results in a ton of #if defined(Q_OS_MAC) && !defined(Q_OS_IOS), which is very counterproductive. I propose that we add a Q_OS_OSX define (and Q_OS_OSX32 / Q_OS_OSX64) which is only defined for OS X. This would be quite helpful, I think.
>> Any objections? If not, dev or stable?
> My initial thoughts are that the current situation is manageable and that "very counterproductive" is an overstatement. 
> We recently started differentiating between "mac" and "macx" on the qmake level (d28073d9). A quick grep shows that "Q_OS_MACX" is currently used in two places in Qt (qsharedpointer.cpp and tst_qmlvisual.cpp). Re-purposing it to mean "OS X" only should be doable.
> Morten

That sounds reasonable. I didn't know we could change the meaning of an existing ifdef, but it makes sense to be in line with the corresponding changes to qmake.
Jake Petroules
Chief Technology Officer
Petroules Corporation ยท www.petroules.com
Email: jake.petroules at petroules.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20130325/0ed49403/attachment.html>

More information about the Development mailing list