gecko-dev/toolkit/components/glean/moz.build

200 строки
6.0 KiB
Python

# -*- 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/.
SPHINX_TREES["/toolkit/components/glean"] = "docs"
# Needed so that we can include IPC things.
include("/ipc/chromium/chromium-config.mozbuild")
FINAL_LIBRARY = "xul"
EXPORTS.mozilla += [
"ipc/FOGIPC.h",
]
EXPORTS.mozilla.glean += [
"!GleanMetrics.h",
"!GleanPings.h",
]
EXPORTS.mozilla.glean.bindings += [
"!EventGIFFTMap.h",
"!GleanJSMetricsLookup.h",
"!GleanJSPingsLookup.h",
"!HistogramGIFFTMap.h",
"!ScalarGIFFTMap.h",
"bindings/Category.h",
"bindings/Glean.h",
"bindings/GleanPings.h",
"bindings/MetricTypes.h",
"bindings/private/Boolean.h",
"bindings/private/Common.h",
"bindings/private/Counter.h",
"bindings/private/CustomDistribution.h",
"bindings/private/Datetime.h",
"bindings/private/Denominator.h",
"bindings/private/DistributionData.h",
"bindings/private/Event.h",
"bindings/private/Labeled.h",
"bindings/private/MemoryDistribution.h",
"bindings/private/Numerator.h",
"bindings/private/Ping.h",
"bindings/private/Quantity.h",
"bindings/private/Rate.h",
"bindings/private/String.h",
"bindings/private/StringList.h",
"bindings/private/Timespan.h",
"bindings/private/TimingDistribution.h",
"bindings/private/Uuid.h",
]
if CONFIG["COMPILE_ENVIRONMENT"]:
EXPORTS.mozilla.glean += [
"!fog_ffi_generated.h",
]
CbindgenHeader("fog_ffi_generated.h", inputs=["/toolkit/components/glean"])
UNIFIED_SOURCES += [
"bindings/Category.cpp",
"bindings/Glean.cpp",
"bindings/GleanPings.cpp",
"bindings/private/Boolean.cpp",
"bindings/private/Common.cpp",
"bindings/private/Counter.cpp",
"bindings/private/CustomDistribution.cpp",
"bindings/private/Datetime.cpp",
"bindings/private/Denominator.cpp",
"bindings/private/Event.cpp",
"bindings/private/Labeled.cpp",
"bindings/private/MemoryDistribution.cpp",
"bindings/private/Numerator.cpp",
"bindings/private/Ping.cpp",
"bindings/private/Quantity.cpp",
"bindings/private/Rate.cpp",
"bindings/private/String.cpp",
"bindings/private/StringList.cpp",
"bindings/private/Timespan.cpp",
"bindings/private/TimingDistribution.cpp",
"bindings/private/Uuid.cpp",
"ipc/FOGIPC.cpp",
"ipc/Support.cpp",
]
SOURCES += [
"!EventExtraGIFFTMaps.cpp",
]
# Provides us the list of dependent metrics|pings.yaml.
include("metrics_index.py")
# GeneratedFile's `inputs` are relative to our dir.
# The yamls arrays are relative to topsrcdir, so we need to transform:
metrics_yamls = ["../../../" + x for x in metrics_yamls]
pings_yamls = ["../../../" + x for x in pings_yamls]
# If you change the length of this deps list, update DEPS_LEN in run_glean_parser.py
deps = [
"metrics_index.py",
"build_scripts/glean_parser_ext/cpp.py",
"build_scripts/glean_parser_ext/js.py",
"build_scripts/glean_parser_ext/run_glean_parser.py",
"build_scripts/glean_parser_ext/rust.py",
"build_scripts/glean_parser_ext/string_table.py",
"build_scripts/glean_parser_ext/util.py",
"build_scripts/glean_parser_ext/templates/cpp.jinja2",
"build_scripts/glean_parser_ext/templates/cpp_pings.jinja2",
"build_scripts/glean_parser_ext/templates/gifft.jinja2",
"build_scripts/glean_parser_ext/templates/gifft_events.jinja2",
"build_scripts/glean_parser_ext/templates/js.jinja2",
"build_scripts/glean_parser_ext/templates/js_pings.jinja2",
"build_scripts/glean_parser_ext/templates/rust.jinja2",
"build_scripts/glean_parser_ext/templates/rust_pings.jinja2",
]
GeneratedFile(
"api/src/metrics.rs",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
flags=[CONFIG["MOZ_APP_VERSION"]],
inputs=deps + metrics_yamls,
)
GeneratedFile(
"GleanMetrics.h",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
entry_point="cpp_metrics",
flags=[CONFIG["MOZ_APP_VERSION"]],
inputs=deps + metrics_yamls,
)
GeneratedFile(
"GleanJSMetricsLookup.h",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
entry_point="js_metrics",
flags=[CONFIG["MOZ_APP_VERSION"]],
inputs=deps + metrics_yamls,
)
GeneratedFile(
"api/src/pings.rs",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
flags=[CONFIG["MOZ_APP_VERSION"]],
inputs=deps + pings_yamls,
)
GeneratedFile(
"GleanPings.h",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
entry_point="cpp_metrics",
flags=[CONFIG["MOZ_APP_VERSION"]],
inputs=deps + pings_yamls,
)
GeneratedFile(
"GleanJSPingsLookup.h",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
entry_point="js_metrics",
flags=[CONFIG["MOZ_APP_VERSION"]],
inputs=deps + pings_yamls,
)
# Glean Interface For Firefox Telemetry Maps from Glean MetricId to Telemetry ProbeId
# We split it one map per header to avoid unused function warnings on build.
GeneratedFile(
"EventGIFFTMap.h",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
entry_point="gifft_map",
flags=[CONFIG["MOZ_APP_VERSION"], "Event"],
inputs=deps + metrics_yamls,
)
GeneratedFile(
"HistogramGIFFTMap.h",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
entry_point="gifft_map",
flags=[CONFIG["MOZ_APP_VERSION"], "Histogram"],
inputs=deps + metrics_yamls,
)
GeneratedFile(
"ScalarGIFFTMap.h",
script="build_scripts/glean_parser_ext/run_glean_parser.py",
entry_point="gifft_map",
flags=[CONFIG["MOZ_APP_VERSION"], "Scalar"],
inputs=deps + metrics_yamls,
)
DIRS += [
"tests", # Must be in DIRS, not TEST_DIRS or python-test won't find it.
"xpcom",
]
with Files("docs/**"):
SCHEDULES.exclusive = ["docs"]
with Files("**"):
BUG_COMPONENT = ("Toolkit", "Telemetry")
REQUIRES_UNIFIED_BUILD = True