1# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
2#
3# This file is part of the LibreOffice project.
4#
5# This Source Code Form is subject to the terms of the Mozilla Public
6# License, v. 2.0. If a copy of the MPL was not distributed with this
7# file, You can obtain one at http://mozilla.org/MPL/2.0/.
8#
9# This file incorporates work covered by the following license notice:
10#
11#   Licensed to the Apache Software Foundation (ASF) under one or more
12#   contributor license agreements. See the NOTICE file distributed
13#   with this work for additional information regarding copyright
14#   ownership. The ASF licenses this file to you under the Apache
15#   License, Version 2.0 (the "License"); you may not use this file
16#   except in compliance with the License. You may obtain a copy of
17#   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18#
19
20# CppunitTest class
21
22# Cap the number of threads unittests use.
23export MAX_CONCURRENCY=4
24# Disable searching for certificates by default
25export MOZILLA_CERTIFICATE_FOLDER=0
26
27gb_CppunitTest_UNITTESTFAILED ?= $(GBUILDDIR)/platform/unittest-failed-default.sh
28gb_CppunitTest_PYTHONDEPS ?= $(call gb_Library_get_target,pyuno_wrapper) $(if $(SYSTEM_PYTHON),,$(call gb_Package_get_target,python3))
29
30ifeq ($(strip $(gb_CppunitTest_GDBTRACE)),)
31ifneq ($(strip $(CPPUNITTRACE)),)
32ifneq ($(filter gdb,$(CPPUNITTRACE)),)
33gb_CppunitTest_GDBTRACE := $(subst gdb,gdb -ex "set environment $(subst =, ,$(gb_CppunitTest_CPPTESTPRECOMMAND))",$(CPPUNITTRACE))
34else ifneq ($(filter lldb,$(CPPUNITTRACE)),)
35gb_CppunitTest_PREGDBTRACE := lo_dyldpathfile=$(call var2file,$(shell $(gb_MKTEMP)),500,settings set target.env-vars $(gb_CppunitTest_CPPTESTPRECOMMAND))
36gb_CppunitTest_GDBTRACE := $(subst lldb,lldb -s $$lo_dyldpathfile,$(CPPUNITTRACE))
37gb_CppunitTest_POSTGDBTRACE := rm $$lo_dyldpathfile
38else
39gb_CppunitTest_GDBTRACE := $(CPPUNITTRACE)
40endif
41gb_CppunitTest__interactive := $(true)
42endif
43endif
44
45ifneq ($(strip $(VALGRIND)),)
46gb_CppunitTest_VALGRINDTOOL := valgrind --tool=$(VALGRIND) --num-callers=50 --error-exitcode=1 --trace-children=yes --trace-children-skip='*/java,*/gij'
47ifneq ($(strip $(VALGRIND_GDB)),)
48gb_CppunitTest_VALGRINDTOOL += --vgdb=yes --vgdb-error=0
49endif
50ifeq ($(strip $(VALGRIND)),memcheck)
51G_SLICE := always-malloc
52GLIBCXX_FORCE_NEW := 1
53endif
54endif
55
56ifneq (,$(filter perfcheck,$(MAKECMDGOALS)))
57$(if $(ENABLE_VALGRIND),,$(call gb_Output_error,Running performance tests with empty $$(ENABLE_VALGRIND) does not make sense))
58gb_CppunitTest_VALGRINDTOOL := valgrind --tool=callgrind --dump-instr=yes --instr-atstart=no --simulate-cache=yes --dump-instr=yes --collect-bus=yes --branch-sim=yes
59ifneq ($(strip $(VALGRIND_GDB)),)
60gb_CppunitTest_VALGRINDTOOL += --vgdb=yes --vgdb-error=0
61endif
62endif
63
64# defined by platform
65#  gb_CppunitTest_get_filename
66gb_CppunitTest_RUNTIMEDEPS := $(call gb_Executable_get_runtime_dependencies,cppunittester)
67gb_CppunitTest_CPPTESTCOMMAND := $(call gb_Executable_get_target_for_build,cppunittester)
68
69# i18npool dlopens localedata_* libraries.
70gb_CppunitTest_RUNTIMEDEPS += \
71	$(call gb_Library_get_target,localedata_en) \
72	$(call gb_Library_get_target,localedata_es) \
73	$(call gb_Library_get_target,localedata_euro) \
74	$(call gb_Library_get_target,localedata_others) \
75	$(call gb_Package_get_target,test_unittest) \
76
77define gb_CppunitTest__make_args
78$(HEADLESS) \
79"-env:BRAND_BASE_DIR=$(call gb_Helper_make_url,$(INSTROOT))" \
80"-env:BRAND_SHARE_SUBDIR=$(LIBO_SHARE_FOLDER)" \
81"-env:BRAND_SHARE_RESOURCE_SUBDIR=$(LIBO_SHARE_RESOURCE_FOLDER)" \
82"-env:UserInstallation=$(call gb_Helper_make_url,$(call gb_CppunitTest_get_target,$*).user)" \
83$(if $(URE),\
84    $(if $(strip $(CONFIGURATION_LAYERS)),\
85	    "-env:CONFIGURATION_LAYERS=$(strip $(CONFIGURATION_LAYERS))") \
86    $(if $(strip $(UNO_TYPES)),\
87	    "-env:UNO_TYPES=$(foreach item,$(UNO_TYPES),$(call gb_Helper_make_url,$(item)))") \
88    $(if $(strip $(UNO_SERVICES)),\
89	"-env:UNO_SERVICES=$(foreach item,$(UNO_SERVICES),$(call gb_Helper_make_url,$(item)))") \
90	$(if $(strip $(JAVA_URE)),\
91		-env:URE_MORE_JAVA_TYPES=$(call gb_Helper_make_url,$(call gb_Jar_get_target,unoil))) \
92	-env:URE_INTERNAL_LIB_DIR=$(call gb_Helper_make_url,$(INSTROOT)/$(LIBO_URE_LIB_FOLDER)) \
93	-env:LO_LIB_DIR=$(call gb_Helper_make_url,$(INSTROOT)/$(LIBO_LIB_FOLDER)) \
94	-env:LO_JAVA_DIR=$(call gb_Helper_make_url,$(INSTROOT)/$(LIBO_SHARE_JAVA_FOLDER)) \
95	--protector $(call gb_Library_get_target,unoexceptionprotector) unoexceptionprotector \
96	--protector $(call gb_Library_get_target,unobootstrapprotector) unobootstrapprotector \
97 ) \
98$(if $(VCL),\
99	--protector $(call gb_Library_get_target,vclbootstrapprotector) vclbootstrapprotector \
100 ) \
101$(ARGS)
102endef
103
104.PHONY : $(call gb_CppunitTest_get_clean_target,%)
105$(call gb_CppunitTest_get_clean_target,%) :
106	$(call gb_Helper_abbreviate_dirs,\
107		rm -f $(call gb_CppunitTest_get_target,$*) $(call gb_CppunitTest_get_target,$*).log)
108
109.PHONY : $(call gb_CppunitTest_get_target,%)
110$(call gb_CppunitTest_get_target,%) :| $(gb_CppunitTest_RUNTIMEDEPS)
111ifneq ($(gb_SUPPRESS_TESTS),)
112	@true
113else
114	$(call gb_Output_announce,$*,$(true),CUT,2)
115	$(call gb_Helper_abbreviate_dirs,\
116	        $(if $(gb_CppunitTest_vcl_hide_windows),export VCL_HIDE_WINDOWS=1 && ) \
117	        $(if $(gb_CppunitTest_vcl_show_windows),unset VCL_HIDE_WINDOWS && ) \
118		mkdir -p $(dir $@) && \
119		rm -fr $@.user && cp -r $(WORKDIR)/unittest $@.user && \
120		$(if $(gb_CppunitTest__use_confpreinit), \
121		    $(INSTDIR)/program/lokconf_init $(call gb_CppunitTest__make_args) &&) \
122		$(if $(gb_CppunitTest__interactive),, \
123			$(if $(value gb_CppunitTest_postprocess), \
124				rm -fr $@.core && mkdir $@.core && cd $@.core &&)) \
125		( \
126		$(if $(gb_CppunitTest_localized),for l in $(WITH_LANG_LIST) ; do LO_TEST_LOCALE="$$l" ) \
127		$(if $(gb_CppunitTest_PREGDBTRACE),$(gb_CppunitTest_PREGDBTRACE) &&) \
128		$(EXTRA_ENV_VARS) \
129		$(if $(filter gdb,$(gb_CppunitTest_GDBTRACE)),,$(gb_CppunitTest_CPPTESTPRECOMMAND)) \
130		$(if $(G_SLICE),G_SLICE=$(G_SLICE)) \
131		$(if $(GLIBCXX_FORCE_NEW),GLIBCXX_FORCE_NEW=$(GLIBCXX_FORCE_NEW)) \
132		$(gb_CppunitTest_malloc_check) \
133		$(if $(strip $(PYTHON_URE)),\
134			PYTHONDONTWRITEBYTECODE=1) \
135		$(ICECREAM_RUN) $(gb_CppunitTest_GDBTRACE) $(gb_CppunitTest_VALGRINDTOOL) $(gb_CppunitTest_CPPTESTCOMMAND) \
136		$(call gb_LinkTarget_get_target,$(call gb_CppunitTest_get_linktarget,$*)) \
137		$(call gb_CppunitTest__make_args) "-env:CPPUNITTESTTARGET=$@" \
138		$(if $(gb_CppunitTest_POSTGDBTRACE), \
139			; RET=$$? && $(gb_CppunitTest_POSTGDBTRACE) && (exit $$RET)) \
140		$(if $(gb_CppunitTest_localized),|| exit $$?; done) \
141		) \
142		$(if $(gb_CppunitTest__interactive),, \
143			> $@.log 2>&1 \
144			|| ($(if $(value gb_CppunitTest_postprocess), \
145					RET=$$?; \
146					$(call gb_CppunitTest_postprocess,$(gb_CppunitTest_CPPTESTCOMMAND),$@.core,$$RET) >> $@.log 2>&1;) \
147				cat $@.log; $(gb_CppunitTest_UNITTESTFAILED) Cppunit $*)))
148endif
149
150define gb_CppunitTest_CppunitTest
151$(call gb_CppunitTest__CppunitTest_impl,$(1),$(call gb_CppunitTest_get_linktarget,$(1)))
152
153endef
154
155define gb_CppunitTest_CppunitScreenShot
156$(call gb_CppunitTest_get_target,$(1)) : gb_CppunitTest_localized := $(true)
157$(call gb_CppunitTest__CppunitTest_impl,$(1),$(call gb_CppunitTest_get_linktarget,$(1)))
158
159endef
160
161define gb_CppunitTest_register_target
162endef
163
164# call gb_CppunitTest__CppunitTest_impl,cppunittest,linktarget
165define gb_CppunitTest__CppunitTest_impl
166$(call gb_CppunitTest_register_target, $(1), $(2), "test")
167$(call gb_LinkTarget_LinkTarget,$(2),CppunitTest_$(1),NONE)
168$(call gb_LinkTarget_set_targettype,$(2),CppunitTest)
169$(call gb_LinkTarget_add_libs,$(2),$(gb_STDLIBS))
170$(call gb_LinkTarget_add_defs,$(2),\
171	$(gb_CppunitTest_DEFS) \
172)
173$(call gb_LinkTarget_use_external,$(2),cppunit)
174$(call gb_LinkTarget_set_include,$(2),\
175    $$(INCLUDE) \
176    $(filter -I%,$(CPPUNIT_CFLAGS)) \
177)
178$(call gb_LinkTarget_add_defs,$(2), \
179    $(filter-out -I%,$(CPPUNIT_CFLAGS)) \
180	-DCPPUNIT_PLUGIN_EXPORT='extern "C" SAL_DLLPUBLIC_EXPORT' \
181)
182$(call gb_CppunitTest_get_target,$(1)) : $(call gb_LinkTarget_get_target,$(2))
183$(call gb_CppunitTest_get_clean_target,$(1)) : $(call gb_LinkTarget_get_clean_target,$(2))
184$(call gb_CppunitTest_CppunitTest_platform,$(1),$(2),$(gb_CppunitTest_DLLDIR)/$(call gb_CppunitTest_get_ilibfilename,$(1)))
185$(call gb_CppunitTest_get_target,$(1)) : ARGS :=
186$(call gb_CppunitTest_get_target,$(1)) : CONFIGURATION_LAYERS :=
187$(call gb_CppunitTest_get_target,$(1)) : JAVA_URE := $(false)
188$(call gb_CppunitTest_get_target,$(1)) : PYTHON_URE := $(false)
189$(call gb_CppunitTest_get_target,$(1)) : URE := $(false)
190$(call gb_CppunitTest_get_target,$(1)) : VCL := $(false)
191$(call gb_CppunitTest_get_target,$(1)) : UNO_SERVICES :=
192$(call gb_CppunitTest_get_target,$(1)) : UNO_TYPES :=
193$(call gb_CppunitTest_get_target,$(1)) : HEADLESS := --headless
194$(call gb_CppunitTest_get_target,$(1)) : EXTRA_ENV_VARS :=
195$$(eval $$(call gb_Module_register_target,$(call gb_CppunitTest_get_target,$(1)),$(call gb_CppunitTest_get_clean_target,$(1))))
196$(call gb_Helper_make_userfriendly_targets,$(1),CppunitTest)
197
198endef
199
200# Add additional command line arguments for the test.
201#
202# You should practically never need to use this, as there are special
203# functions for adding many commonly used arguments.
204define gb_CppunitTest_add_arguments
205$(call gb_CppunitTest_get_target,$(1)) : ARGS += $(2)
206
207endef
208
209define gb_CppunitTest_use_ure
210$(call gb_CppunitTest_use_rdb,$(1),ure/services)
211$(call gb_CppunitTest_get_target,$(1)) : URE := $(true)
212$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Library_get_target,$(gb_CPPU_ENV)_uno)
213$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Library_get_target,affine_uno)
214$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Library_get_target,unobootstrapprotector)
215$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Library_get_target,unoexceptionprotector)
216
217endef
218
219# $(2) == $(true) if headless:
220define gb_CppunitTest__use_vcl
221$(call gb_CppunitTest_get_target,$(1)) : VCL := $(true)
222$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Library_get_target,vclbootstrapprotector)
223ifeq ($(USING_X11),TRUE)
224$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Library_get_target,desktop_detector)
225$(call gb_CppunitTest_get_target,$(1)) : $(if $(filter $(2),$(true)),, \
226    $(call gb_Library_get_target,vclplug_gen) \
227        $(if $(ENABLE_GTK),$(call gb_Library_get_target,vclplug_gtk)) \
228        $(if $(ENABLE_GTK3),$(call gb_Library_get_target,vclplug_gtk3)) \
229        $(if $(ENABLE_KDE4),$(call gb_Library_get_target,vclplug_kde4)) \
230        $(if $(ENABLE_QT5),$(call gb_Library_get_target,vclplug_qt5)) \
231	 )
232endif
233
234endef
235
236define gb_CppunitTest_use_confpreinit
237$(call gb_CppunitTest_use_executable,$(1),lokconf_init)
238$(call gb_CppunitTest_get_target,$(1)) : gb_CppunitTest__use_confpreinit := TRUE
239
240endef
241
242define gb_CppunitTest_use_vcl
243$(call gb_CppunitTest__use_vcl,$(1),$(true))
244
245endef
246
247define gb_CppunitTest_use_vcl_non_headless
248$(call gb_CppunitTest_get_target,$(1)) : HEADLESS :=
249$(call gb_CppunitTest_get_target,$(1)) : gb_CppunitTest_vcl_hide_windows := $(true)
250$(call gb_CppunitTest__use_vcl,$(1),$(false))
251
252endef
253
254define gb_CppunitTest_use_vcl_non_headless_with_windows
255$(call gb_CppunitTest_get_target,$(1)) : HEADLESS :=
256$(call gb_CppunitTest_get_target,$(1)) : gb_CppunitTest_vcl_show_windows := $(true)
257$(call gb_CppunitTest__use_vcl,$(1),$(false))
258
259endef
260
261define gb_CppunitTest_localized_run
262$(call gb_CppunitTest_get_target,$(1)) : gb_CppunitTest_localized := $(true)
263
264endef
265
266define gb_CppunitTest__use_api
267$(call gb_CppunitTest_get_target,$(1)) : $(call gb_UnoApi_get_target,$(2))
268$(call gb_CppunitTest_get_target,$(1)) : UNO_TYPES += $(call gb_UnoApi_get_target,$(2))
269
270endef
271
272define gb_CppunitTest_use_api
273$(call gb_LinkTarget_use_api,$(call gb_CppunitTest_get_linktarget,$(1)),$(2))
274$(foreach rdb,$(2),$(call gb_CppunitTest__use_api,$(1),$(rdb)))
275
276endef
277
278define gb_CppunitTest_use_udk_api
279$(call gb_CppunitTest_use_api,$(1),udkapi)
280
281endef
282
283define gb_CppunitTest_use_sdk_api
284$(call gb_CppunitTest_use_api,$(1),udkapi offapi)
285
286endef
287
288define gb_CppunitTest_use_rdb
289$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Rdb_get_target_for_build,$(2))
290$(call gb_CppunitTest_get_target,$(1)) : UNO_SERVICES += $(call gb_Rdb_get_target_for_build,$(2))
291
292endef
293
294define gb_CppunitTest_use_rdbs
295$(foreach rdb,$(2),$(call gb_CppunitTest_use_rdb,$(1),$(rdb)))
296
297endef
298
299define gb_CppunitTest_use_component
300$(call gb_CppunitTest_get_target,$(1)) : \
301    $(call gb_ComponentTarget_get_target,$(2))
302$(call gb_CppunitTest_get_target,$(1)) : \
303    UNO_SERVICES += $(call gb_ComponentTarget_get_target,$(2))
304
305endef
306
307define gb_CppunitTest_set_componentfile
308$(call gb_ComponentTarget_ComponentTarget,CppunitTest/$(2),\
309    $(call gb_Helper_make_url,$(gb_CppunitTest_DLLDIR))/,\
310    $(call gb_CppunitTest_get_filename,$(1)))
311$(call gb_CppunitTest_get_target,$(1)) : \
312    $(call gb_ComponentTarget_get_target,CppunitTest/$(2))
313$(call gb_CppunitTest_get_clean_target,$(1)) : \
314    $(call gb_ComponentTarget_get_clean_target,CppunitTest/$(2))
315$(call gb_CppunitTest_use_component,$(1),CppunitTest/$(2))
316
317endef
318
319# Given a list of component files, filter out those corresponding
320# to libraries not built in this configuration.
321define gb_CppunitTest__filter_not_built_components
322$(filter-out \
323	$(if $(filter SCRIPTING,$(BUILD_TYPE)),, \
324		basic/util/sb \
325	    sw/util/vbaswobj \
326	    scripting/source/basprov/basprov \
327	    scripting/util/scriptframe) \
328	$(if $(filter DBCONNECTIVITY,$(BUILD_TYPE)),, \
329	    dbaccess/util/dba \
330		forms/util/frm),$(1))
331endef
332
333define gb_CppunitTest_use_components
334$(foreach component,$(call gb_CppunitTest__filter_not_built_components,$(2)),$(call gb_CppunitTest_use_component,$(1),$(component)))
335
336endef
337
338define gb_CppunitTest__use_configuration
339$(call gb_CppunitTest_get_target,$(1)) : CONFIGURATION_LAYERS += $(2):$(call gb_Helper_make_url,$(3))
340
341endef
342
343# Use instdir configuration
344define gb_CppunitTest_use_instdir_configuration
345$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Package_get_target,postprocess_registry)
346$(call gb_CppunitTest__use_configuration,$(1),xcsxcu,$(INSTROOT)/$(LIBO_SHARE_FOLDER)/registry)
347
348endef
349
350# Use configuration in $(WORKDIR)/unittest/registry.
351define gb_CppunitTest_use_unittest_configuration
352$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Package_get_target,test_unittest)
353$(call gb_CppunitTest__use_configuration,$(1),xcsxcu,$(WORKDIR)/unittest/registry)
354
355endef
356
357# Use standard configuration: instdir config + unittest config (in this order!)
358define gb_CppunitTest_use_configuration
359$(call gb_CppunitTest_use_instdir_configuration,$(1))
360$(call gb_CppunitTest_use_unittest_configuration,$(1))
361
362endef
363
364define gb_CppunitTest_use_executable
365$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Executable_get_target,$(2))
366
367endef
368
369define gb_CppunitTest_use_java_ure
370$(call gb_CppunitTest_get_target,$(1)) : JAVA_URE := $(true)
371$(call gb_CppunitTest_get_target,$(1)) : \
372    $(foreach jar,java_uno juh jurt unoil unoloader,$(call gb_Jar_get_target,$(jar))) \
373    $(call gb_Library_get_target,affine_uno_uno) \
374    $(call gb_Library_get_target,java_uno) \
375    $(call gb_Library_get_target,jpipe) \
376    $(call gb_Library_get_target,juhx) \
377    $(call gb_Library_get_target,juhx) \
378    $(call gb_Library_get_target,jvmaccess) \
379    $(call gb_Library_get_target,jvmfwk) \
380    $(call gb_Package_get_target,jvmfwk_javavendors) \
381    $(call gb_Package_get_target,jvmfwk_jreproperties)
382
383endef
384
385define gb_CppunitTest_use_jar
386$(call gb_CppunitTest__use_java_ure,$(1))
387$(call gb_CppunitTest_get_target,$(1)) : $(call gb_Jar_get_target,$(2))
388
389endef
390
391define gb_CppunitTest_use_jars
392$(foreach jar,$(2),$(call gb_CppunitTest_use_jar,$(1),$(jar)))
393
394endef
395
396define gb_CppunitTest_use_python_ure
397$(call gb_CppunitTest_get_target,$(1)) : PYTHON_URE := $(true)
398$(call gb_CppunitTest_get_target,$(1)) :\
399	$(call gb_Library_get_target,pythonloader) \
400	$(call gb_Library_get_target,pyuno) \
401	$(gb_CppunitTest_PYTHONDEPS) \
402	$(call gb_Package_get_target,pyuno_python_scripts)
403
404endef
405
406define gb_CppunitTest_use_uiconfig
407$(call gb_CppunitTest_get_target,$(1)) : $(call gb_UIConfig_get_target,$(2))
408
409endef
410
411define gb_CppunitTest_use_uiconfigs
412$(foreach uiconfig,$(2),$(call gb_CppunitTest_use_uiconfig,$(1),$(uiconfig)))
413
414endef
415
416# forward the call to the gb_LinkTarget implementation
417# (note: because the function name is in $(1), the other args are shifted by 1)
418define gb_CppunitTest__forward_to_Linktarget
419$(call gb_LinkTarget_$(1),$(call gb_CppunitTest_get_linktarget,$(2)),$(3),$(4),CppunitTest_$(2))
420
421endef
422
423# copy pasta for forwarding: this could be (and was) done more elegantly, but
424# these here can be found by both git grep and ctags
425gb_CppunitTest_add_cobject = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
426gb_CppunitTest_add_cobjects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
427gb_CppunitTest_add_cxxobject = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
428gb_CppunitTest_add_cxxobjects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
429gb_CppunitTest_add_exception_objects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
430gb_CppunitTest_use_executable_objects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
431gb_CppunitTest_use_library_objects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
432gb_CppunitTest_use_libraries = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
433gb_CppunitTest_use_static_libraries = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
434gb_CppunitTest_add_objcobject = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
435gb_CppunitTest_add_objcobjects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
436gb_CppunitTest_add_objcxxobject = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
437gb_CppunitTest_add_objcxxobjects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
438gb_CppunitTest_add_cxxclrobject = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
439gb_CppunitTest_add_cxxclrobjects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
440gb_CppunitTest_add_asmobject = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
441gb_CppunitTest_add_asmobjects = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
442gb_CppunitTest_use_package = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
443gb_CppunitTest_use_packages = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
444gb_CppunitTest_set_precompiled_header = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
445gb_CppunitTest_add_sdi_headers = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
446gb_CppunitTest_add_cflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
447gb_CppunitTest_set_cflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
448gb_CppunitTest_add_cxxflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
449gb_CppunitTest_set_yaccflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
450gb_CppunitTest_add_objcflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
451gb_CppunitTest_add_objcxxflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
452gb_CppunitTest_add_cxxclrflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
453gb_CppunitTest_add_defs = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
454gb_CppunitTest_set_include = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
455gb_CppunitTest_add_ldflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
456gb_CppunitTest_set_ldflags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
457gb_CppunitTest_add_libs = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
458gb_CppunitTest_disable_standard_system_libs = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
459gb_CppunitTest_use_system_darwin_frameworks = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
460gb_CppunitTest_use_system_win32_libs = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
461gb_CppunitTest_use_internal_api = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
462gb_CppunitTest_use_internal_bootstrap_api = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
463gb_CppunitTest_use_internal_comprehensive_api = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
464gb_CppunitTest_set_library_path_flags = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
465gb_CppunitTest_use_external = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
466gb_CppunitTest_use_externals = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
467gb_CppunitTest_use_custom_headers = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
468gb_CppunitTest_set_visibility_default = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
469gb_CppunitTest_set_warnings_not_errors = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
470gb_CppunitTest_set_external_code = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
471gb_CppunitTest_set_generated_cxx_suffix = $(call gb_CppunitTest__forward_to_Linktarget,$(subst gb_CppunitTest_,,$(0)),$(1),$(2),$(3))
472
473# vim: set noet sw=4:
474