make gbuildtojson and make xx-ide-integration problems.

Michael Stahl mstahl at redhat.com
Wed Dec 14 15:29:16 UTC 2016


On 12/14/2016 04:23 PM, Bjoern Michaelsen wrote:
> On Wed, Dec 14, 2016 at 01:29:28PM +0100, Jan Iversen wrote:

>>   File "/Volumes/LIBREOFFICE/play/core/bin/gbuild-to-ide", line 136, in __lib_from_json
>>     GbuildParser.libpattern.match(os.path.basename(json['MAKEFILE'])).group(1),
>> AttributeError: 'NoneType' object has no attribute 'group'
>> Makefile:413: recipe for target 'vim-ide-integration' failed
>> make: *** [vim-ide-integration] Error 1
> 
> This essentially means the GbuildParser.libpattern regexp from
> /bin/gbuild-to-ide does not find what it expects, namely: Library_(.*)\.mk in
> the MAKEFILE variable. Looking at the attached file
> workdir/GbuildToJson/Library/libscqahelper.dylib it has:
> 
>  "MAKEFILE": "/Volumes/LIBREOFFICE/play/core/sc/CppunitTest_sc_ucalc.mk"
> 
> which is wrong. It should be:
> 
>  "MAKEFILE": "/Volumes/LIBREOFFICE/play/core/sc/Library_scqahelper.mk"
> 
> And using a Library_foo.mk regex on a CppunitTest_foo.mk ist doomed. The
> MAKEFILE var is filled at
> https://gerrit.libreoffice.org/gitweb?p=core.git;a=blob;f=solenv/gbuild/extensions/post_GbuildToJson.mk;h=c608e33c654677491a8d34df368d1e488934ba7c;hb=4e9dd6e1b79983db087790a50c811b8b14b65f8f#l57
> by filling T_MAKEFILE in gb_Postprocess_register_target with the last read
> makefile.
> 
> That works in general, but apparently not in this case -- I assume be
> scqahelper is not shipped with the product and never registered in postprocess.
> A solution would be to set the T_MAKEFILE var in the same way it was done for
> CppunitTests, which arent registered in postprocess either. see:
> 
>  https://gerrit.libreoffice.org/gitweb?p=core.git;a=commitdiff;h=ee8057caaa26dcddbf80b1e0a2f02d250089d1e3;hp=787d31a94510ca3de9ce582d7b7402dfca584b23
> 
> by moggi for reference.

the problem with that is that

> define gb_Module_add_check_target
> $(if $(filter CppunitTest_%,$(2)),$(call gb_Module__add_check_target_impl,$(1),$(2),$$(gb_Module_CURRENTTARGET)))
> endef

... expects only CppunitTest_% and does nothing with a Library_% being
added, and Module_sc.mk has:

> $(eval $(call gb_Module_add_check_targets,sc,\
> 	Library_scqahelper \
> 	$(if $(and $(filter $(COM),MSC),$(MERGELIBS)),, \
> 		CppunitTest_sc_ucalc) \
> 	CppunitTest_sc_core \
> ))




More information about the LibreOffice mailing list