toolkit/library/moz.build
author David Major <dmajor@mozilla.com>
Mon, 27 Apr 2015 19:59:27 -0400
changeset 241357 76604a91617d22ff1ac13948b95271bf3cc0df70
parent 240850 bf1d0c9242d9ac334c7f7521789840a7c711b418
child 241919 76684a16659782d4bf263830e074866e4a40d887
permissions -rw-r--r--
Bug 1157835: Remove the MSVC_ENABLE_PGO flag from the build system. r=glandium

# -*- Mode: python; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

@template
def Libxul(name):
    if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
        # This is going to be a framework named "XUL", not an ordinary library named
        # "libxul.dylib"
        GeckoFramework(name, linkage=None)
        SHARED_LIBRARY_NAME = 'XUL'
    else:
        GeckoSharedLibrary(name, linkage=None)
        SHARED_LIBRARY_NAME = 'xul'

    DELAYLOAD_DLLS += [
        'comdlg32.dll',
        'dbghelp.dll',
        'psapi.dll',
        'rasapi32.dll',
        'rasdlg.dll',
        'secur32.dll',
        'wininet.dll',
        'winspool.drv'
    ]

    if CONFIG['ACCESSIBILITY']:
        DELAYLOAD_DLLS += ['oleacc.dll']

    if CONFIG['MOZ_WEBRTC']:
        DELAYLOAD_DLLS += ['msdmo.dll']

    if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
        LOCAL_INCLUDES += [
            '/widget/windows',
            '/xpcom/base',
        ]
        # config/version.mk says $(srcdir)/$(RCINCLUDE), and this needs to
        # be valid in both toolkit/library and toolkit/library/gtest.
        # Eventually, the make backend would do its own path canonicalization
        # and config/version.mk would lift the $(srcdir)
        RCINCLUDE = '$(DEPTH)/toolkit/library/xulrunner.rc'

    LIBRARY_DEFINES['MOZILLA_INTERNAL_API'] = True
    LIBRARY_DEFINES['IMPL_LIBXUL'] = True
    if not CONFIG['JS_SHARED_LIBRARY']:
        LIBRARY_DEFINES['STATIC_EXPORTABLE_JS_API'] = True


Libxul('xul')

SDK_LIBRARY = True

FORCE_STATIC_LIB = True

STATIC_LIBRARY_NAME = 'xul_s'

SOURCES += [
    'StaticXULComponentsStart.cpp',
]

# This, combined with the fact the file is first, makes the start pointer
# it contains first in Windows PGO builds.
SOURCES['StaticXULComponentsStart.cpp'].no_pgo = True

# Don't let LTO reorder StaticXULComponentsStart.o.
if '-flto' in CONFIG['OS_CXXFLAGS']:
    SOURCES['StaticXULComponentsStart.cpp'].flags += ['-fno-lto']

if CONFIG['OS_ARCH'] == 'WINNT':
    SOURCES += [
        'nsDllMain.cpp',
    ]

LOCAL_INCLUDES += [
    '/config',
    # need widget/windows for resource.h (included from widget.rc)
    '/widget/windows',
]

if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
    LOCAL_INCLUDES += [
        '/xpcom/base',
    ]

FAIL_ON_WARNINGS = True

DIRS += ['gtest']

# js needs to come after xul for now, because it is an archive and its content
# is discarded when it comes first.
USE_LIBS += [
    'js',
]

if CONFIG['MOZ_SANDBOX'] and CONFIG['OS_ARCH'] == 'WINNT':
    USE_LIBS += [
        'sandboxbroker',
    ]

USE_LIBS += [
    'gkmedias',
    'nspr',
    'nss',
    'sqlite',
    'zlib',
]

if CONFIG['USE_ICU']:
    USE_LIBS += [
        'icu',
    ]

if CONFIG['MOZ_WIDGET_GTK'] and CONFIG['MOZ_ENABLE_GTK3']:
    USE_LIBS += [
        'mozgtk_stub',
    ]

if CONFIG['MOZ_JPROF']:
    USE_LIBS += [
        'jprof',
    ]

if CONFIG['MOZ_WIDGET_GTK'] or CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt' or \
        CONFIG['MOZ_TREE_FREETYPE']:
    USE_LIBS += [
        'freetype',
    ]

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
    CXXFLAGS += CONFIG['TK_CFLAGS']

if CONFIG['MOZ_WEBRTC']:
    if CONFIG['OS_TARGET'] == 'WINNT':
        OS_LIBS += [
            'secur32',
            'crypt32',
            'iphlpapi',
            'strmiids',
            'dmoguids',
            'wmcodecdspuuid',
            'amstrmid',
            'msdmo',
            'wininet',
        ]

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
    OS_LIBS += [
        '-framework OpenGL',
        '-framework SystemConfiguration',
        '-framework QTKit',
        '-framework IOKit',
        '-F%s' % CONFIG['MACOS_PRIVATE_FRAMEWORKS_DIR'],
        '-framework CoreUI',
        'cups',
    ]

if CONFIG['MOZ_WMF']:
    OS_LIBS += [
        'mfuuid',
        'wmcodecdspuuid',
        'strmiids',
    ]

if CONFIG['MOZ_DIRECTSHOW']:
    OS_LIBS += [
        'dmoguids',
        'wmcodecdspuuid',
        'strmiids',
        'msdmo',
    ]

if CONFIG['OS_ARCH'] == 'FreeBSD':
    OS_LIBS += [
        'util',
    ]

if CONFIG['OS_ARCH'] == 'WINNT':
    OS_LIBS += [
        'shell32',
        'ole32',
        'version',
        'winspool',
    ]

if CONFIG['MOZ_B2G_BT_BLUEZ'] and CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
    OS_LIBS += [
        'dbus',
    ]

if CONFIG['MOZ_B2G_CAMERA'] and CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
    OS_LIBS += [
        'stagefright',
        'stagefright_omx',
    ]

if CONFIG['OS_ARCH'] == 'Linux' and CONFIG['OS_TARGET'] != 'Android':
    OS_LIBS += [
        'rt',
    ]

OS_LIBS += CONFIG['MOZ_CAIRO_OSLIBS']
OS_LIBS += CONFIG['MOZ_WEBRTC_X11_LIBS']

if CONFIG['MOZ_NATIVE_JPEG']:
    OS_LIBS += CONFIG['MOZ_JPEG_LIBS']

if CONFIG['MOZ_NATIVE_PNG']:
    OS_LIBS += CONFIG['MOZ_PNG_LIBS']

if CONFIG['MOZ_NATIVE_HUNSPELL']:
    OS_LIBS += CONFIG['MOZ_HUNSPELL_LIBS']

if CONFIG['MOZ_NATIVE_LIBEVENT']:
    OS_LIBS += CONFIG['MOZ_LIBEVENT_LIBS']

if CONFIG['MOZ_NATIVE_LIBVPX']:
    OS_LIBS += CONFIG['MOZ_LIBVPX_LIBS']

if not CONFIG['MOZ_TREE_PIXMAN']:
    OS_LIBS += CONFIG['MOZ_PIXMAN_LIBS']

if CONFIG['MOZ_ALSA']:
    OS_LIBS += CONFIG['MOZ_ALSA_LIBS']

if CONFIG['HAVE_CLOCK_MONOTONIC']:
    OS_LIBS += CONFIG['REALTIME_LIBS']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'android':
    OS_LIBS += [
        'GLESv2',
    ]

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'gonk':
    OS_LIBS += [
        'ui',
        'media',
        'hardware_legacy',
        'hardware',
        'utils',
        'cutils',
        'sysutils',
        'camera_client',
        'sensorservice',
        'stagefright',
        'stagefright_foundation',
        'stagefright_omx',
        'binder',
        'gui',
        'mtp',
    ]

if 'rtsp' in CONFIG['NECKO_PROTOCOLS']:
    OS_LIBS += [
        'stagefright_foundation',
    ]

OS_LIBS += CONFIG['ICONV_LIBS']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
    OS_LIBS += CONFIG['TK_LIBS']

if CONFIG['OS_ARCH'] == 'OpenBSD':
    OS_LIBS += [
        'sndio',
    ]

if CONFIG['MOZ_ENABLE_DBUS']:
    OS_LIBS += CONFIG['MOZ_DBUS_GLIB_LIBS']

if CONFIG['MOZ_WIDGET_GTK']:
    if CONFIG['MOZ_ENABLE_GTK3']:
        OS_LIBS += [l for l in CONFIG['TK_LIBS']
            if l not in ('-lgtk-3', '-lgdk-3')]
    else:
        OS_LIBS += CONFIG['TK_LIBS']
    OS_LIBS += CONFIG['XLDFLAGS']
    OS_LIBS += CONFIG['XLIBS']
    OS_LIBS += CONFIG['XEXT_LIBS']
    OS_LIBS += CONFIG['MOZ_PANGO_LIBS']
    OS_LIBS += CONFIG['XT_LIBS']
    OS_LIBS += [
        'gthread-2.0',
    ]

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'qt':
    OS_LIBS += CONFIG['XLDFLAGS']
    OS_LIBS += CONFIG['XLIBS']
    OS_LIBS += CONFIG['XT_LIBS']
    OS_LIBS += CONFIG['MOZ_QT_LIBS']
    OS_LIBS += CONFIG['MOZ_PANGO_LIBS']

if CONFIG['MOZ_ENABLE_STARTUP_NOTIFICATION']:
    OS_LIBS += CONFIG['MOZ_STARTUP_NOTIFICATION_LIBS']

if CONFIG['MOZ_ENABLE_LIBPROXY']:
    OS_LIBS += CONFIG['MOZ_LIBPROXY_LIBS']

if CONFIG['OS_ARCH'] == 'SunOS':
    OS_LIBS += [
        'elf',
    ]
    if CONFIG['GNU_CC']:
        OS_LIBS += [
            'demangle',
        ]

if CONFIG['OS_ARCH'] == 'FreeBSD':
    OS_LIBS += [
        'util',
    ]

if CONFIG['OS_ARCH'] == 'WINNT':
    OS_LIBS += [
        'shell32',
        'ole32',
        'version',
        'winspool',
        'comdlg32',
        'imm32',
        'msimg32',
        'shlwapi',
        'psapi',
        'ws2_32',
        'dbghelp',
        'rasapi32',
        'rasdlg',
        'iphlpapi',
        'uxtheme',
        'setupapi',
        'secur32',
        'sensorsapi',
        'portabledeviceguids',
        'windowscodecs',
        'wininet',
        'wbemuuid',
        'wintrust',
        'wtsapi32',
        'locationapi'
    ]
    if CONFIG['ACCESSIBILITY']:
        OS_LIBS += [
            'oleacc',
        ]

if CONFIG['MOZ_ENABLE_QT']:
    OS_LIBS += CONFIG['XEXT_LIBS']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa' and CONFIG['MOZ_GSTREAMER']:
    OS_LIBS += CONFIG['GSTREAMER_LIBS']

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
    OS_LIBS += [
        'usp10',
        'oleaut32',
    ]

# This needs to be last
USE_LIBS += ['StaticXULComponentsEnd']