Changeset 120361 in webkit
- Timestamp:
- Jun 14, 2012 2:15:52 PM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r120360 r120361 1 2012-06-14 Maciej Stachowiak <mjs@apple.com> 2 3 The whole world rebuilds when you touch any IDL file 4 https://bugs.webkit.org/show_bug.cgi?id=89125 5 6 Reviewed by Sam Weinig. 7 8 No new tests; this only changes the build system and its dependencies. 9 10 * bindings/scripts/preprocess-idls.pl: Optionally generate the 11 dependencies for supplemental IDLs in Makefile format. 12 * DerivedSources.make: Use the new feature of preprocess-idls.pl to generate 13 the correct IDL dependencies created by Supplemental, then include it. This way, 14 we avoid the situation where every bindings file implicitly depends on every single 15 IDL file in the project. 16 1 17 2012-06-14 Ian Vollick <vollick@chromium.org> 2 18 -
trunk/Source/WebCore/DerivedSources.make
r119954 r120361 616 616 617 617 all : \ 618 $(SUPPLEMENTAL_DEPENDENCY_FILE) \ 618 619 $(JS_DOM_HEADERS) \ 619 620 $(WEB_DOM_HEADERS) \ … … 950 951 JS_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorJS.pm 951 952 952 SUPPLEMENTAL_DEPENDENCY_FILE = ./supplemental_dependency.tmp 953 SUPPLEMENTAL_DEPENDENCY_FILE = ./SupplementalDependencies.txt 954 SUPPLEMENTAL_MAKEFILE_DEPS = ./SupplementalDependencies.dep 953 955 IDL_FILES_TMP = ./idl_files.tmp 954 956 ADDITIONAL_IDLS = $(WebCore)/inspector/JavaScriptCallFrame.idl … … 960 962 space += 961 963 962 $(SUPPLEMENTAL_ DEPENDENCY_FILE) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(ADDITIONAL_IDLS) $(IDL_ATTRIBUTES_FILE)964 $(SUPPLEMENTAL_MAKEFILE_DEPS) : $(PREPROCESS_IDLS_SCRIPTS) $(BINDING_IDLS) $(ADDITIONAL_IDLS) $(IDL_ATTRIBUTES_FILE) 963 965 printf "$(subst $(space),,$(patsubst %,%\n,$(BINDING_IDLS) $(ADDITIONAL_IDLS)))" > $(IDL_FILES_TMP) 964 $(call preprocess_idls_script, $(PREPROCESS_IDLS_SCRIPTS)) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $ @ --idlAttributesFile $(IDL_ATTRIBUTES_FILE)966 $(call preprocess_idls_script, $(PREPROCESS_IDLS_SCRIPTS)) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --idlFilesList $(IDL_FILES_TMP) --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) --supplementalMakefileDeps $@ --idlAttributesFile $(IDL_ATTRIBUTES_FILE) 965 967 rm -f $(IDL_FILES_TMP) 966 968 967 JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) $(SUPPLEMENTAL_DEPENDENCY_FILE)969 JS%.h : %.idl $(JS_BINDINGS_SCRIPTS) 968 970 $(call generator_script, $(JS_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_JAVASCRIPT" --generator JS --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $< 969 971 972 include $(SUPPLEMENTAL_MAKEFILE_DEPS) 970 973 971 974 # Inspector interfaces generator … … 998 1001 CPP_BINDINGS_SCRIPTS = $(GENERATE_SCRIPTS) bindings/scripts/CodeGeneratorCPP.pm 999 1002 1000 WebDOM%.h : %.idl $(CPP_BINDINGS_SCRIPTS) $(SUPPLEMENTAL_DEPENDENCY_FILE)1003 WebDOM%.h : %.idl $(CPP_BINDINGS_SCRIPTS) 1001 1004 $(call generator_script, $(CPP_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_CPP" --generator CPP --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $< 1002 1005 endif # BUILDING_WX … … 1041 1044 1042 1045 DOM_BINDINGS_SCRIPTS = $(GENERATE_BINDING_SCRIPTS) bindings/scripts/CodeGeneratorObjC.pm 1043 DOM%.h : %.idl $(DOM_BINDINGS_SCRIPTS) $(SUPPLEMENTAL_DEPENDENCY_FILE)bindings/objc/PublicDOMInterfaces.h1046 DOM%.h : %.idl $(DOM_BINDINGS_SCRIPTS) bindings/objc/PublicDOMInterfaces.h 1044 1047 $(call generator_script, $(DOM_BINDINGS_SCRIPTS)) $(IDL_COMMON_ARGS) --defines "$(FEATURE_DEFINES) $(ADDITIONAL_IDL_DEFINES) LANGUAGE_OBJECTIVE_C" --generator ObjC --supplementalDependencyFile $(SUPPLEMENTAL_DEPENDENCY_FILE) $< 1045 1048 -
trunk/Source/WebCore/bindings/scripts/preprocess-idls.pl
r109036 r120361 33 33 my $idlAttributesFile; 34 34 my $supplementalDependencyFile; 35 my $supplementalMakefileDeps; 35 36 36 37 GetOptions('defines=s' => \$defines, … … 39 40 'idlFilesList=s' => \$idlFilesList, 40 41 'idlAttributesFile=s' => \$idlAttributesFile, 41 'supplementalDependencyFile=s' => \$supplementalDependencyFile); 42 'supplementalDependencyFile=s' => \$supplementalDependencyFile, 43 'supplementalMakefileDeps=s' => \$supplementalMakefileDeps); 42 44 43 45 die('Must specify #define macros using --defines.') unless defined($defines); … … 57 59 my %documents; 58 60 my %interfaceNameToIdlFile; 61 my %idlFileToInterfaceName; 59 62 foreach my $idlFile (@idlFiles) { 60 63 my $fullPath = Cwd::realpath($idlFile); 61 64 my $parser = IDLParser->new(!$verbose); 62 65 $documents{$fullPath} = $parser->Parse($idlFile, $defines, $preprocessor); 63 $interfaceNameToIdlFile{fileparse(basename($idlFile), ".idl")} = $fullPath; 66 my $interfaceName = fileparse(basename($idlFile), ".idl"); 67 $interfaceNameToIdlFile{$interfaceName} = $fullPath; 68 $idlFileToInterfaceName{$fullPath} = $interfaceName; 64 69 } 65 70 … … 97 102 # Document.idl is supplemented by S.idl, and Event.idl is supplemented by no IDLs. 98 103 # The IDL that supplements another IDL (e.g. P.idl) never appears in the dependency file. 104 99 105 open FH, "> $supplementalDependencyFile" or die "Cannot open $supplementalDependencyFile\n"; 106 100 107 foreach my $idlFile (sort keys %supplementals) { 101 108 print FH $idlFile, " @{$supplementals{$idlFile}}\n"; 102 109 } 103 110 close FH; 111 112 113 if ($supplementalMakefileDeps) { 114 open MAKE_FH, "> $supplementalMakefileDeps" or die "Cannot open $supplementalMakefileDeps\n"; 115 my @all_dependencies = []; 116 foreach my $idlFile (sort keys %supplementals) { 117 my $basename = $idlFileToInterfaceName{$idlFile}; 118 119 my @dependencies = map { basename($_) } @{$supplementals{$idlFile}}; 120 121 print MAKE_FH "JS${basename}.h: @{dependencies}\n"; 122 print MAKE_FH "DOM${basename}.h: @{dependencies}\n"; 123 print MAKE_FH "WebDOM${basename}.h: @{dependencies}\n"; 124 foreach my $dependency (@dependencies) { 125 print MAKE_FH "${dependency}:\n"; 126 } 127 } 128 129 close MAKE_FH; 130 } 131 104 132 105 133 sub loadIDLAttributes
Note: See TracChangeset
for help on using the changeset viewer.