diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /tools/profiler/moz.build | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | tools/profiler/moz.build | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/tools/profiler/moz.build b/tools/profiler/moz.build new file mode 100644 index 0000000000..2d8d7d1b2a --- /dev/null +++ b/tools/profiler/moz.build @@ -0,0 +1,180 @@ +# -*- 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/. + +if CONFIG["MOZ_GECKO_PROFILER"]: + DEFINES["MOZ_REPLACE_MALLOC_PREFIX"] = "profiler" + XPIDL_MODULE = "profiler" + XPIDL_SOURCES += [ + "gecko/nsIProfiler.idl", + ] + EXPORTS += [ + "public/ChildProfilerController.h", + "public/GeckoProfilerReporter.h", + "public/ProfilerChild.h", + "public/ProfilerCodeAddressService.h", + "public/ProfilerParent.h", + "public/shared-libraries.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", + "core/RegisteredThread.cpp", + "gecko/ChildProfilerController.cpp", + "gecko/nsProfilerStartParams.cpp", + "gecko/ProfilerChild.cpp", + "gecko/ProfilerIOInterposeObserver.cpp", + "gecko/ProfilerParent.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", + ] + + if CONFIG["OS_TARGET"] == "Darwin": + # 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", + ] + else: + UNIFIED_SOURCES += [ + "gecko/nsProfiler.cpp", + ] + + if CONFIG["OS_TARGET"] in ("Android", "Linux", "FreeBSD"): + if CONFIG["CPU_ARCH"] in ("arm", "aarch64", "x86", "x86_64", "mips64"): + UNIFIED_SOURCES += [ + "lul/AutoObjectMapper.cpp", + "lul/LulCommon.cpp", + "lul/LulDwarf.cpp", + "lul/LulDwarfSummariser.cpp", + "lul/LulElf.cpp", + "lul/LulMain.cpp", + "lul/platform-linux-lul.cpp", + ] + # These files cannot be built in unified mode because of name clashes with mozglue headers on Android. + SOURCES += [ + "core/shared-libraries-linux.cc", + ] + 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" + ] + if CONFIG["CPU_ARCH"] == "arm" and CONFIG["OS_TARGET"] != "FreeBSD": + SOURCES += [ + "core/EHABIStackWalk.cpp", + ] + elif CONFIG["OS_TARGET"] == "Darwin": + UNIFIED_SOURCES += [ + "core/shared-libraries-macos.cc", + ] + elif CONFIG["OS_TARGET"] == "WINNT": + SOURCES += [ + "core/shared-libraries-win32.cc", + ] + + LOCAL_INCLUDES += [ + "/caps", + "/docshell/base", + "/ipc/chromium/src", + "/mozglue/linker", + "/netwerk/base", + "/netwerk/protocol/http", + "/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["ENABLE_TESTS"]: + DIRS += ["tests/gtest"] + + FINAL_LIBRARY = "xul" + +IPDL_SOURCES += [ + "gecko/PProfiler.ipdl", + "gecko/ProfilerTypes.ipdlh", +] + +include("/ipc/chromium/chromium-config.mozbuild") + +# GeckoProfiler.h and ProfilerCounts.h are the only code that's visible in +# non-MOZ_GECKO_PROFILER builds, and they only contains no-op macros in that +# case. +EXPORTS += [ + "public/GeckoProfiler.h", +] + +EXPORTS.mozilla += [ + "public/ProfileBufferEntrySerializationGeckoExtensions.h", + "public/ProfileJSONWriter.h", + # vm/GeckoProfiler.h needs to include this and doesn't like #include "ProfilerCounts.h" + "public/ProfilerCounts.h", + "public/ProfilerMarkers.h", + "public/ProfilerMarkersDetail.h", + "public/ProfilerMarkersPrerequisites.h", + "public/ProfilerMarkerTypes.h", +] + +if CONFIG["MOZ_VTUNE"]: + DEFINES["MOZ_VTUNE_INSTRUMENTATION"] = True + UNIFIED_SOURCES += [ + "core/VTuneProfiler.cpp", + ] + + +if CONFIG["MOZ_TASK_TRACER"]: + EXPORTS += [ + "tasktracer/GeckoTaskTracer.h", + "tasktracer/GeckoTaskTracerImpl.h", + "tasktracer/SourceEventTypeMap.h", + "tasktracer/TracedTaskCommon.h", + ] + UNIFIED_SOURCES += [ + "tasktracer/GeckoTaskTracer.cpp", + "tasktracer/TracedTaskCommon.cpp", + ] + +XPCSHELL_TESTS_MANIFESTS += ["tests/xpcshell/xpcshell.ini"] +MOCHITEST_CHROME_MANIFESTS += ["tests/chrome/chrome.ini"] +BROWSER_CHROME_MANIFESTS += ["tests/browser/browser.ini"] + +if CONFIG["CC_TYPE"] in ("clang", "gcc"): + CXXFLAGS += [ + "-Wno-error=shadow", + "-Wno-error=stack-protector", + "-Wno-ignored-qualifiers", # due to use of breakpad headers + ] + +with Files("**"): + BUG_COMPONENT = ("Core", "Gecko Profiler") |