mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
Generate code into OUT_DIR.
This is necessary to ensure Cargo knows when to rebuild. Normally .gitignore would be enough to exclude these from Cargo's freshness calculation, but https://github.com/rust-lang/cargo/issues/1729 prevents this currently. This is the new, correct way to do these thigns, just like the style crate does.
This commit is contained in:
parent
e1b28d893e
commit
07d95627ca
5 changed files with 64 additions and 51 deletions
|
@ -1429,25 +1429,26 @@ class CGImports(CGWrapper):
|
|||
"""
|
||||
Generates the appropriate import/use statements.
|
||||
"""
|
||||
def __init__(self, child, descriptors, callbacks, imports):
|
||||
def __init__(self, child, descriptors, callbacks, imports, ignored_warnings=None):
|
||||
"""
|
||||
Adds a set of imports.
|
||||
"""
|
||||
ignored_warnings = [
|
||||
# Allow unreachable_code because we use 'break' in a way that
|
||||
# sometimes produces two 'break's in a row. See for example
|
||||
# CallbackMember.getArgConversions.
|
||||
'unreachable_code',
|
||||
'non_camel_case_types',
|
||||
'non_upper_case_globals',
|
||||
'unused_parens',
|
||||
'unused_imports',
|
||||
'unused_variables',
|
||||
'unused_unsafe',
|
||||
'unused_mut',
|
||||
'unused_assignments',
|
||||
'dead_code',
|
||||
]
|
||||
if ignored_warnings is None:
|
||||
ignored_warnings = [
|
||||
# Allow unreachable_code because we use 'break' in a way that
|
||||
# sometimes produces two 'break's in a row. See for example
|
||||
# CallbackMember.getArgConversions.
|
||||
'unreachable_code',
|
||||
'non_camel_case_types',
|
||||
'non_upper_case_globals',
|
||||
'unused_parens',
|
||||
'unused_imports',
|
||||
'unused_variables',
|
||||
'unused_unsafe',
|
||||
'unused_mut',
|
||||
'unused_assignments',
|
||||
'dead_code',
|
||||
]
|
||||
|
||||
def componentTypes(type):
|
||||
if type.nullable():
|
||||
|
@ -1496,7 +1497,9 @@ class CGImports(CGWrapper):
|
|||
|
||||
imports += ['dom::types::%s' % getIdentifier(t).name for t in types if isImportable(t)]
|
||||
|
||||
statements = ['#![allow(%s)]' % ','.join(ignored_warnings)]
|
||||
statements = []
|
||||
if len(ignored_warnings) > 0:
|
||||
statements.append('#![allow(%s)]' % ','.join(ignored_warnings))
|
||||
statements.extend('use %s;' % i for i in sorted(set(imports)))
|
||||
|
||||
CGWrapper.__init__(self, child,
|
||||
|
@ -1815,7 +1818,7 @@ def UnionTypes(descriptors, dictionaries, callbacks, config):
|
|||
CGUnionConversionStruct(t, provider)
|
||||
])
|
||||
|
||||
return CGImports(CGList(SortedDictValues(unionStructs), "\n\n"), [], [], imports)
|
||||
return CGImports(CGList(SortedDictValues(unionStructs), "\n\n"), [], [], imports, ignored_warnings=[])
|
||||
|
||||
|
||||
class Argument():
|
||||
|
@ -5415,7 +5418,7 @@ class GlobalGenRoots():
|
|||
'js::jsapi::JSContext',
|
||||
'js::jsapi::JSObject',
|
||||
'libc',
|
||||
])
|
||||
], ignored_warnings=[])
|
||||
|
||||
@staticmethod
|
||||
def InterfaceTypes(config):
|
||||
|
@ -5438,8 +5441,7 @@ class GlobalGenRoots():
|
|||
def InheritTypes(config):
|
||||
|
||||
descriptors = config.getDescriptors(register=True, isCallback=False)
|
||||
allprotos = [CGGeneric("#![allow(unused_imports)]\n"),
|
||||
CGGeneric("use dom::types::*;\n"),
|
||||
allprotos = [CGGeneric("use dom::types::*;\n"),
|
||||
CGGeneric("use dom::bindings::js::{JS, JSRef, LayoutJS, Rootable, Temporary};\n"),
|
||||
CGGeneric("use dom::bindings::trace::JSTraceable;\n"),
|
||||
CGGeneric("use dom::bindings::utils::Reflectable;\n"),
|
||||
|
|
|
@ -155,11 +155,30 @@ pub mod codegen {
|
|||
// FIXME(#5853) we shouldn't need to
|
||||
// allow moved_no_move here
|
||||
#[allow(unrooted_must_root, moved_no_move)]
|
||||
pub mod Bindings;
|
||||
pub mod InterfaceTypes;
|
||||
pub mod InheritTypes;
|
||||
pub mod PrototypeList;
|
||||
pub mod RegisterBindings;
|
||||
pub mod UnionTypes;
|
||||
pub mod Bindings {
|
||||
include!(concat!(env!("OUT_DIR"), "/Bindings/mod.rs"));
|
||||
}
|
||||
pub mod InterfaceTypes {
|
||||
include!(concat!(env!("OUT_DIR"), "/InterfaceTypes.rs"));
|
||||
}
|
||||
#[allow(unused_imports)]
|
||||
pub mod InheritTypes {
|
||||
include!(concat!(env!("OUT_DIR"), "/InheritTypes.rs"));
|
||||
}
|
||||
pub mod PrototypeList {
|
||||
include!(concat!(env!("OUT_DIR"), "/PrototypeList.rs"));
|
||||
}
|
||||
#[allow(unreachable_code, non_camel_case_types, non_upper_case_globals, unused_parens,
|
||||
unused_imports, unused_variables, unused_unsafe, unused_mut, unused_assignments,
|
||||
dead_code)]
|
||||
pub mod RegisterBindings {
|
||||
include!(concat!(env!("OUT_DIR"), "/RegisterBindings.rs"));
|
||||
}
|
||||
#[allow(unreachable_code, non_camel_case_types, non_upper_case_globals, unused_parens,
|
||||
unused_imports, unused_variables, unused_unsafe, unused_mut, unused_assignments,
|
||||
dead_code)]
|
||||
pub mod UnionTypes {
|
||||
include!(concat!(env!("OUT_DIR"), "/UnionTypes.rs"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue