Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/tools/profiler/   (Firefox Browser Version 153.0.1©)  Datei vom 27.6.2026 mit Größe 9 kB image not shown  

Quelle  moz.build   Sprache: unbekannt

 
Spracherkennung für: .build vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

# 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/.

DEFINES["MOZ_REPLACE_MALLOC_PREFIX"] = "profiler"
XPIDL_MODULE = "profiler"
XPIDL_SOURCES += [
    "gecko/nsIProfiler.idl",
]
EXPORTS += [
    "public/GeckoProfilerReporter.h",
    "public/ProfilerChild.h",
    "public/ProfilerCodeAddressService.h",
]
UNIFIED_SOURCES += [
    "core/PageInformation.cpp",
    "core/platform.cpp",
    "core/ProfileBuffer.cpp",
    "core/ProfileBufferEntry.cpp",
    "core/ProfiledThreadData.cpp",
    "core/ProfilerBacktrace.cpp",
    "core/ProfilerCodeAddressService.cpp",
    "core/ProfilerMarkers.cpp",
    "gecko/ChildProfilerController.cpp",
    "gecko/nsProfilerStartParams.cpp",
    "gecko/ProfilerChild.cpp",
    "gecko/ProfilerIOInterposeObserver.cpp",
]
if CONFIG["MOZ_MEMORY"] and CONFIG["MOZ_PROFILER_MEMORY"]:
    UNIFIED_SOURCES += [
        "core/memory_counter.cpp",
    ]
    if CONFIG["NIGHTLY_BUILD"]:
        DEFINES["MOZJEMALLOC_PROFILING_CALLBACKS"] = True
        UNIFIED_SOURCES += [
            "core/memory_markers.cpp",
        ]
if CONFIG["MOZ_REPLACE_MALLOC"] and CONFIG["MOZ_PROFILER_MEMORY"]:
    SOURCES += [
        "core/memory_hooks.cpp",  # Non-unified because of order of #includes
    ]

XPCOM_MANIFESTS += [
    "gecko/components.conf",
]

# Keep in sync with ProfilerPlatformMacros.h
if CONFIG["OS_TARGET"] == "Android" and CONFIG["TARGET_CPU"] in (
    "aarch64",
    "arm",
    "x86",
    "x86_64",
):
    UNIFIED_SOURCES += [
        "core/ProfilerCPUFreq-linux-android.cpp",
        "gecko/nsProfiler.cpp",
        "lul/AutoObjectMapper.cpp",
        "lul/LulCommon.cpp",
        "lul/LulDwarf.cpp",
        "lul/LulDwarfSummariser.cpp",
        "lul/LulElf.cpp",
        "lul/LulMain.cpp",
        "lul/platform-linux-lul.cpp",
    ]
    if CONFIG["TARGET_CPU"] == "aarch64":
        SOURCES += [
            "core/PowerCounters-android.cpp",
        ]
    if CONFIG["TARGET_CPU"] == "arm":
        SOURCES += [
            "core/EHABIStackWalk.cpp",
        ]
    if not CONFIG["MOZ_CRASHREPORTER"]:
        SOURCES += [
            "/toolkit/crashreporter/google-breakpad/src/common/linux/elfutils.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/file_id.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/linux_libc_support.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/memory_mapped_file.cc",
        ]
        if not CONFIG["HAVE_GETCONTEXT"]:
            SOURCES += [
                "/toolkit/crashreporter/google-breakpad/src/common/linux/breakpad_getcontext.S"
            ]
elif CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"] in (
    "aarch64",
    "arm",
    "x86",
    "x86_64",
    "mips64",
):
    UNIFIED_SOURCES += [
        "core/ProfilerCPUFreq-linux-android.cpp",
        "gecko/nsProfiler.cpp",
        "lul/AutoObjectMapper.cpp",
        "lul/LulCommon.cpp",
        "lul/LulDwarf.cpp",
        "lul/LulDwarfSummariser.cpp",
        "lul/LulElf.cpp",
        "lul/LulMain.cpp",
        "lul/platform-linux-lul.cpp",
    ]
    if CONFIG["TARGET_CPU"] == "x86_64":
        UNIFIED_SOURCES += [
            "core/PowerCounters-linux.cpp",
        ]
    if CONFIG["TARGET_CPU"] == "arm":
        SOURCES += [
            "core/EHABIStackWalk.cpp",
        ]
    if not CONFIG["MOZ_CRASHREPORTER"]:
        SOURCES += [
            "/toolkit/crashreporter/google-breakpad/src/common/linux/elfutils.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/file_id.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/linux_libc_support.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/memory_mapped_file.cc",
        ]
        if not CONFIG["HAVE_GETCONTEXT"]:
            SOURCES += [
                "/toolkit/crashreporter/google-breakpad/src/common/linux/breakpad_getcontext.S"
            ]
elif CONFIG["OS_TARGET"] == "FreeBSD" and CONFIG["TARGET_CPU"] in ("aarch64", "x86_64"):
    UNIFIED_SOURCES += [
        "gecko/nsProfiler.cpp",
        "lul/AutoObjectMapper.cpp",
        "lul/LulCommon.cpp",
        "lul/LulDwarf.cpp",
        "lul/LulDwarfSummariser.cpp",
        "lul/LulElf.cpp",
        "lul/LulMain.cpp",
        "lul/platform-linux-lul.cpp",
    ]
    if not CONFIG["MOZ_CRASHREPORTER"]:
        SOURCES += [
            "/toolkit/crashreporter/google-breakpad/src/common/linux/elfutils.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/file_id.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/linux_libc_support.cc",
            "/toolkit/crashreporter/google-breakpad/src/common/linux/memory_mapped_file.cc",
        ]
        if not CONFIG["HAVE_GETCONTEXT"]:
            SOURCES += [
                "/toolkit/crashreporter/google-breakpad/src/common/linux/breakpad_getcontext.S"
            ]
elif CONFIG["OS_TARGET"] == "Darwin" and CONFIG["TARGET_CPU"] in ("aarch64", "x86_64"):
    # This file cannot be built in unified mode because it includes
    # "nsLocalFile.h", which pulls in a system header which uses a type
    # called TextRange, which conflicts with mozilla::TextRange due to
    # a "using namespace mozilla;" declaration from a different file.
    SOURCES += [
        "gecko/nsProfiler.cpp",
    ]
    UNIFIED_SOURCES += [
        "core/ProfilerThermalState-mac.mm",
    ]
    if CONFIG["TARGET_CPU"] == "aarch64":
        UNIFIED_SOURCES += [
            "core/PowerCounters-mac-arm64.cpp",
        ]
    if CONFIG["TARGET_CPU"] == "x86_64":
        UNIFIED_SOURCES += [
            "core/PowerCounters-mac-amd64.cpp",
        ]
elif CONFIG["OS_TARGET"] == "WINNT" and CONFIG["TARGET_CPU"] in (
    "aarch64",
    "x86",
    "x86_64",
):
    UNIFIED_SOURCES += [
        "core/PowerCounters-win.cpp",
        "gecko/nsProfiler.cpp",
    ]
    if CONFIG["CC_TYPE"] == "clang-cl":
        SOURCES += {
            "core/ETWTools.cpp",
        }
    SOURCES += [
        "core/ProfilerCPUFreq-win.cpp",
    ]
else:
    UNIFIED_SOURCES += [
        "gecko/nsProfiler.cpp",
    ]

LOCAL_INCLUDES += [
    "/caps",
    "/docshell/base",
    "/ipc/chromium/src",
    "/mozglue/linker",
    "/netwerk/base",
    "/netwerk/protocol/http",
    "/toolkit/components/jsoncpp/include",
    "/toolkit/crashreporter/google-breakpad/src",
    "/tools/profiler/core/",
    "/tools/profiler/gecko/",
    "/xpcom/base",
]

if CONFIG["OS_TARGET"] == "Android":
    DEFINES["ANDROID_NDK_MAJOR_VERSION"] = CONFIG["ANDROID_NDK_MAJOR_VERSION"]
    DEFINES["ANDROID_NDK_MINOR_VERSION"] = CONFIG["ANDROID_NDK_MINOR_VERSION"]
    LOCAL_INCLUDES += [
        # We need access to Breakpad's getcontext(3) which is suitable for Android
        "/toolkit/crashreporter/google-breakpad/src/common/android/include",
    ]

if CONFIG["MOZ_VTUNE"]:
    DEFINES["MOZ_VTUNE_INSTRUMENTATION"] = True
    UNIFIED_SOURCES += [
        "core/VTuneProfiler.cpp",
    ]

XPCSHELL_TESTS_MANIFESTS += ["tests/xpcshell/xpcshell.toml"]
MOCHITEST_CHROME_MANIFESTS += ["tests/chrome/chrome.toml"]
BROWSER_CHROME_MANIFESTS += ["tests/browser/browser.toml"]
TESTING_JS_MODULES += ["tests/ProfilerTestUtils.sys.mjs"]

UNIFIED_SOURCES += [
    "core/MicroGeckoProfiler.cpp",
    "core/ProfileAdditionalInformation.cpp",
    "core/ProfilerBindings.cpp",
    "core/ProfilerThreadRegistration.cpp",
    "core/ProfilerThreadRegistrationData.cpp",
    "core/ProfilerThreadRegistry.cpp",
    "core/ProfilerUtils.cpp",
    "gecko/ProfilerParent.cpp",
]

IPDL_SOURCES += [
    "gecko/PProfiler.ipdl",
    "gecko/ProfilerTypes.ipdlh",
]

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

EXPORTS += [
    "public/ChildProfilerController.h",
    "public/ETWTools.h",
    "public/GeckoProfiler.h",
    "public/MicroGeckoProfiler.h",
    "public/ProfileAdditionalInformation.h",
    "public/ProfilerBindings.h",
    "public/ProfilerControl.h",
    "public/ProfilerNativeStack.h",
    "public/ProfilerParent.h",
    "public/ProfilerRustBindings.h",
    "public/ProfilerStackWalk.h",
]

EXPORTS.mozilla += [
    "public/FlowMarkers.h",
    "public/ProfileBufferEntrySerializationGeckoExtensions.h",
    "public/ProfileJSONWriter.h",
    "public/ProfilerBandwidthCounter.h",
    "public/ProfilerCounts.h",
    "public/ProfilerLabels.h",
    "public/ProfilerMarkers.h",
    "public/ProfilerMarkersDetail.h",
    "public/ProfilerMarkersPrerequisites.h",
    "public/ProfilerMarkerTypes.h",
    "public/ProfilerRunnable.h",
    "public/ProfilerState.h",
    "public/ProfilerThreadPlatformData.h",
    "public/ProfilerThreadRegistration.h",
    "public/ProfilerThreadRegistrationData.h",
    "public/ProfilerThreadRegistrationInfo.h",
    "public/ProfilerThreadRegistry.h",
    "public/ProfilerThreadSleep.h",
    "public/ProfilerThreadState.h",
    "public/ProfilerUtils.h",
]

GeneratedFile(
    "rust-api/src/gecko_bindings/profiling_categories.rs",
    script="../../mozglue/baseprofiler/build/generate_profiling_categories.py",
    entry_point="generate_rust_enums",
    inputs=["../../mozglue/baseprofiler/build/profiling_categories.yaml"],
)

if CONFIG["COMPILE_ENVIRONMENT"]:
    CbindgenHeader("profiler_ffi_generated.h", inputs=["rust-api"])

    EXPORTS.mozilla += [
        "!profiler_ffi_generated.h",
    ]

USE_LIBS += [
    "jsoncpp",
]

FINAL_LIBRARY = "xul"

TEST_DIRS += ["tests/gtest"]

if CONFIG["CC_TYPE"] in ("clang", "gcc"):
    CXXFLAGS += [
        "-Wno-error=stack-protector",
        "-Wno-ignored-qualifiers",  # due to use of breakpad headers
    ]

with Files("**"):
    BUG_COMPONENT = ("Core", "Gecko Profiler")

[Dauer der Verarbeitung: 0.17 Sekunden, vorverarbeitet 2026-08-24]