moz.build (2644B)
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 7 FINAL_LIBRARY = "js" 8 9 # Includes should be relative to parent path 10 LOCAL_INCLUDES += ["!..", ".."] 11 12 include("../js-compileflags.mozbuild") 13 include("../js-config.mozbuild") 14 include("../js-cxxflags.mozbuild") 15 16 17 # Generate frontend/ReservedWordsGenerated.h from frontend/ReservedWords.h 18 flags = [] 19 if CONFIG["ENABLE_DECORATORS"]: 20 flags.append("--enable-decorators") 21 if CONFIG["ENABLE_EXPLICIT_RESOURCE_MANAGEMENT"]: 22 flags.append("--enable-explicit-resource-management") 23 if flags: 24 GeneratedFile( 25 "ReservedWordsGenerated.h", 26 script="GenerateReservedWords.py", 27 inputs=["ReservedWords.h"], 28 flags=flags, 29 ) 30 else: 31 GeneratedFile( 32 "ReservedWordsGenerated.h", 33 script="GenerateReservedWords.py", 34 inputs=["ReservedWords.h"], 35 ) 36 37 UNIFIED_SOURCES += [ 38 "AbstractScopePtr.cpp", 39 "AsyncEmitter.cpp", 40 "BytecodeCompiler.cpp", 41 "BytecodeControlStructures.cpp", 42 "BytecodeEmitter.cpp", 43 "BytecodeSection.cpp", 44 "CallOrNewEmitter.cpp", 45 "CForEmitter.cpp", 46 "DefaultEmitter.cpp", 47 "DoWhileEmitter.cpp", 48 "ElemOpEmitter.cpp", 49 "EmitterScope.cpp", 50 "ExpressionStatementEmitter.cpp", 51 "FoldConstants.cpp", 52 "ForInEmitter.cpp", 53 "ForOfEmitter.cpp", 54 "ForOfLoopControl.cpp", 55 "FrontendContext.cpp", 56 "FunctionEmitter.cpp", 57 "IfEmitter.cpp", 58 "JumpList.cpp", 59 "LabelEmitter.cpp", 60 "LexicalScopeEmitter.cpp", 61 "NameFunctions.cpp", 62 "NameOpEmitter.cpp", 63 "ObjectEmitter.cpp", 64 "ObjLiteral.cpp", 65 "OptionalEmitter.cpp", 66 "ParseContext.cpp", 67 "ParseNode.cpp", 68 "ParseNodeVerify.cpp", 69 "ParserAtom.cpp", 70 "PrivateOpEmitter.cpp", 71 "PropOpEmitter.cpp", 72 "SharedContext.cpp", 73 "SourceNotes.cpp", 74 "Stencil.cpp", 75 "StencilXdr.cpp", 76 "SwitchEmitter.cpp", 77 "TDZCheckCache.cpp", 78 "TokenStream.cpp", 79 "TryEmitter.cpp", 80 "WhileEmitter.cpp", 81 ] 82 83 if CONFIG["ENABLE_DECORATORS"]: 84 UNIFIED_SOURCES += [ 85 "DecoratorEmitter.cpp", 86 ] 87 88 if CONFIG["ENABLE_EXPLICIT_RESOURCE_MANAGEMENT"]: 89 UNIFIED_SOURCES += [ 90 "UsingEmitter.cpp", 91 ] 92 93 # Parser.cpp cannot be built in unified mode because of explicit 94 # template instantiations. 95 SOURCES += [ 96 "Parser.cpp", 97 ] 98 99 if CONFIG["FUZZING_INTERFACES"] and CONFIG["LIBFUZZER"]: 100 include("/tools/fuzzing/libfuzzer-config.mozbuild")