summaryrefslogtreecommitdiffstats
path: root/toolkit/xre/dllservices/mozglue/moz.build
blob: d68ee52e5eedf6b4cbfead23f4548a38f9da03db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# -*- 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/.

Library("dllservices_mozglue")

if CONFIG["MOZ_WIDGET_TOOLKIT"]:
    SOURCES += [
        # This file contains a |using namespace mozilla;| statement
        "WindowsDllBlocklist.cpp",
    ]

    UNIFIED_SOURCES += [
        "Authenticode.cpp",
        "LoaderObserver.cpp",
        "ModuleLoadFrame.cpp",
        "WindowsBCryptInitialization.cpp",
        "WindowsFallbackLoaderAPI.cpp",
        "WindowsMsctfInitialization.cpp",
        "WindowsStackWalkInitialization.cpp",
    ]

if not CONFIG["JS_STANDALONE"]:
    UNIFIED_SOURCES += [
        "CacheNtDllThunk.cpp",
    ]

OS_LIBS += [
    "crypt32",
    "ntdll",
    "version",
    "wintrust",
]

DELAYLOAD_DLLS += [
    "crypt32.dll",
    "wintrust.dll",
]

EXPORTS += [
    "nsWindowsDllInterceptor.h",
]

EXPORTS.mozilla += [
    "Authenticode.h",
    "CacheNtDllThunk.h",
    "LoaderAPIInterfaces.h",
    "ModuleLoadInfo.h",
    "WindowsBCryptInitialization.h",
    "WindowsDllBlocklist.h",
    "WindowsDllBlocklistCommon.h",
    "WindowsDllBlocklistInfo.h",
    "WindowsMsctfInitialization.h",
    "WindowsStackWalkInitialization.h",
]

EXPORTS.mozilla.glue += [
    "SharedSection.h",
    "WindowsDllServices.h",
]

# Generate DLL Blocklists
blocklist_header_types = ["A11y", "Launcher", "Legacy", "Test"]
blocklist_file_leaf_tpl = "WindowsDllBlocklist{0}Defs.h"
blocklist_files = tuple(
    [blocklist_file_leaf_tpl.format(type) for type in blocklist_header_types]
)

GeneratedFile(
    *blocklist_files,
    script="gen_dll_blocklist_defs.py",
    entry_point="gen_blocklists",
    inputs=["WindowsDllBlocklistDefs.in"]
)

EXPORTS.mozilla += ["!" + hdr for hdr in blocklist_files]

DIRS += [
    "interceptor",
]

FINAL_LIBRARY = "mozglue"