1# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
2# vim: set filetype=python:
3# This Source Code Form is subject to the terms of the Mozilla Public
4# License, v. 2.0. If a copy of the MPL was not distributed with this
5# file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7EXPORTS += [
8    "nsXPCOM.h",
9    "nsXPCOMCID.h",
10    "nsXPCOMCIDInternal.h",
11    "nsXULAppAPI.h",
12    "XREChildData.h",
13    "xrecore.h",
14    "XREShellData.h",
15]
16
17EXPORTS.mozilla += [
18    "!Services.h",
19    "FileLocation.h",
20    "GeckoProcessTypes.h",
21    "IOInterposer.h",
22    "LateWriteChecks.h",
23    "Omnijar.h",
24    "PoisonIOInterposer.h",
25    "SmallArrayLRUCache.h",
26    "XPCOM.h",
27    "XREAppData.h",
28]
29
30if CONFIG["OS_ARCH"] == "WINNT":
31    EXPORTS.mozilla += [
32        "perfprobe.h",
33    ]
34    SOURCES += [
35        "perfprobe.cpp",
36        "PoisonIOInterposerBase.cpp",
37        "PoisonIOInterposerWin.cpp",
38    ]
39elif CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
40    UNIFIED_SOURCES += [
41        "PoisonIOInterposerBase.cpp",
42        "PoisonIOInterposerMac.cpp",
43    ]
44    if CONFIG["CPU_ARCH"] != "aarch64":
45        SOURCES += ["mach_override.c"]
46        SOURCES["mach_override.c"].flags += ["-Wno-unused-function"]
47else:
48    SOURCES += ["PoisonIOInterposerStub.cpp"]
49
50include("../glue/objs.mozbuild")
51
52XPCOM_MANIFESTS += [
53    "components.conf",
54]
55
56UNIFIED_SOURCES += xpcom_gluens_src_cppsrcs
57UNIFIED_SOURCES += xpcom_glue_src_cppsrcs
58
59UNIFIED_SOURCES += [
60    "FileLocation.cpp",
61    "IOInterposer.cpp",
62    "LateWriteChecks.cpp",
63    "MainThreadIOLogger.cpp",
64    "Omnijar.cpp",
65    "XPCOMInit.cpp",
66]
67
68SOURCES += ["!Services.cpp"]
69
70if CONFIG["OS_ARCH"] != "WINNT":
71    SOURCES += [
72        "NSPRInterposer.cpp",
73    ]
74
75GeneratedFile("Services.cpp", script="Services.py", entry_point="services_cpp")
76GeneratedFile("Services.h", script="Services.py", entry_point="services_h")
77GeneratedFile("services.rs", script="Services.py", entry_point="services_rs")
78
79include("/ipc/chromium/chromium-config.mozbuild")
80
81FINAL_LIBRARY = "xul"
82
83DEFINES["_IMPL_NS_STRINGAPI"] = True
84DEFINES["OMNIJAR_NAME"] = CONFIG["OMNIJAR_NAME"]
85
86LOCAL_INCLUDES += [
87    "!..",
88    "../base",
89    "../components",
90    "../ds",
91    "../glue",
92    "../io",
93    "../threads",
94    "/chrome",
95    "/docshell/base",
96    "/js/xpconnect/loader",
97]
98
99if CONFIG["MOZ_VPX"]:
100    LOCAL_INCLUDES += [
101        "/media/libvpx",
102    ]
103
104if CONFIG["MOZ_WIDGET_TOOLKIT"] == "cocoa":
105    CXXFLAGS += CONFIG["TK_CFLAGS"]
106