Hi Matúš, Bjoern, I've found a way how to speedup the build of offapi (which is a major problem on windows - on my box it takes about 10% of the entire build time). The trick is simple - instead of generating the files one by one, several .idl's are treated during one idlc call; something that has been there before gbuildization of the module. Of course, it also handles the case when everything is built, and just 1 .idl changes - in that case, only that one is rebuilt.
Unfortunately I am heading for vacation, and cannot finish it before I go - do you think anybody of you could have a look, please? With the attached patch, the offapi/UnoApi_offapi.mk (and oovbaapi) has to change to something like the following; this is of course only part of that, the other rules have to be adapted the same way, but that should be ~trivial. Second part of the problem is that idlc have to be patched to bail out with != 0 exit value, according to the comments it is not the case right now. Enjoy :-) ----- 8< offapi/UnoApi_offapi.mk 8< ----- $(eval $(call gb_UnoApiTarget_add_idlfiles_noheader,offapi,offapi/com/sun/star/accessibility,\ AccessBridge \ Accessible \ AccessibleContext \ )) $(eval $(call gb_UnoApiTarget_add_idlfiles_noheader,offapi,offapi/com/sun/star/auth,\ SSOExceptions \ SSOManagerFactory \ SSOPasswordCache \ )) $(eval $(call gb_UnoApiTarget_add_idlfiles_noheader,offapi,offapi/com/sun/star/awt,\ AccessibleButton \ AccessibleCheckBox \ AccessibleComboBox \ AccessibleDropDownComboBox \ AccessibleDropDownListBox \ AccessibleEdit \ AccessibleFixedText \ AccessibleIconChoiceControl \ AccessibleIconChoiceControlEntry \ AccessibleList \ AccessibleListBox \ [...more here...] )) [...etc.] ----- 8< ----- Thank you, Kendy
diff --git a/solenv/gbuild/UnoApiTarget.mk b/solenv/gbuild/UnoApiTarget.mk index 935c5ea..1050f6d 100644 --- a/solenv/gbuild/UnoApiTarget.mk +++ b/solenv/gbuild/UnoApiTarget.mk @@ -77,14 +77,24 @@ $(call gb_UnoApiTarget_get_header_target,)$(2).hdl :| $(call gb_UnoApiTarget_get endef define gb_UnoApiTarget_add_idlfiles_noheader -$(foreach idl,$(2),$(call gb_UnoApiTarget_add_idlfile_noheader,$(1),$(idl))) +$(foreach idl,$(3),$(call gb_UnoApiTarget_add_idlfile_noheader,$(1),$(2),$(idl))) + +$(call gb_UnoApiPartTarget_get_target,$(2)/noheader.done) : $(foreach repo,$(gb_REPOS),$(foreach idl,$(3),$(realpath $(repo)/$(2)/$(idl).idl))) + $$(call gb_Output_announce,$(2),$(true),IDL,2) + mkdir -p $(call gb_UnoApiPartTarget_get_target,$(2)) && \ + mkdir -p $(gb_Helper_MISC) && \ + RESPONSEFILE=`$(gb_MKTEMP)` && \ + echo "$(call gb_Helper_convert_native,$$(INCLUDE) $$(DEFS) -O $(call gb_UnoApiPartTarget_get_target,$(2)) -verbose -C $$?)" > $$$${RESPONSEFILE} && \ + $(gb_UnoApiTarget_IDLCCOMMAND) @$$$${RESPONSEFILE} > /dev/null && \ + rm -f $$$${RESPONSEFILE} && \ + touch $$@ endef define gb_UnoApiTarget_add_idlfile_noheader -$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiPartTarget_get_target,$(2).urd) -$(call gb_UnoApiPartTarget_get_target,$(2).urd) : $(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(2).idl)) -gb_UnoApiTarget_IDLFILES_$(1) += $(2).idl +$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiPartTarget_get_target,$(2)/$(3).urd) +$(call gb_UnoApiPartTarget_get_target,$(2)/$(3).urd) : $(call gb_UnoApiPartTarget_get_target,$(2)/noheader.done) +gb_UnoApiTarget_IDLFILES_$(1) += $(2)/$(3).idl endef @@ -165,10 +175,6 @@ mkdir -p $(dir $(1)) && \ endef -$(call gb_UnoApiPartTarget_get_target,%) : - $(call gb_Output_announce,$*,$(true),IDL,2) - $(call gb_UnoApiPartTarget__command,$@,$(dir $*),$<,$?,$(INCLUDE),$(DEFS)) - define gb_UnoApiTarget__command mkdir -p $(dir $(1)) && \
_______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice