xpcom/base/moz.build
author James Teh <jteh@mozilla.com>
Fri, 12 Jul 2019 23:39:15 +0000
changeset 541438 302d6a3d1ca8673034456b04a90489f427793910
parent 535008 c347f878342197b00ce58f30d86d1b436abfd6ac
permissions -rw-r--r--
Bug 1536227: Block safemon64.dll (360 Safeguard/360 Total Security) for causing a11y crashes. r=aklotz a=RyanVM Differential Revision: https://phabricator.services.mozilla.com/D27203

# -*- Mode: python; 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/.

XPIDL_SOURCES += [
    'nsIConsoleListener.idl',
    'nsIConsoleMessage.idl',
    'nsIConsoleService.idl',
    'nsICycleCollectorListener.idl',
    'nsIDebug2.idl',
    'nsIErrorService.idl',
    'nsIException.idl',
    'nsIGZFileWriter.idl',
    'nsIInterfaceRequestor.idl',
    'nsIMemory.idl',
    'nsIMemoryInfoDumper.idl',
    'nsIMemoryReporter.idl',
    'nsIMessageLoop.idl',
    'nsIMutable.idl',
    'nsISecurityConsoleMessage.idl',
    'nsISupports.idl',
    'nsIUUIDGenerator.idl',
    'nsIVersionComparator.idl',
    'nsIWeakReference.idl',
    'nsrootidl.idl',
]

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
    XPIDL_SOURCES += [
        'nsIMacPreferencesReader.idl',
        'nsIMacUtils.idl',
    ]
    EXPORTS.mozilla += [
        'MacHelpers.h',
        'MacStringHelpers.h',
        'nsMacPreferencesReader.h',
    ]
    UNIFIED_SOURCES += [
        'MacHelpers.mm',
        'MacStringHelpers.mm',
        'nsMacPreferencesReader.mm',
    ]

XPIDL_MODULE = 'xpcom_base'

XPCOM_MANIFESTS += [
    'components.conf',
]

EXPORTS += [
    '!ErrorList.h',
    '!ErrorNamesInternal.h',
    'CodeAddressService.h',
    'nsAgg.h',
    'nsAlgorithm.h',
    'nsAutoPtr.h',
    'nsAutoRef.h',
    'nsCom.h',
    'nsCOMPtr.h',
    'nscore.h',
    'nsCRTGlue.h',
    'nsCycleCollectionNoteChild.h',
    'nsCycleCollectionNoteRootCallback.h',
    'nsCycleCollectionParticipant.h',
    'nsCycleCollectionTraversalCallback.h',
    'nsCycleCollector.h',
    'nsDebug.h',
    'nsDebugImpl.h',
    'nsDumpUtils.h',
    'nsError.h',
    'nsErrorService.h',
    'nsGZFileWriter.h',
    'nsIClassInfoImpl.h',
    'nsID.h',
    'nsIInterfaceRequestorUtils.h',
    'nsINIParser.h',
    'nsInterfaceRequestorAgg.h',
    'nsISizeOf.h',
    'nsISupportsBase.h',
    'nsISupportsImpl.h',
    'nsISupportsUtils.h',
    'nsIWeakReferenceUtils.h',
    'nsMaybeWeakPtr.h',
    'nsMemory.h',
    'nsObjCExceptions.h',
    'nsQueryObject.h',
    'nsSystemInfo.h',
    'nsTraceRefcnt.h',
    'nsVersionComparator.h',
    'nsWeakReference.h',
]

if CONFIG['OS_ARCH'] == 'WINNT':
    EXPORTS += [
        'nsWindowsHelpers.h',
    ]
    if CONFIG['CC_TYPE'] not in ('gcc', 'clang'):
        OS_LIBS += [
            'wscapi',
        ]

EXPORTS.mozilla += [
    'AutoRestore.h',
    'AvailableMemoryTracker.h',
    'ClearOnShutdown.h',
    'CountingAllocatorBase.h',
    'CycleCollectedJSContext.h',
    'CycleCollectedJSRuntime.h',
    'Debug.h',
    'DebuggerOnGCRunnable.h',
    'DeferredFinalize.h',
    'EnumeratedArrayCycleCollection.h',
    'ErrorNames.h',
    'GkRustUtils.h',
    'HoldDropJSObjects.h',
    'IntentionalCrash.h',
    'JSObjectHolder.h',
    'Logging.h',
    'MemoryInfo.h',
    'MemoryMapping.h',
    'MemoryReportingProcess.h',
    'MemoryTelemetry.h',
    'nsMemoryInfoDumper.h',
    'NSPRLogModulesParser.h',
    'OwningNonNull.h',
    'SizeOfState.h',
    'StaticMonitor.h',
    'StaticMutex.h',
    'StaticPtr.h',
    'TupleCycleCollection.h',
]

# nsDebugImpl isn't unified because we disable PGO so that NS_ABORT_OOM isn't
# optimized away oddly.
SOURCES += [
    'nsDebugImpl.cpp',
]
SOURCES['nsDebugImpl.cpp'].no_pgo = True

UNIFIED_SOURCES += [
    'AvailableMemoryTracker.cpp',
    'ClearOnShutdown.cpp',
    'CycleCollectedJSContext.cpp',
    'CycleCollectedJSRuntime.cpp',
    'Debug.cpp',
    'DebuggerOnGCRunnable.cpp',
    'DeferredFinalize.cpp',
    'ErrorNames.cpp',
    'GkRustUtils.cpp',
    'HoldDropJSObjects.cpp',
    'JSObjectHolder.cpp',
    'LogCommandLineHandler.cpp',
    'Logging.cpp',
    'LogModulePrefWatcher.cpp',
    'MemoryTelemetry.cpp',
    'nsClassInfoImpl.cpp',
    'nsCOMPtr.cpp',
    'nsConsoleMessage.cpp',
    'nsConsoleService.cpp',
    'nsCRTGlue.cpp',
    'nsCycleCollectionParticipant.cpp',
    'nsCycleCollector.cpp',
    'nsCycleCollectorTraceJSHelpers.cpp',
    'nsDumpUtils.cpp',
    'nsErrorService.cpp',
    'nsGZFileWriter.cpp',
    'nsID.cpp',
    'nsIInterfaceRequestorUtils.cpp',
    'nsINIParser.cpp',
    'nsInterfaceRequestorAgg.cpp',
    'nsISupportsImpl.cpp',
    'nsMemory.cpp',
    'nsMemoryImpl.cpp',
    'nsMemoryInfoDumper.cpp',
    'nsMemoryReporterManager.cpp',
    'nsMessageLoop.cpp',
    'NSPRLogModulesParser.cpp',
    'nsSecurityConsoleMessage.cpp',
    'nsSystemInfo.cpp',
    'nsTraceRefcnt.cpp',
    'nsUUIDGenerator.cpp',
    'nsVersionComparator.cpp',
    'nsVersionComparatorImpl.cpp',
    'nsWeakReference.cpp',
]

if CONFIG['OS_TARGET'] in ('Linux', 'Android'):
    UNIFIED_SOURCES += [
        'MemoryMapping.cpp',
    ]

if CONFIG['OS_TARGET'] == 'WINNT':
    UNIFIED_SOURCES += [
        'MemoryInfo.cpp',
    ]

GENERATED_FILES += [
    "error_list.rs",
    "ErrorList.h",
    "ErrorNamesInternal.h",
]

GENERATED_FILES["ErrorList.h"].script = "ErrorList.py:error_list_h"
GENERATED_FILES["ErrorNamesInternal.h"].script = "ErrorList.py:error_names_internal_h"
GENERATED_FILES["error_list.rs"].script = "ErrorList.py:error_list_rs"

if CONFIG['MOZ_WIDGET_TOOLKIT'] == 'cocoa':
    SOURCES += [
        'nsMacUtilsImpl.cpp',
    ]
elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows':
    SOURCES += [
        'nsCrashOnException.cpp',
    ]

if CONFIG['COMPILE_ENVIRONMENT']:
    GENERATED_FILES += [
        'gk_rust_utils_ffi_generated.h',
    ]

    EXPORTS.mozilla += [
        '!gk_rust_utils_ffi_generated.h',
    ]

    ffi_generated = GENERATED_FILES['gk_rust_utils_ffi_generated.h']
    ffi_generated.script = '/layout/style/RunCbindgen.py:generate'
    ffi_generated.inputs = [
        '/xpcom/rust/gkrust_utils',
    ]

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'

LOCAL_INCLUDES += [
    '../build',
    '/dom/base',
    '/mfbt',
    '/netwerk/base',
    '/xpcom/ds',
]

if 'gtk' in CONFIG['MOZ_WIDGET_TOOLKIT']:
    CXXFLAGS += CONFIG['TK_CFLAGS']