Platform/Platform-specific build defines

From MozillaWiki
Jump to: navigation, 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 Desktop Desktop Fennec GeckoView iOS
XP_WIN          
XP_DARWIN        
XP_MACOSX          
XP_IOS          
XP_UNIX  
XP_LINUX      
ANDROID        
MOZ_WIDGET_GTK          
MOZ_WIDGET_ANDROID        
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 Desktop Desktop Fennec GeckoView iOS
all.js
firefox.js      
mobile.js        ??  
geckoview-prefs.js          

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 Desktop Desktop Fennec GeckoView iOS
Android        
geckoview          
cocoaWidget          
gtkWidget          
qtWidget            
winWidget          

Mochitest conditions

Here is another table that tells you what different condition values are on various platforms for use in mochitest.ini/a11y.ini/chrome.ini/browser.ini conditions.

OS Windows OS X Linux-gtk Android iOS
Product Desktop Desktop Desktop Fennec GeckoView iOS
os win mac linux android android  ??
toolkit windows cocoa gtk2 or gtk3 android android  ??
buildapp  ??  ??  ?? mobile/android  ??  ??

You may also be interested in Platform/Channel-specific_build_defines