Platform/Platform-specific build defines

From MozillaWiki
< Platform
Revision as of 06:28, 26 June 2015 by Kats (talk | contribs) (Add reftests table also, and MOZ_MULET)
Jump to navigation Jump to search

In the Gecko code we have a bunch of preprocessor conditions that help us conditionally compile code for specific platforms. These can get confusing so here is a handy-dandy table to help you keep them straight.

OS Windows OS X Linux-gtk Android iOS
Product Desktop B2G Desktop B2G Desktop B2G Mulet Fennec B2G iOS
XP_WIN                
XP_DARWIN              
XP_MACOSX                
XP_IOS                  
XP_UNIX    
XP_LINUX          
ANDROID                
MOZ_B2G          
MOZ_MULET                  
MOZ_WIDGET_GTK              
MOZ_WIDGET_ANDROID                  
MOZ_WIDGET_GONK                  
MOZ_WIDGET_UIKIT                  

Prefs files

Here is a similar table, but to see which prefs get used in which product:

OS Windows OS X Linux-gtk Android iOS
Product Desktop B2G Desktop B2G Desktop B2G Mulet Fennec B2G iOS
all.js
firefox.js            
mobile.js                  
b2g.js          
mulet.js                  

WARNING: Until bug 1174234 is resolved firefox.js prefs will override mulet.js prefs on Mulet.

Reftest conditions

Here is another table that tells you what conditions are true on various platforms for use in reftest.list conditions.

OS Windows OS X Linux-gtk Android iOS
Product Desktop B2G Desktop B2G Desktop B2G Mulet Fennec B2G iOS
B2G                  
B2GDT              
Android                  
cocoaWidget                
gtkWidget              
qtWidget                    
winWidget                
Mulet                  

You may also be interested in Platform/Channel-specific_build_defines