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

with Files("Restyle*"):
    BUG_COMPONENT = ("Core", "CSS Parsing and Computation")

with Files("nsStyle*"):
    BUG_COMPONENT = ("Core", "CSS Parsing and Computation")

with Files("nsChangeHint.h"):
    BUG_COMPONENT = ("Core", "CSS Parsing and Computation")

with Files("nsBidi*"):
    BUG_COMPONENT = ("Core", "Layout: Text and Fonts")

with Files("AccessibleCaret*"):
    BUG_COMPONENT = ("Core", "DOM: Selection")

XPIDL_SOURCES += [
    "nsILayoutHistoryState.idl",
    "nsIPreloadedStyleSheet.idl",
    "nsIStyleSheetService.idl",
]

if CONFIG["MOZ_DEBUG"]:
    UNIFIED_SOURCES += [
        "nsAutoLayoutPhase.cpp",
    ]

XPIDL_MODULE = "layout_base"

EXPORTS += [
    "CaretAssociationHint.h",
    "FrameProperties.h",
    "LayoutConstants.h",
    "LayoutLogging.h",
    "MobileViewportManager.h",
    "nsAutoLayoutPhase.h",
    "nsBidiPresUtils.h",
    "nsCaret.h",
    "nsChangeHint.h",
    "nsCompatibility.h",
    "nsCounterManager.h",
    "nsCSSFrameConstructor.h",
    "nsFrameManager.h",
    "nsFrameTraversal.h",
    "nsGenConList.h",
    "nsIFrameTraversal.h",
    "nsIPercentBSizeObserver.h",
    "nsIReflowCallback.h",
    "nsLayoutUtils.h",
    "nsPresArena.h",
    "nsPresArenaObjectList.h",
    "nsPresContext.h",
    "nsPresContextInlines.h",
    "nsQuoteList.h",
    "nsRefreshDriver.h",
    "nsRefreshObservers.h",
    "nsStyleChangeList.h",
    "nsStyleSheetService.h",
    "StackArena.h",
    "TouchManager.h",
    "Units.h",
    "UnitTransforms.h",
    "WordMovementType.h",
    "ZoomConstraintsClient.h",
]

EXPORTS.mozilla += [
    "AccessibleCaretEventHub.h",
    "ArenaObjectID.h",
    "Baseline.h",
    "ContainStyleScopeManager.h",
    "DepthOrderedFrameList.h",
    "DisplayPortUtils.h",
    "GeckoMVMContext.h",
    "GeometryUtils.h",
    "MediaEmulationData.h",
    "MotionPathUtils.h",
    "MVMContext.h",
    "OverflowChangedTracker.h",
    "PositionedEventTargeting.h",
    "PresShell.h",
    "PresShellForwards.h",
    "PresShellInlines.h",
    "RelativeTo.h",
    "RestyleManager.h",
    "ScrollStyles.h",
    "ScrollTypes.h",
    "ShapeUtils.h",
    "StaticPresData.h",
    "SurfaceFromElementResult.h",
    "ViewportUtils.h",
]

EXPORTS.mozilla.layout += [
    "LayoutTelemetryTools.h",
]

UNIFIED_SOURCES += [
    "AccessibleCaret.cpp",
    "AccessibleCaretEventHub.cpp",
    "AccessibleCaretManager.cpp",
    "Baseline.cpp",
    "ContainStyleScopeManager.cpp",
    "DepthOrderedFrameList.cpp",
    "DisplayPortUtils.cpp",
    "GeckoMVMContext.cpp",
    "GeometryUtils.cpp",
    "LayoutLogging.cpp",
    "LayoutTelemetryTools.cpp",
    "MobileViewportManager.cpp",
    "MotionPathUtils.cpp",
    "nsBidiPresUtils.cpp",
    "nsCaret.cpp",
    "nsCounterManager.cpp",
    "nsCSSColorUtils.cpp",
    "nsCSSFrameConstructor.cpp",
    "nsDocumentViewer.cpp",
    "nsFrameManager.cpp",
    "nsFrameTraversal.cpp",
    "nsGenConList.cpp",
    "nsLayoutDebugger.cpp",
    "nsLayoutHistoryState.cpp",
    "nsLayoutUtils.cpp",
    "nsPresArena.cpp",
    "nsPresContext.cpp",
    "nsQuoteList.cpp",
    "nsRefreshObservers.cpp",
    "nsStyleChangeList.cpp",
    "nsStyleSheetService.cpp",
    "PositionedEventTargeting.cpp",
    "PresShell.cpp",
    "RestyleManager.cpp",
    "ScrollStyles.cpp",
    "ShapeUtils.cpp",
    "StackArena.cpp",
    "StaticPresData.cpp",
    "TouchManager.cpp",
    "ViewportUtils.cpp",
    "ZoomConstraintsClient.cpp",
]

# nsRefreshDriver.cpp needs to be built separately because of name clashes in the OS X headers
SOURCES += [
    "nsRefreshDriver.cpp",
]

if CONFIG["ENABLE_TESTS"]:
    DIRS += ["gtest"]

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

LOCAL_INCLUDES += [
    "../forms",
    "../generic",
    "../mathml",
    "../painting",
    "../printing",
    "../style",
    "../tables",
    "../xul",
    "../xul/tree/",
    "/docshell/base",
    "/dom/base",
    "/dom/html",
    "/dom/svg",
    "/dom/xul",
    "/view",
]

if CONFIG["MOZ_WIDGET_TOOLKIT"] == "android":
    LOCAL_INCLUDES += [
        "/widget/android",
    ]

IPDL_SOURCES += [
    "PresState.ipdlh",
]

FINAL_LIBRARY = "xul"

BROWSER_CHROME_MANIFESTS += ["tests/browser.ini"]
MARIONETTE_LAYOUT_MANIFESTS += ["tests/marionette/manifest.ini"]
MOCHITEST_MANIFESTS += ["tests/mochitest.ini"]
MOCHITEST_CHROME_MANIFESTS += ["tests/chrome/chrome.ini"]