gbuild: ExternalProject: improve NMAKE handling
[LibreOffice.git] / solenv / gbuild / TargetLocations.mk
blob53c4959843b74a67f62b7629e6d50e9e6d10544a
1 # -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
3 # This file is part of the LibreOffice project.
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/.
9 # This file incorporates work covered by the following license notice:
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 .
20 # outdir target pattern
22 # these are hard-coded to URE for now since there are so few of them...
23 gb_CliLibrary_get_target = $(INSTROOT)/$(LIBO_URE_LIB_FOLDER)/$(1)$(gb_CliLibrary_EXT)
24 gb_CliNativeLibrary_get_target = $(INSTROOT)/$(LIBO_URE_LIB_FOLDER)/$(1)$(gb_CliNativeLibrary_EXT)
25 gb_CliUnoApi_get_target = $(INSTROOT)/$(if $(filter cli_uretypes,$(1)),$(LIBO_URE_LIB_FOLDER),$(LIBO_LIB_FOLDER))/$(1)$(gb_CliUnoApi_EXT)
26 gb_PackagePart_get_destinations = \
27 $(INSTDIR) \
28 $(WORKDIR)/unittest \
30 # kind of lame but with just 3 of these why bother with registration etc.
31 gb_UnoApi_get_target = $(INSTROOT)/$(if $(filter udkapi,$(1)),$(LIBO_URE_MISC_FOLDER)/types,$(LIBO_ETC_FOLDER)/types/$(1)).rdb
33 # workdir target patterns
35 gb_AutoInstall_get_target = $(WORKDIR)/AutoInstall/$(1)
36 gb_AllLangHelp_get_target = $(WORKDIR)/AllLangHelp/$(1)
37 gb_AllLangPackage_get_target = $(WORKDIR)/AllLangPackage/$(1)
38 gb_AllLangResTarget_get_target = $(WORKDIR)/AllLangRes/$(1)
39 gb_AsmObject_get_target = $(WORKDIR)/AsmObject/$(1).o
40 gb_CObject_get_target = $(WORKDIR)/CObject/$(1).o
41 gb_GenCObject_get_target = $(WORKDIR)/GenCObject/$(1).o
42 gb_CliAssembly_get_target = $(WORKDIR)/CliAssembly/$(1).done
43 gb_CliAssemblyTarget_get_target = $(WORKDIR)/CliAssemblyTarget/$(1).done
44 gb_CliAssemblyTarget_get_assembly_target = $(WORKDIR)/CliAssemblyTarget/$(1)$(gb_CliAssemblyTarget_POLICYEXT)
45 gb_CliConfigTarget_get_target = $(WORKDIR)/CliConfigTarget/$(1).config
46 gb_CliNativeLibrary_get_preparation_target = $(WORKDIR)/CliNativeLibraryTarget/$(1).prepare
47 gb_CompilerTest_get_target = $(WORKDIR)/CompilerTest/$(1)
48 gb_ComponentTarget_get_target = $(WORKDIR)/ComponentTarget/$(1).component
49 gb_ComponentTarget_get_target_for_build = $(WORKDIR_FOR_BUILD)/ComponentTarget/$(1).component
50 gb_Configuration_get_preparation_target = $(WORKDIR)/Configuration/$(1).prepared
51 gb_CppunitTest_get_target = $(WORKDIR)/CppunitTest/$(1).test
52 gb_CustomPackage_get_target = $(WORKDIR)/CustomPackage/$(1).filelist
53 gb_CustomTarget_get_repo_target = $(WORKDIR)/CustomTarget/$(2)_$(1).done
54 gb_CustomTarget_get_target = $(WORKDIR)/CustomTarget/$(1).done
55 gb_CustomTarget_get_workdir = $(WORKDIR)/CustomTarget/$(1)
56 gb_DescriptionTranslateTarget_get_target = $(WORKDIR)/DescriptionTranslateTarget/$(1).xml
57 gb_Dictionary_get_target = $(WORKDIR)/Dictionary/$(1).done
58 gb_CxxObject_get_target = $(WORKDIR)/CxxObject/$(1).o
59 gb_GenCxxObject_get_target = $(WORKDIR)/GenCxxObject/$(1).o
60 gb_Executable_get_headers_target = $(WORKDIR)/Headers/Executable/$(1)
61 gb_Executable_get_runtime_target = $(WORKDIR_FOR_BUILD)/Executable/$(1).run
62 gb_Extension_get_target = $(WORKDIR)/Extension/$(1).oxt
63 gb_Extension_get_rootdir = $(WORKDIR)/Extension/$(1)/root
64 gb_Extension_get_workdir = $(WORKDIR)/Extension/$(1)
65 gb_ExtensionPackage_get_target = $(WORKDIR)/ExtensionPackage/$(1).filelist
66 gb_ExtensionPackage_get_preparation_target = $(WORKDIR)/ExtensionPackage/$(1).prepare
67 gb_ExtensionPackageSet_get_target = $(WORKDIR)/ExtensionPackage/$(1).set
68 gb_ExternalPackage_get_target = $(WORKDIR)/ExternalPackage/$(1)
69 gb_ExternalProject_get_statedir = $(WORKDIR)/ExternalProject/$(1)
70 gb_ExternalProject_get_preparation_target = $(WORKDIR)/ExternalProject/$(1).prepare
71 gb_ExternalProject_get_state_target = $(WORKDIR)/ExternalProject/$(1)/$(2)
72 gb_ExternalProject_get_target = $(WORKDIR)/ExternalProject/$(1).done
73 gb_ExternalProject_get_target_for_build = $(WORKDIR_FOR_BUILD)/ExternalProject/$(1).done
74 gb_Gallery_get_target = $(WORKDIR)/Gallery/$(1).done
75 gb_Gallery_get_workdir = $(WORKDIR)/Gallery/$(1)
76 gb_GeneratedPackage_get_target = $(WORKDIR)/GeneratedPackage/$(1).filelist
77 gb_GeneratedPackage_get_target_for_build = $(WORKDIR_FOR_BUILD)/GeneratedPackage/$(1).filelist
78 gb_HelpIndexTarget_get_target = $(WORKDIR)/HelpIndexTarget/$(1).done
79 gb_HelpJarTarget_get_target = $(WORKDIR)/HelpJarTarget/$(1).done
80 gb_HelpLinkTarget_get_preparation_target = $(WORKDIR)/HelpLinkTarget/$(1).prepare
81 gb_HelpLinkTarget_get_target = $(WORKDIR)/HelpLinkTarget/$(1).done
82 gb_HelpTarget_get_filelist = $(WORKDIR)/HelpTarget/$(1).filelist
83 gb_HelpTarget_get_linked_target = $(WORKDIR)/HelpTarget/$(1).translate
84 gb_HelpTarget_get_target = $(WORKDIR)/HelpTarget/$(1).zip
85 gb_HelpTarget_get_translation_target = $(call gb_HelpTarget_get_filelist,$(1))
86 gb_HelpTarget_get_workdir = $(WORKDIR)/HelpTarget/$(1)
87 gb_HelpTranslatePartTarget_get_target = $(WORKDIR)/HelpTranslatePartTarget/$(1)/done
88 gb_HelpTranslatePartTarget_get_translated_target = $(WORKDIR)/HelpTranslatePartTarget/$(1)/$(2).xhp
89 gb_HelpTranslatePartTarget_get_workdir = $(WORKDIR)/HelpTranslatePartTarget/$(1)
90 gb_HelpTranslateTarget_get_target = $(WORKDIR)/HelpTranslateTarget/$(1).done
91 gb_HelpTreeTarget_get_target = $(WORKDIR)/HelpTreeTarget/$(1).tree
92 gb_InstallModule_get_filelist = $(call gb_InstallModuleTarget_get_filelist,$(1))
93 gb_InstallModule_get_target = $(WORKDIR)/InstallModule/$(1).done
94 gb_InstallModuleTarget_get_external_target = $(WORKDIR)/InstallModuleTarget/$(1).external
95 gb_InstallModuleTarget_get_filelist = $(WORKDIR)/InstallModuleTarget/$(1).filelist
96 gb_InstallModuleTarget_get_target = $(WORKDIR)/InstallModuleTarget/$(1).filelist
97 gb_InstallScript_get_target = $(WORKDIR)/InstallScriptTarget/$(1)$(gb_InstallScript_EXT)
98 gb_InternalUnoApi_get_target = $(WORKDIR)/InternalUnoApi/$(1).done
99 gb_Jar_get_target = $(call gb_Jar_get_install_target,$(1))
100 gb_Jar_get_classsetname = Jar/$(1)
101 gb_JavaClassSet_get_classdir = $(WORKDIR)/JavaClassSet/$(1)
102 gb_JavaClassSet_get_repo_target = $(WORKDIR)/JavaClassSet/$(2)/$(1).done
103 gb_JavaClassSet_get_target = $(WORKDIR)/JavaClassSet/$(1)/done
104 gb_JunitTest_get_classsetname = JunitTest/$(1)
105 gb_JunitTest_get_target = $(WORKDIR)/JunitTest/$(1)/done
106 gb_JunitTest_get_userdir = $(WORKDIR)/JunitTest/$(1)/user
107 gb_PythonTest_get_target = $(WORKDIR)/PythonTest/$(1)/done
108 gb_LinkTarget__get_workdir_linktargetname = $(firstword $(subst <>, ,$(1)))
109 gb_LinkTarget_get_headers_target = \
110 $(WORKDIR)/Headers/$(call gb_LinkTarget__get_workdir_linktargetname,$(1))
111 gb_LinkTarget_get_objects_list = \
112 $(WORKDIR)/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).objectlist
113 gb_LinkTarget_get_dep_target = \
114 $(WORKDIR)/Dep/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1)).d
115 gb_LinkTarget_get_clean_target = \
116 $(WORKDIR)/Clean/LinkTarget/$(call gb_LinkTarget__get_workdir_linktargetname,$(1))
117 gb_LinkTarget_get_target = $(lastword $(subst <>, ,$(1)))
118 gb_Module_get_nonl10n_target = $(WORKDIR)/Module/nonl10n/$(1)
119 gb_Module_get_l10n_target = $(WORKDIR)/Module/l10n/$(1)
120 gb_Module_get_check_target = $(WORKDIR)/Module/check/$(1)
121 gb_Module_get_slowcheck_target = $(WORKDIR)/Module/slowcheck/$(1)
122 gb_Module_get_screenshot_target = $(WORKDIR)/Module/screenshot/$(1)
123 gb_Module_get_subsequentcheck_target = $(WORKDIR)/Module/subsequentcheck/$(1)
124 gb_Module_get_stagingcheck_target = $(WORKDIR)/Module/stagingcheck/$(1)
125 gb_Module_get_perfcheck_target = $(WORKDIR)/Module/perfcheck/$(1)
126 gb_Module_get_uicheck_target = $(WORKDIR)/Module/uicheck/$(1)
127 gb_Module_get_target = $(WORKDIR)/Module/$(1)
128 gb_ObjCxxObject_get_target = $(WORKDIR)/ObjCxxObject/$(1).o
129 gb_ObjCObject_get_target = $(WORKDIR)/ObjCObject/$(1).o
130 gb_CxxClrObject_get_target = $(WORKDIR)/CxxClrObject/$(1).o
131 gb_GenCxxClrObject_get_target = $(WORKDIR)/GenCxxClrObject/$(1).o
132 gb_Pagein_get_target = $(WORKDIR)/Pagein/pagein-$(1)
133 gb_Package_get_preparation_target = $(WORKDIR)/Package/prepared/$(1)
134 gb_Package_get_target = $(WORKDIR)/Package/$(1).filelist
135 gb_Package_get_target_for_build = $(WORKDIR_FOR_BUILD)/Package/$(1).filelist
136 gb_PackageSet_get_target = $(WORKDIR)/PackageSet/$(1).filelist
137 gb_PackageInfo_get_target = $(WORKDIR)/PackageInfo
138 gb_Postprocess_get_target = $(WORKDIR)/Postprocess/$(1)
139 gb_PrecompiledHeader_get_dep_target = $(WORKDIR)/Dep/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.gch.d
140 gb_PrecompiledHeader_get_dep_target_tmp = $(call gb_PrecompiledHeader_get_dep_target,$(1)).tmp
141 gb_PrecompiledHeader_get_target = $(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/$(1).hxx.gch
142 gb_PrecompiledHeader_get_timestamp = $(WORKDIR)/PrecompiledHeader/$(gb_PrecompiledHeader_DEBUGDIR)/Timestamps/$(1)
143 gb_PropertiesTranslateTarget_get_target = $(WORKDIR)/PropertiesTranslateTarget/$(1).properties
144 gb_Pyuno_get_final_target = $(WORKDIR)/Pyuno/$(1).final
145 gb_Pyuno_get_target = $(WORKDIR)/Pyuno/$(1).done
146 gb_Rdb_get_target = $(WORKDIR)/Rdb/$(1).rdb
147 gb_Rdb_get_target_for_build = $(WORKDIR_FOR_BUILD)/Rdb/$(1).rdb
148 gb_ResTarget_get_target = $(WORKDIR)/ResTarget/$(1).res
149 gb_ScpMergeTarget_get_target = $(WORKDIR)/ScpMergeTarget/$(1).ulf
150 gb_ScpPreprocessTarget_get_target = $(WORKDIR)/ScpPreprocessTarget/$(1).pre
151 gb_ScpTarget_get_external_target = $(WORKDIR)/ScpTarget/$(1).external
152 gb_ScpTarget_get_target = $(WORKDIR)/ScpTarget/$(1).par
153 gb_ScpTemplateTarget_get_dir = $(abspath $(WORKDIR)/ScpTemplateTarget/$(dir $(1)))
154 gb_ScpTemplateTarget_get_target = $(abspath $(WORKDIR)/ScpTemplateTarget/$(dir $(1))$(subst pack,modules,$(subst module_,all,$(notdir $(1)))).inc)
155 gb_SdiTarget_get_target = $(WORKDIR)/SdiTarget/$(1)
156 gb_SrsPartMergeTarget_get_target = $(WORKDIR)/SrsPartMergeTarget/$(1)
157 gb_SrsPartTarget_get_target = $(WORKDIR)/SrsPartTarget/$(1)
158 gb_SrsTarget_get_headers_target = $(WORKDIR)/SrsTarget/$(1).headers
159 gb_SrsTarget_get_target = $(WORKDIR)/SrsTarget/$(1).srs
160 gb_ThesaurusIndexTarget_get_target = $(WORKDIR)/ThesaurusIndexTarget/$(basename $(1)).idx
161 gb_UIConfig_get_imagelist_target = $(WORKDIR)/UIConfig/$(1).ilst
162 gb_UIConfig_get_target = $(WORKDIR)/UIConfig/$(1).done
163 gb_UIImageListTarget_get_target = $(WORKDIR)/UIImageListTarget/$(1).ilst
164 gb_UILocalizeTarget_get_target = $(WORKDIR)/UILocalizeTarget/$(1).done
165 gb_UILocalizeTarget_get_workdir = $(WORKDIR)/UILocalizeTarget/$(1)
166 gb_UIMenubarTarget_get_target = $(WORKDIR)/UIMenubarTarget/$(1).xml
167 gb_UITest_get_target = $(WORKDIR)/UITest/$(1)/done
168 gb_UnoApiTarget_get_target = $(WORKDIR)/UnoApiTarget/$(1).rdb
169 gb_UnoApiHeadersTarget_get_bootstrap_dir = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),bootstrap)
170 gb_UnoApiHeadersTarget_get_comprehensive_dir = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),comprehensive)
171 gb_UnoApiHeadersTarget_get_dir = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),normal)
172 gb_UnoApiHeadersTarget_get_real_bootstrap_dir = $(WORKDIR)/UnoApiHeadersTarget/$(1)/bootstrap
173 gb_UnoApiHeadersTarget_get_real_comprehensive_dir = $(WORKDIR)/UnoApiHeadersTarget/$(1)/comprehensive
174 gb_UnoApiHeadersTarget_get_real_dir = $(WORKDIR)/UnoApiHeadersTarget/$(1)/normal
175 gb_UnoApiHeadersTarget_get_real_bootstrap_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/bootstrap.done
176 gb_UnoApiHeadersTarget_get_real_comprehensive_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/comprehensive.done
177 gb_UnoApiHeadersTarget_get_real_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/normal.done
178 gb_UnoApiHeadersTarget_get_bootstrap_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),bootstrap).done
179 gb_UnoApiHeadersTarget_get_comprehensive_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),comprehensive).done
180 gb_UnoApiHeadersTarget_get_target = $(WORKDIR)/UnoApiHeadersTarget/$(1)/$(call gb_UnoApiHeadersTarget_select_variant,$(1),normal).done
181 gb_UnpackedTarball_get_dir = $(WORKDIR)/UnpackedTarball/$(1)
182 gb_UnpackedTarball_get_pristine_dir = $(WORKDIR)/UnpackedTarball/$(1).org
183 gb_UnpackedTarball_get_final_target = $(WORKDIR)/UnpackedTarball/$(1).update
184 # NOTE: the .done target is hardcoded in solenv/bin/concat-deps.c !
185 gb_UnpackedTarball_get_target = $(WORKDIR)/UnpackedTarball/$(1).done
186 gb_UnpackedTarball_get_preparation_target = $(WORKDIR)/UnpackedTarball/$(1).prepare
187 gb_UnpackedTarget_get_target = $(WORKDIR)/UnpackedTarget/$(1)
188 gb_WinResTarget_get_target = $(WORKDIR)/WinResTarget/$(1)$(gb_WinResTarget_POSTFIX)
189 # workdir targets: $(1) is prefix/path
190 gb_Configuration_get_target = $(WORKDIR)/Configuration/$(1).done
191 gb_YaccTarget_get_grammar_target = $(WORKDIR)/YaccTarget/$(1).cxx
192 gb_YaccTarget_get_header_target = $(WORKDIR)/YaccTarget/$(1).hxx
193 gb_YaccTarget_get_target = $(WORKDIR)/YaccTarget/$(1).done
195 gb_LexTarget_get_scanner_target = $(WORKDIR)/LexTarget/$(1).cxx
196 gb_LexTarget_get_target = $(WORKDIR)/LexTarget/$(1).done
198 gb_XcdTarget_get_target = $(WORKDIR)/XcdTarget/$(1)
199 gb_XcsTarget_get_target = $(WORKDIR)/XcsTarget$(if $(1),/)$(1)
200 gb_XcuDataTarget_get_target = $(WORKDIR)/XcuDataTarget/$(1)
201 gb_XcuFilterFiltersTarget_get_target = $(WORKDIR)/XcuFilterFiltersTarget/$(1)
202 gb_XcuFilterInternalTarget_get_target = $(WORKDIR)/XcuFilterInternalTarget/$(1)
203 gb_XcuFilterOthersTarget_get_target = $(WORKDIR)/XcuFilterOthersTarget/$(1)
204 gb_XcuFilterTypesTarget_get_target = $(WORKDIR)/XcuFilterTypesTarget/$(1)
205 gb_XcuLangpackTarget_get_target = $(WORKDIR)/XcuLangpackTarget/$(1)
206 gb_XcuModuleTarget_get_target = $(WORKDIR)/XcuModuleTarget/$(1)
207 gb_XcuMergeTarget_get_target = $(WORKDIR)/XcuMergeTarget/$(1)
208 gb_XcuResTarget_get_target = $(WORKDIR)/XcuResTarget/$(1)
209 gb_Zip_get_target = $(WORKDIR)/Zip/$(1).zip
211 define gb_Library_get_exports_target
212 $(WORKDIR)/LinkTarget/$(call gb_Library__get_workdir_linktargetname,$(1)).exports
213 endef
215 define gb_Library_get_versionlink_target
216 $(call gb_Library_get_sdk_link_dir)/$(basename $(call gb_Library_get_filename,$(1)))
217 endef
219 define gb_Library_get_headers_target
220 $(patsubst $(1):%,$(WORKDIR)/Headers/Library/%,$(filter $(1):%,$(gb_Library_FILENAMES)))
221 endef
223 define gb_StaticLibrary_get_headers_target
224 $(WORKDIR)/Headers/StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1))
225 endef
227 $(eval $(call gb_Helper_make_clean_targets,\
228 AutoInstall \
229 AllLangHelp \
230 AllLangPackage \
231 AllLangResTarget \
232 CliAssembly \
233 CliAssemblyTarget \
234 CliConfigTarget \
235 CliLibrary \
236 CliNativeLibrary \
237 CliUnoApi \
238 CompilerTest \
239 ComponentTarget \
240 CustomPackage \
241 DescriptionTranslateTarget \
242 Dictionary \
243 Executable \
244 ExternalPackage \
245 Extension \
246 ExtensionPackage \
247 ExtensionPackageSet \
248 Gallery \
249 GeneratedPackage \
250 HelpTarget \
251 HelpIndexTarget \
252 HelpJarTarget \
253 HelpLinkTarget \
254 HelpTranslatePartTarget \
255 HelpTranslateTarget \
256 HelpTreeTarget \
257 InstallModule \
258 InstallModuleTarget \
259 InstallScript \
260 InternalUnoApi \
261 JavaClassSet \
262 Jar \
263 JunitTest \
264 Library \
265 Module \
266 PackagePart \
267 Package \
268 PackageSet \
269 Pagein \
270 Postprocess \
271 PrecompiledHeader \
272 PropertiesTranslateTarget \
273 Pyuno \
274 PythonTest \
275 Rdb \
276 ResTarget \
277 ScpMergeTarget \
278 ScpPreprocessTarget \
279 ScpTarget \
280 ScpTemplateTarget \
281 SdiTarget \
282 SrsTarget \
283 StaticLibrary \
284 ThesaurusIndexTarget \
285 CppunitTest \
286 CppunitTestFakeExecutable \
287 CustomTarget \
288 ExternalProject \
289 UIConfig \
290 UIImageListTarget \
291 UILocalizeTarget \
292 UIMenubarTarget \
293 UITest \
294 UnoApi \
295 UnoApiHeadersTarget \
296 UnoApiTarget \
297 UnpackedTarball \
298 UnpackedTarget \
299 WinResTarget \
300 YaccTarget \
301 LexTarget \
302 Zip \
303 XcsTarget \
304 XcuDataTarget \
305 XcuModuleTarget \
306 XcuLangpackTarget \
307 XcuMergeTarget \
308 XcuResTarget \
309 Configuration \
312 $(eval $(call gb_Helper_make_dep_targets,\
313 CObject \
314 CxxObject \
315 ObjCObject \
316 ObjCxxObject \
317 CxxClrObject \
318 AsmObject \
319 GenCObject \
320 GenCxxObject \
321 GenCxxClrObject \
322 SdiTarget \
323 SrsPartTarget \
324 SrsTarget \
327 # other getters
329 define gb_Library_get_layer
330 $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_LAYER)))
331 endef
333 define gb_Executable_get_layer
334 $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Executable_LAYER)))
335 endef
337 define gb_Library_get_filename
338 $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Library_FILENAMES)))
339 endef
341 define gb_Executable_get_filename
342 $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Executable_FILENAMES)))
343 endef
345 define gb_Executable_get_filename_for_build
346 $(patsubst $(1):%,%,$(filter $(1):%,$(gb_Executable_FILENAMES_FOR_BUILD)))
347 endef
349 # Get dependencies needed for running the executable
351 # This is not strictly necessary, but it makes the use more similar to
352 # ExternalExecutable.
354 # gb_Executable_get_runtime_dependencies executable
355 define gb_Executable_get_runtime_dependencies
356 $(call gb_Executable_get_runtime_target,$(1))
357 endef
359 # Get complete command-line for running the executable
361 # This includes setting library path.
363 # gb_Executable_get_command executable
364 define gb_Executable_get_command
365 $(gb_Helper_set_ld_path) $(BUILDTOOLTRACE) $(2) $(call gb_Executable_get_target_for_build,$(1))
366 endef
368 define gb_Executable__get_workdir_linktargetname
369 Executable/$(call gb_Executable_get_filename,$(1))
370 endef
371 define gb_Executable_get_target
372 $(call gb_Executable__get_dir_for_exe,$(1))/$(call gb_Executable_get_filename,$(1))
373 endef
374 ifneq ($(CROSS_COMPILING),)
375 # Can we assume this is used only for executables registered for "NONE"?
376 define gb_Executable_get_target_for_build
377 $(call gb_Executable__get_dir_for_exe_for_build,$(1))/$(call gb_Executable_get_filename_for_build,$(1))
378 endef
379 else
380 gb_Executable_get_target_for_build = $(gb_Executable_get_target)
381 endif # CROSS_COMPILING
382 define gb_Executable_get_linktarget
383 $(call gb_Executable__get_workdir_linktargetname,$(1))<>$(call gb_Executable_get_target,$(1))
384 endef
386 define gb_Library__get_workdir_linktargetname
387 Library/$(call gb_Library_get_filename,$(1))
388 endef
389 define gb_Library_get_target
390 $(call gb_Library_get_instdir,$(1))/$(call gb_Library_get_runtime_filename,$(1))
391 endef
392 # this returns a tuple of both the linktargetname, and the target file
393 define gb_Library_get_linktarget
394 $(call gb_Library__get_workdir_linktargetname,$(1))<>$(call gb_Library_get_target,$(1))
395 endef
397 define gb_StaticLibrary__get_workdir_linktargetname
398 StaticLibrary/$(call gb_StaticLibrary_get_filename,$(1))
399 endef
400 define gb_StaticLibrary_get_target
401 $(WORKDIR)/LinkTarget/$(call gb_StaticLibrary__get_workdir_linktargetname,$(1))
402 endef
403 # this returns a tuple of both the linktargetname, and the target file
404 define gb_StaticLibrary_get_linktarget
405 $(call gb_StaticLibrary__get_workdir_linktargetname,$(1))<>$(call gb_StaticLibrary_get_target,$(1))
406 endef
408 define gb_CppunitTest__get_workdir_linktargetname
409 CppunitTest/$(call gb_CppunitTest_get_filename,$(1))
410 endef
411 define gb_CppunitTest__get_linktarget_target
412 $(WORKDIR)/LinkTarget/$(call gb_CppunitTest__get_workdir_linktargetname,$(1))
413 endef
414 # this returns a tuple of both the linktargetname, and the target file
415 define gb_CppunitTest_get_linktarget
416 $(call gb_CppunitTest__get_workdir_linktargetname,$(1))<>$(call gb_CppunitTest__get_linktarget_target,$(1))
417 endef
419 define gb_CompilerTest__get_workdir_linktargetname
420 CompilerTest/$(1)
421 endef
422 define gb_CompilerTest__get_linktarget_target
423 $(WORKDIR)/LinkTarget/$(call gb_CompilerTest__get_workdir_linktargetname,$(1))
424 endef
425 # this returns a tuple of both the linktargetname, and the target file
426 define gb_CompilerTest_get_linktarget
427 $(call gb_CompilerTest__get_workdir_linktargetname,$(1))<>$(call gb_CompilerTest__get_linktarget_target,$(1))
428 endef
430 # static members declared here because they are used globally
432 gb_StaticLibrary_WORKDIR = $(WORKDIR)/LinkTarget/StaticLibrary
433 gb_Library_WORKDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Library
434 gb_Executable_BINDIR = $(WORKDIR)/LinkTarget/Executable
435 gb_Executable_BINDIR_FOR_BUILD = $(WORKDIR_FOR_BUILD)/LinkTarget/Executable
436 gb_Library_DLLDIR = $(WORKDIR)/LinkTarget/Library
437 gb_CppunitTest_DLLDIR = $(WORKDIR)/LinkTarget/CppunitTest
439 # static variables declared here because they are used globally
441 gb_POLOCATION := $(SRCDIR)/translations/source
443 # vim: set noet sw=4: