|
1 # This Source Code Form is subject to the terms of the Mozilla Public |
|
2 # License, v. 2.0. If a copy of the MPL was not distributed with this |
|
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
|
4 |
|
5 abs_dist := $(abspath $(DIST)) |
|
6 webidl_base := $(topsrcdir)/dom/webidl |
|
7 |
|
8 # Generated by moz.build |
|
9 include webidlsrcs.mk |
|
10 |
|
11 ifdef GNU_CC |
|
12 OS_CXXFLAGS += -Wno-uninitialized |
|
13 endif |
|
14 |
|
15 # These come from webidlsrcs.mk. |
|
16 # TODO Write directly into backend.mk. |
|
17 CPPSRCS += $(globalgen_sources) $(unified_binding_cpp_files) |
|
18 |
|
19 # Generated bindings reference *Binding.h, not mozilla/dom/*Binding.h. And, |
|
20 # since we generate exported bindings directly to $(DIST)/include, we need |
|
21 # to add that path to the search list. |
|
22 # |
|
23 # Ideally, binding generation uses the prefixed header file names. |
|
24 # Bug 932092 tracks. |
|
25 LOCAL_INCLUDES += -I$(DIST)/include/mozilla/dom |
|
26 |
|
27 PYTHON_UNIT_TESTS += $(srcdir)/mozwebidlcodegen/test/test_mozwebidlcodegen.py |
|
28 |
|
29 include $(topsrcdir)/config/rules.mk |
|
30 |
|
31 # TODO This list should be emitted to a .pp file via |
|
32 # GenerateCSS2PropertiesWebIDL.py. |
|
33 css2properties_dependencies = \ |
|
34 $(topsrcdir)/layout/style/nsCSSPropList.h \ |
|
35 $(topsrcdir)/layout/style/nsCSSPropAliasList.h \ |
|
36 $(webidl_base)/CSS2Properties.webidl.in \ |
|
37 $(webidl_base)/CSS2PropertiesProps.h \ |
|
38 $(srcdir)/GenerateCSS2PropertiesWebIDL.py \ |
|
39 $(GLOBAL_DEPS) \ |
|
40 $(NULL) |
|
41 |
|
42 CSS2Properties.webidl: $(css2properties_dependencies) |
|
43 $(CPP) $(DEFINES) $(ACDEFINES) -I$(topsrcdir)/layout/style \ |
|
44 $(webidl_base)/CSS2PropertiesProps.h | \ |
|
45 PYTHONDONTWRITEBYTECODE=1 $(PYTHON) \ |
|
46 $(srcdir)/GenerateCSS2PropertiesWebIDL.py \ |
|
47 $(webidl_base)/CSS2Properties.webidl.in > $@ |
|
48 |
|
49 # Most of the logic for dependencies lives inside Python so it can be |
|
50 # used by multiple build backends. We simply have rules to generate |
|
51 # and include the .pp file. |
|
52 # |
|
53 # The generated .pp file contains all the important dependencies such as |
|
54 # changes to .webidl or .py files should result in code generation being |
|
55 # performed. But we do pull in file-lists.jon to catch file additions. |
|
56 codegen_dependencies := \ |
|
57 file-lists.json \ |
|
58 $(nonstatic_webidl_files) \ |
|
59 $(GLOBAL_DEPS) \ |
|
60 $(NULL) |
|
61 |
|
62 # The 1 is to make codegen.pp not optional. |
|
63 $(call include_deps,codegen.pp,1) |
|
64 |
|
65 codegen.pp: $(codegen_dependencies) |
|
66 $(call py_action,webidl,$(srcdir)) |
|
67 @$(TOUCH) $@ |
|
68 |
|
69 .PHONY: compiletests |
|
70 compiletests: |
|
71 $(call SUBMAKE,libs,test) |
|
72 |
|
73 GARBAGE += \ |
|
74 codegen.pp \ |
|
75 codegen.json \ |
|
76 parser.out \ |
|
77 WebIDLGrammar.pkl \ |
|
78 $(wildcard *.h) \ |
|
79 $(wildcard *Binding.cpp) \ |
|
80 $(wildcard *Event.cpp) \ |
|
81 $(wildcard *-event.cpp) \ |
|
82 $(wildcard *.webidl) \ |
|
83 $(NULL) |
|
84 |
|
85 DIST_GARBAGE += \ |
|
86 file-lists.json \ |
|
87 $(NULL) |