зеркало из https://github.com/mozilla/gecko-dev.git
524 строки
16 KiB
TOML
524 строки
16 KiB
TOML
[build]
|
|
args = [
|
|
"-x", "c++", "-std=c++14",
|
|
"-DTRACING=1", "-DIMPL_LIBXUL", "-DMOZ_STYLO_BINDINGS=1",
|
|
"-DMOZILLA_INTERNAL_API", "-DRUST_BINDGEN", "-DMOZ_STYLO"
|
|
]
|
|
"family=unix" = ["-DOS_POSIX=1"]
|
|
"os=solaris" = ["-DOS_SOLARIS=1"]
|
|
"os=dragonfly" = ["-DOS_BSD=1", "-DOS_DRAGONFLY=1"]
|
|
"os=freebsd" = ["-DOS_BSD=1", "-DOS_FREEBSD=1"]
|
|
"os=netbsd" = ["-DOS_BSD=1", "-DOS_NETBSD=1"]
|
|
"os=openbsd" = ["-DOS_BSD=1", "-DOS_OPENBSD=1"]
|
|
"os=macos" = [
|
|
"-DOS_MACOSX=1", "-stdlib=libc++",
|
|
# To disable the fixup bindgen applies which adds search
|
|
# paths from clang command line in order to avoid potential
|
|
# conflict with -stdlib=libc++.
|
|
"--target=x86_64-apple-darwin",
|
|
]
|
|
|
|
[build."os=linux"]
|
|
args = ["-DOS_LINUX=1"]
|
|
"arch=x86" = ["-m32"]
|
|
"arch=x86_64" = ["-m64"]
|
|
|
|
[build."os=windows"."env=msvc"]
|
|
args = [
|
|
"-DOS_WIN=1", "-DWIN32=1",
|
|
# For compatibility with MSVC 2015
|
|
"-fms-compatibility-version=19",
|
|
# To enable the builtin __builtin_offsetof so that CRT wouldn't
|
|
# use reinterpret_cast in offsetof() which is not allowed inside
|
|
# static_assert().
|
|
"-D_CRT_USE_BUILTIN_OFFSETOF",
|
|
# Enable hidden attribute (which is not supported by MSVC and
|
|
# thus not enabled by default with a MSVC-compatibile build)
|
|
# to exclude hidden symbols from the generated file.
|
|
"-DHAVE_VISIBILITY_HIDDEN_ATTRIBUTE=1",
|
|
]
|
|
"arch=x86" = ["--target=i686-pc-win32"]
|
|
"arch=x86_64" = ["--target=x86_64-pc-win32"]
|
|
|
|
[structs]
|
|
headers = [
|
|
"nsStyleStruct.h",
|
|
"mozilla/ServoPropPrefList.h",
|
|
"mozilla/StyleAnimationValue.h",
|
|
"gfxFontConstants.h",
|
|
"nsThemeConstants.h",
|
|
"mozilla/css/Loader.h",
|
|
"mozilla/dom/AnimationEffectReadOnlyBinding.h",
|
|
"mozilla/dom/KeyframeEffectBinding.h",
|
|
"mozilla/AnimationPropertySegment.h",
|
|
"mozilla/ComputedTiming.h",
|
|
"mozilla/ComputedTimingFunction.h",
|
|
"mozilla/Keyframe.h",
|
|
"mozilla/ServoElementSnapshot.h",
|
|
"mozilla/ServoElementSnapshotTable.h",
|
|
"mozilla/css/ErrorReporter.h",
|
|
"mozilla/dom/Element.h",
|
|
"mozilla/dom/ChildIterator.h",
|
|
"mozilla/dom/NameSpaceConstants.h",
|
|
"mozilla/LookAndFeel.h",
|
|
"mozilla/ServoBindings.h",
|
|
"mozilla/ServoMediaList.h",
|
|
"mozilla/ServoStyleContext.h",
|
|
"nsCSSCounterStyleRule.h",
|
|
"nsCSSFontFaceRule.h",
|
|
"nsMediaFeatures.h",
|
|
"nsMediaList.h",
|
|
"nsXBLBinding.h",
|
|
]
|
|
raw-lines = [
|
|
# FIXME(emilio): Incrementally remove these "pub use"s. Probably
|
|
# mozilla::css and mozilla::dom are easier.
|
|
"pub use self::root::*;",
|
|
"pub use self::root::mozilla::*;",
|
|
"pub use self::root::mozilla::css::*;",
|
|
"pub use self::root::mozilla::dom::*;",
|
|
"use atomic_refcell::AtomicRefCell;",
|
|
"use data::ElementData;",
|
|
]
|
|
hide-types = [
|
|
"nsString",
|
|
".*char_traits",
|
|
".*incompatible_char_type",
|
|
]
|
|
bitfield-enums = [
|
|
"nsChangeHint",
|
|
"nsRestyleHint",
|
|
]
|
|
constified-enums = [
|
|
"UpdateAnimationsTasks",
|
|
"ParsingMode",
|
|
"ThemeWidgetType",
|
|
]
|
|
constified-enum-variants = [
|
|
{ enum = "nsCSSPropertyID", variants = ["eCSSProperty_COUNT.*"] },
|
|
]
|
|
whitelist-vars = [
|
|
"NS_AUTHOR_SPECIFIED_.*",
|
|
"NS_THEME_.*",
|
|
"NODE_.*",
|
|
"ELEMENT_.*",
|
|
"NS_FONT_.*",
|
|
"NS_STYLE_.*",
|
|
"NS_MATHML_.*",
|
|
"NS_RADIUS_.*",
|
|
"BORDER_COLOR_.*",
|
|
"BORDER_STYLE_.*",
|
|
"mozilla::SERVO_PREF_.*",
|
|
"CSS_PSEUDO_ELEMENT_.*",
|
|
"SERVO_CSS_PSEUDO_ELEMENT_FLAGS_.*",
|
|
"kNameSpaceID_.*",
|
|
"kGenericFont_.*",
|
|
"kPresContext_.*",
|
|
]
|
|
whitelist-types = [
|
|
"RawGecko.*",
|
|
"mozilla::AnimationPropertySegment",
|
|
"mozilla::ComputedTiming",
|
|
"mozilla::ComputedTimingFunction",
|
|
"mozilla::ComputedTimingFunction::BeforeFlag",
|
|
"mozilla::ServoElementSnapshot.*",
|
|
"mozilla::ServoStyleContext",
|
|
"mozilla::ServoStyleSheetInner",
|
|
"mozilla::CSSPseudoClassType",
|
|
"mozilla::css::ErrorReporter",
|
|
"mozilla::css::SheetParsingMode",
|
|
"mozilla::css::URLMatchingFunction",
|
|
"mozilla::dom::IterationCompositeOperation",
|
|
"mozilla::dom::StyleChildrenIterator",
|
|
"mozilla::HalfCorner",
|
|
"mozilla::PropertyStyleAnimationValuePair",
|
|
"mozilla::TraversalRestyleBehavior",
|
|
"mozilla::TraversalRootBehavior",
|
|
"mozilla::StyleShapeRadius",
|
|
"mozilla::StyleGrid.*",
|
|
"mozilla::UpdateAnimationsTasks",
|
|
"mozilla::LookAndFeel",
|
|
"mozilla::gfx::Float",
|
|
"mozilla::gfx::FontVariation",
|
|
".*ThreadSafe.*Holder",
|
|
"AnonymousContent",
|
|
"AudioContext",
|
|
"CapturingContentInfo",
|
|
"DefaultDelete",
|
|
"DOMIntersectionObserverEntry",
|
|
"Element",
|
|
"FontFamilyList",
|
|
"FontFamilyListRefCnt",
|
|
"FontFamilyName",
|
|
"FontFamilyType",
|
|
"FontSizePrefs",
|
|
"FragmentOrURL",
|
|
"FrameRequestCallback",
|
|
"GeckoParserExtraData",
|
|
"GeckoFontMetrics",
|
|
"gfxAlternateValue",
|
|
"gfxFontFeature",
|
|
"gfxFontVariation",
|
|
"GridNamedArea",
|
|
"HalfCorner",
|
|
"Image",
|
|
"ImageURL",
|
|
"Keyframe",
|
|
"nsAttrName",
|
|
"nsAttrValue",
|
|
"nsBorderColors",
|
|
"nscolor",
|
|
"nsChangeHint",
|
|
"nsCSSCounterStyleRule",
|
|
"nsCSSFontFaceRule",
|
|
"nsCSSKeyword",
|
|
"nsCSSPropertyID",
|
|
"nsCSSPropertyIDSet",
|
|
"nsCSSProps",
|
|
"nsCSSRect",
|
|
"nsCSSRect_heap",
|
|
"nsCSSShadowArray",
|
|
"nsCSSValue",
|
|
"nsCSSValueFloatColor",
|
|
"nsCSSValueGradient",
|
|
"nsCSSValueGradientStop",
|
|
"nsCSSValueList",
|
|
"nsCSSValueList_heap",
|
|
"nsCSSValuePair_heap",
|
|
"nsCSSValuePairList",
|
|
"nsCSSValuePairList_heap",
|
|
"nsCSSValueTokenStream",
|
|
"nsCSSValueTriplet_heap",
|
|
"nsCursorImage",
|
|
"nsFont",
|
|
"nsIAtom",
|
|
"nsMainThreadPtrHandle",
|
|
"nsMainThreadPtrHolder",
|
|
"nsMargin",
|
|
"nsMediaExpression",
|
|
"nsMediaFeature",
|
|
"nsMediaFeatures",
|
|
"nsMediaList",
|
|
"nsRect",
|
|
"nsRestyleHint",
|
|
"nsresult",
|
|
"nsSize",
|
|
"nsStyleBackground",
|
|
"nsStyleBorder",
|
|
"nsStyleColor",
|
|
"nsStyleColumn",
|
|
"nsStyleContent",
|
|
"nsStyleContentData",
|
|
"nsStyleContext",
|
|
"nsStyleCoord",
|
|
"nsStyleCounterData",
|
|
"nsStyleDisplay",
|
|
"nsStyleEffects",
|
|
"nsStyleFilter",
|
|
"nsStyleFont",
|
|
"nsStyleGradient",
|
|
"nsStyleGradientStop",
|
|
"nsStyleGridTemplate",
|
|
"nsStyleImage",
|
|
"nsStyleImageLayers",
|
|
"nsStyleList",
|
|
"nsStyleMargin",
|
|
"nsStyleOutline",
|
|
"nsStylePadding",
|
|
"nsStylePosition",
|
|
"nsStyleSVG",
|
|
"nsStyleSVGPaint",
|
|
"nsStyleSVGReset",
|
|
"nsStyleTable",
|
|
"nsStyleTableBorder",
|
|
"nsStyleText",
|
|
"nsStyleTextReset",
|
|
"nsStyleUIReset",
|
|
"nsStyleUnion",
|
|
"nsStyleUnit",
|
|
"nsStyleUserInterface",
|
|
"nsStyleVariables",
|
|
"nsStyleVisibility",
|
|
"nsStyleXUL",
|
|
"nsTArray",
|
|
"nsTArrayHeader",
|
|
"Position",
|
|
"PropertyValuePair",
|
|
"Runnable",
|
|
"ServoAttrSnapshot",
|
|
"ServoBundledURI",
|
|
"ServoComputedData",
|
|
"ServoComputedDataBorrowed",
|
|
"ServoElementSnapshot",
|
|
"ServoStyleContextStrong",
|
|
"ServoStyleContextBorrowed",
|
|
"ServoStyleContextBorrowedOrNull",
|
|
"SheetParsingMode",
|
|
"StaticRefPtr",
|
|
"StyleAnimation",
|
|
"StyleBasicShape",
|
|
"StyleBasicShapeType",
|
|
"StyleGeometryBox",
|
|
"StyleShapeSource",
|
|
"StyleTransition",
|
|
"ThemeWidgetType",
|
|
"mozilla::UniquePtr",
|
|
"mozilla::DefaultDelete",
|
|
"mozilla::Side",
|
|
"mozilla::binding_danger::AssertAndSuppressCleanupPolicy",
|
|
"mozilla::ParsingMode",
|
|
"mozilla::InheritTarget",
|
|
"mozilla::ServoMediaList",
|
|
"mozilla::StyleRuleInclusion",
|
|
"nsStyleTransformMatrix::MatrixTransformOperator",
|
|
]
|
|
opaque-types = [
|
|
"std::pair__PCCP",
|
|
"std::namespace::atomic___base", "std::atomic__My_base",
|
|
"std::atomic",
|
|
"std::atomic___base",
|
|
# We want everything but FontVariation and Float to be opaque but we don't
|
|
# have negative regexes.
|
|
"mozilla::gfx::(.{0,4}|.{6,12}|.{14,}|([^F][^o][^n][^t][^V][^a][^r][^i][^a][^t][^i][^o][^n])|([^F][^l][^o][^a][^t]))",
|
|
"FallibleTArray",
|
|
"mozilla::dom::Sequence",
|
|
"mozilla::dom::Optional",
|
|
"mozilla::dom::Nullable",
|
|
"RefPtr_Proxy",
|
|
"RefPtr_Proxy_member_function",
|
|
"nsAutoPtr_Proxy",
|
|
"nsAutoPtr_Proxy_member_function",
|
|
"mozilla::detail::PointerType",
|
|
"mozilla::Pair_Base",
|
|
"mozilla::SupportsWeakPtr",
|
|
"SupportsWeakPtr",
|
|
"mozilla::detail::WeakReference",
|
|
"mozilla::WeakPtr",
|
|
"nsWritingIterator_reference", "nsReadingIterator_reference",
|
|
"nsTObserverArray", # <- Inherits from nsAutoTObserverArray<T, 0>
|
|
"nsTHashtable", # <- Inheriting from inner typedefs that clang
|
|
# doesn't expose properly.
|
|
"nsBaseHashtable", "nsRefPtrHashtable", "nsDataHashtable", "nsClassHashtable", # <- Ditto
|
|
"nsInterfaceHashtable", # <- Ditto
|
|
"nsIDocument_SelectorCache", # <- Inherits from nsExpirationTracker<.., 4>
|
|
"nsIPresShell_ScrollAxis", # <- For some reason the alignment of this is 4
|
|
# for clang.
|
|
"nsPIDOMWindow", # <- Takes the vtable from a template parameter, and we can't
|
|
# generate it conditionally.
|
|
"JS::Rooted",
|
|
"mozilla::Maybe",
|
|
"gfxSize", # <- union { struct { T width; T height; }; T components[2] };
|
|
"gfxSize_Super", # Ditto.
|
|
"mozilla::ErrorResult", # Causes JSWhyMagic to be included & handled incorrectly.
|
|
"mozilla::StyleAnimationValue",
|
|
"StyleAnimationValue", # pulls in a whole bunch of stuff we don't need in the bindings
|
|
]
|
|
mapped-generic-types = [
|
|
{ generic = true, gecko = "mozilla::ServoUnsafeCell", servo = "::std::cell::UnsafeCell" },
|
|
{ generic = true, gecko = "mozilla::ServoCell", servo = "::std::cell::Cell" },
|
|
{ generic = false, gecko = "ServoNodeData", servo = "AtomicRefCell<ElementData>" },
|
|
{ generic = false, gecko = "mozilla::ServoWritingMode", servo = "::logical_geometry::WritingMode" },
|
|
{ generic = false, gecko = "mozilla::ServoFontComputationData", servo = "::properties::FontComputationData" },
|
|
{ generic = false, gecko = "mozilla::ServoCustomPropertiesMap", servo = "Option<::servo_arc::Arc<::custom_properties::CustomPropertiesMap>>" },
|
|
{ generic = false, gecko = "mozilla::ServoRuleNode", servo = "Option<::rule_tree::StrongRuleNode>" },
|
|
{ generic = false, gecko = "mozilla::ServoVisitedStyle", servo = "Option<::servo_arc::RawOffsetArc<::properties::ComputedValues>>" },
|
|
{ generic = false, gecko = "mozilla::ServoComputedValueFlags", servo = "::properties::computed_value_flags::ComputedValueFlags" },
|
|
{ generic = true, gecko = "mozilla::ServoRawOffsetArc", servo = "::servo_arc::RawOffsetArc" },
|
|
{ generic = false, gecko = "ServoStyleContextStrong", servo = "::gecko_bindings::sugar::ownership::Strong<::properties::ComputedValues>" },
|
|
]
|
|
fixups = [
|
|
{ pat = "root::nsString", rep = "::nsstring::nsStringRepr" },
|
|
]
|
|
|
|
[bindings]
|
|
headers = ["mozilla/ServoBindings.h"]
|
|
hide-types = [
|
|
"nsACString_internal",
|
|
"nsAString_internal",
|
|
"ServoStyleContextBorrowed",
|
|
"ServoStyleContextBorrowedOrNull",
|
|
]
|
|
raw-lines = [
|
|
"pub use nsstring::{nsACString, nsAString, nsString, nsStringRepr};",
|
|
"use gecko_bindings::structs::nsStyleTransformMatrix;",
|
|
"use gecko_bindings::structs::nsTArray;",
|
|
"type nsACString_internal = nsACString;",
|
|
"type nsAString_internal = nsAString;",
|
|
"pub type ServoStyleContextBorrowed<'a> = &'a ::properties::ComputedValues;",
|
|
"pub type ServoStyleContextBorrowedOrNull<'a> = Option<&'a ::properties::ComputedValues>;",
|
|
"pub type ServoComputedDataBorrowed<'a> = &'a ServoComputedData;",
|
|
]
|
|
whitelist-functions = ["Servo_.*", "Gecko_.*"]
|
|
structs-types = [
|
|
"mozilla::css::GridTemplateAreasValue",
|
|
"mozilla::css::ErrorReporter",
|
|
"mozilla::css::ImageValue",
|
|
"mozilla::css::URLValue",
|
|
"mozilla::css::URLValueData",
|
|
"mozilla::MallocSizeOf",
|
|
"mozilla::Side",
|
|
"nsIContent",
|
|
"nsIDocument",
|
|
"nsIDocument_DocumentTheme",
|
|
"RawGeckoAnimationPropertySegment",
|
|
"RawGeckoComputedTiming",
|
|
"RawGeckoCSSPropertyIDList",
|
|
"RawGeckoDocument",
|
|
"RawGeckoElement",
|
|
"RawGeckoKeyframeList",
|
|
"RawGeckoPropertyValuePairList",
|
|
"RawGeckoComputedKeyframeValuesList",
|
|
"RawGeckoFontFaceRuleList",
|
|
"RawGeckoNode",
|
|
"RawServoAnimationValue",
|
|
"RawGeckoServoAnimationValueList",
|
|
"RawServoMediaList",
|
|
"RawServoStyleSheetContents",
|
|
"RawServoDeclarationBlock",
|
|
"RawServoStyleRule",
|
|
"RawGeckoPresContext",
|
|
"RawGeckoPresContextOwned",
|
|
"RawGeckoStyleAnimationList",
|
|
"RawGeckoStyleChildrenIteratorBorrowedMut",
|
|
"RawGeckoServoStyleRuleList",
|
|
"RawGeckoURLExtraData",
|
|
"RawGeckoXBLBinding",
|
|
"RefPtr",
|
|
"CSSPseudoClassType",
|
|
"CSSPseudoElementType",
|
|
"TraversalRestyleBehavior",
|
|
"TraversalRootBehavior",
|
|
"ComputedTimingFunction_BeforeFlag",
|
|
"CounterStylePtr",
|
|
"FontFamilyList",
|
|
"FontFamilyType",
|
|
"FontSizePrefs",
|
|
"GeckoFontMetrics",
|
|
"IterationCompositeOperation",
|
|
"Keyframe",
|
|
"PropertyValuePair",
|
|
"ServoBundledURI",
|
|
"ServoElementSnapshot",
|
|
"ServoElementSnapshotTable",
|
|
"SheetParsingMode",
|
|
"StyleBasicShape",
|
|
"StyleBasicShapeType",
|
|
"StyleShapeSource",
|
|
"StyleTransition",
|
|
"nsBorderColors",
|
|
"nsCSSCounterStyleRule",
|
|
"nsCSSFontFaceRule",
|
|
"nsCSSKeyword",
|
|
"nsCSSPropertyID",
|
|
"nsCSSPropertyIDSet",
|
|
"nsCSSShadowArray",
|
|
"nsCSSUnit",
|
|
"nsCSSValue",
|
|
"nsCSSValueSharedList",
|
|
"nsChangeHint",
|
|
"nsCursorImage",
|
|
"nsFont",
|
|
"nsIAtom",
|
|
"nsIURI",
|
|
"nsCompatibility",
|
|
"nsMediaFeature",
|
|
"nsRestyleHint",
|
|
"nsStyleBackground",
|
|
"nsStyleBorder",
|
|
"nsStyleColor",
|
|
"nsStyleColumn",
|
|
"nsStyleContent",
|
|
"nsStyleContentData",
|
|
"nsStyleContentData_CounterFunction",
|
|
"nsStyleContentType",
|
|
"nsStyleContext",
|
|
"nsStyleCoord",
|
|
"nsStyleCoord_Calc",
|
|
"nsStyleCoord_CalcValue",
|
|
"nsStyleDisplay",
|
|
"nsStyleEffects",
|
|
"nsStyleFilter",
|
|
"nsStyleFont",
|
|
"nsStyleGradient",
|
|
"nsStyleGradientStop",
|
|
"nsStyleGridTemplate",
|
|
"nsStyleImage",
|
|
"nsStyleImageLayers",
|
|
"nsStyleImageLayers_Layer",
|
|
"nsStyleImageLayers_LayerType",
|
|
"nsStyleImageRequest",
|
|
"nsStyleList",
|
|
"nsStyleMargin",
|
|
"nsStyleOutline",
|
|
"nsStylePadding",
|
|
"nsStylePosition",
|
|
"nsStyleQuoteValues",
|
|
"nsStyleSVG",
|
|
"nsStyleSVGPaint",
|
|
"nsStyleSVGReset",
|
|
"nsStyleTable",
|
|
"nsStyleTableBorder",
|
|
"nsStyleText",
|
|
"nsStyleTextReset",
|
|
"nsStyleUIReset",
|
|
"nsStyleUnion",
|
|
"nsStyleUnit",
|
|
"nsStyleUserInterface",
|
|
"nsStyleVariables",
|
|
"nsStyleVisibility",
|
|
"nsStyleXUL",
|
|
"nsTimingFunction",
|
|
"nscolor",
|
|
"nscoord",
|
|
"nsresult",
|
|
"Loader",
|
|
"LoaderReusableStyleSheets",
|
|
"ServoStyleSheet",
|
|
"ServoComputedData",
|
|
"ServoStyleContext",
|
|
"ServoStyleContextStrong",
|
|
"EffectCompositor_CascadeLevel",
|
|
"UpdateAnimationsTasks",
|
|
"ParsingMode",
|
|
"InheritTarget",
|
|
"URLMatchingFunction",
|
|
"StyleRuleInclusion",
|
|
"nsStyleTransformMatrix::MatrixTransformOperator",
|
|
"RawGeckoGfxMatrix4x4",
|
|
]
|
|
array-types = [
|
|
{ cpp-type = "uintptr_t", rust-type = "usize" },
|
|
]
|
|
servo-owned-types = [
|
|
{ name = "RawServoStyleSet", opaque = true },
|
|
{ name = "ServoElementSnapshot", opaque = false },
|
|
{ name = "RawServoAnimationValueMap", opaque = true },
|
|
]
|
|
servo-immutable-borrow-types = [
|
|
"RawGeckoNode",
|
|
"RawGeckoElement",
|
|
"RawGeckoDocument",
|
|
"RawServoDeclarationBlockStrong",
|
|
"RawGeckoPresContext",
|
|
"RawGeckoStyleAnimationList",
|
|
"RawGeckoXBLBinding",
|
|
]
|
|
servo-borrow-types = [
|
|
"nsCSSPropertyIDSet",
|
|
"nsCSSValue",
|
|
"nsTimingFunction",
|
|
"RawGeckoAnimationPropertySegment",
|
|
"RawGeckoComputedTiming",
|
|
"RawGeckoCSSPropertyIDList",
|
|
"RawGeckoKeyframeList",
|
|
"RawGeckoPropertyValuePairList",
|
|
"RawGeckoComputedKeyframeValuesList",
|
|
"RawGeckoFontFaceRuleList",
|
|
"RawGeckoServoStyleRuleList",
|
|
"RawGeckoServoAnimationValueList",
|
|
]
|
|
fixups = [
|
|
# hack for gecko-owned string
|
|
{ pat = "<nsString", rep = "<nsStringRepr" },
|
|
]
|