1b63233d8Sdamjan############################################################### 2b63233d8Sdamjan# 3b63233d8Sdamjan# Licensed to the Apache Software Foundation (ASF) under one 4b63233d8Sdamjan# or more contributor license agreements. See the NOTICE file 5b63233d8Sdamjan# distributed with this work for additional information 6b63233d8Sdamjan# regarding copyright ownership. The ASF licenses this file 7b63233d8Sdamjan# to you under the Apache License, Version 2.0 (the 8b63233d8Sdamjan# "License"); you may not use this file except in compliance 9b63233d8Sdamjan# with the License. You may obtain a copy of the License at 10b63233d8Sdamjan# 11b63233d8Sdamjan# http://www.apache.org/licenses/LICENSE-2.0 12b63233d8Sdamjan# 13b63233d8Sdamjan# Unless required by applicable law or agreed to in writing, 14b63233d8Sdamjan# software distributed under the License is distributed on an 15b63233d8Sdamjan# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16b63233d8Sdamjan# KIND, either express or implied. See the License for the 17b63233d8Sdamjan# specific language governing permissions and limitations 18b63233d8Sdamjan# under the License. 19b63233d8Sdamjan# 20b63233d8Sdamjan############################################################### 21b63233d8Sdamjan 22b63233d8Sdamjan 23b63233d8Sdamjan 24b63233d8Sdamjandefine gb_UnoApiTarget_autopackage_inc 25b63233d8Sdamjan$$(eval $$(call gb_Package_Package,$(1)_inc,$$(patsubst %/empty,%,$$(call gb_UnoApiTarget_get_header_target,empty)))) 26b63233d8Sdamjan$(foreach onefile,$(gb_UnoApiTarget_HPPFILES_$(1)), \ 27b63233d8Sdamjan $$(eval $$(call gb_Package_add_file,$(1)_inc,$(patsubst $(1)/%,inc/$(1)/%,$(onefile)),$(onefile)))) 28b63233d8Sdamjan 29b63233d8Sdamjan$(call gb_Package_get_target,$(1)_inc) : $(call gb_UnoApiTarget_get_target,$(1)) 30b63233d8Sdamjan 31b63233d8Sdamjanendef 32b63233d8Sdamjan 33b63233d8Sdamjan# TODO: make multi repo safe 34b63233d8Sdamjandefine gb_UnoApiTarget_autopackage_idl 35b63233d8Sdamjan$$(eval $$(call gb_Package_Package,$(1)_idl,$(SRCDIR))) 36b63233d8Sdamjan$(foreach onefile,$(gb_UnoApiTarget_IDLFILES_$(1)), \ 37b63233d8Sdamjan $$(eval $$(call gb_Package_add_file,$(1)_idl,$(patsubst $(1)/%,idl/%,$(onefile)),$(onefile)))) 38b63233d8Sdamjan 39b63233d8Sdamjanendef 40b63233d8Sdamjan 41b63233d8Sdamjan$(call gb_UnoApiTarget_get_header_target,$(1))/% : $(call gb_UnoApiTarget_get_target,$(1)) 42b63233d8Sdamjan mkdir -p $$(dir $$@) 43b63233d8Sdamjan 44b63233d8Sdamjandefine gb_UnoApiTarget_UnoApiTarget 45b63233d8Sdamjan$$(eval $$(call gb_Module_register_target,$(call gb_UnoApiOutTarget_get_target,$(1)),$(call gb_UnoApiOutTarget_get_clean_target,$(1)))) 46b63233d8Sdamjan$(call gb_UnoApiOutTarget_get_target,$(1)) : $(call gb_UnoApiTarget_get_target,$(1)) 47b63233d8Sdamjan$(call gb_UnoApiOutTarget_get_clean_target,$(1)) : $(call gb_UnoApiTarget_get_clean_target,$(1)) 48b63233d8Sdamjangb_UnoApiTarget_HPPFILES_$(1) := 49b63233d8Sdamjangb_UnoApiTarget_IDLFILES_$(1) := 50b63233d8Sdamjan 51b63233d8Sdamjan.DELETE_ON_ERROR : \ 52b63233d8Sdamjan $(call gb_UnoApiTarget_get_clean_target,$(1)) \ 53b63233d8Sdamjan $(call gb_UnoApiTarget_get_target,$(1)) 54b63233d8Sdamjan 55b63233d8Sdamjanendef 56b63233d8Sdamjan 57b63233d8Sdamjandefine gb_UnoApiTarget_add_idlfiles 58b63233d8Sdamjan$(foreach idl,$(2),$(call gb_UnoApiTarget_add_idlfile,$(1),$(idl))) 59b63233d8Sdamjan 60b63233d8Sdamjanendef 61b63233d8Sdamjan 62b63233d8Sdamjandefine gb_UnoApiTarget_add_idlfile 63b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiPartTarget_get_target,$(2).urd) 64b63233d8Sdamjan$(call gb_UnoApiPartTarget_get_target,$(2).urd) : $(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(2).idl)) 65b63233d8Sdamjangb_UnoApiTarget_HPPFILES_$(1) += $(2).hdl 66b63233d8Sdamjangb_UnoApiTarget_HPPFILES_$(1) += $(2).hpp 67b63233d8Sdamjangb_UnoApiTarget_IDLFILES_$(1) += $(2).idl 68b63233d8Sdamjan 69b63233d8Sdamjan$(call gb_UnoApiTarget_get_header_target,)$(2).hpp :| $(call gb_UnoApiTarget_get_target,$(1)) 70b63233d8Sdamjan$(call gb_UnoApiTarget_get_header_target,)$(2).hdl :| $(call gb_UnoApiTarget_get_target,$(1)) 71b63233d8Sdamjan 72b63233d8Sdamjanendef 73b63233d8Sdamjan 74b63233d8Sdamjandefine gb_UnoApiTarget_add_idlfiles_noheader 75b63233d8Sdamjan$(foreach idl,$(2),$(call gb_UnoApiTarget_add_idlfile_noheader,$(1),$(idl))) 76b63233d8Sdamjan 77b63233d8Sdamjanendef 78b63233d8Sdamjan 79b63233d8Sdamjandefine gb_UnoApiTarget_add_idlfile_noheader 80b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiPartTarget_get_target,$(2).urd) 81b63233d8Sdamjan$(call gb_UnoApiPartTarget_get_target,$(2).urd) : $(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(2).idl)) 82b63233d8Sdamjangb_UnoApiTarget_IDLFILES_$(1) += $(2).idl 83b63233d8Sdamjan 84b63233d8Sdamjanendef 85b63233d8Sdamjan 86b63233d8Sdamjandefine gb_UnoApiTarget_add_idlfiles_nohdl 87b63233d8Sdamjan$(foreach idl,$(2),$(call gb_UnoApiTarget_add_idlfile_nohdl,$(1),$(idl))) 88b63233d8Sdamjan 89b63233d8Sdamjanendef 90b63233d8Sdamjan 91b63233d8Sdamjandefine gb_UnoApiTarget_add_idlfile_nohdl 92b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiPartTarget_get_target,$(2).urd) 93b63233d8Sdamjan$(call gb_UnoApiPartTarget_get_target,$(2).urd) : $(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(2).idl)) 94b63233d8Sdamjangb_UnoApiTarget_HPPFILES_$(1) += $(2).hpp 95b63233d8Sdamjangb_UnoApiTarget_IDLFILES_$(1) += $(2).idl 96b63233d8Sdamjan 97b63233d8Sdamjan$(call gb_UnoApiTarget_get_header_target,)$(2).hpp :| $(call gb_UnoApiTarget_get_target,$(1)) 98b63233d8Sdamjan 99b63233d8Sdamjanendef 100b63233d8Sdamjan 101b63233d8Sdamjandefine gb_UnoApiTarget_add_rdbfiles 102b63233d8Sdamjan$(foreach rdb,$(2),$(call gb_UnoApiTarget_add_rdbfile,$(1),$(rdb))) 103b63233d8Sdamjan 104b63233d8Sdamjanendef 105b63233d8Sdamjan 106b63233d8Sdamjandefine gb_UnoApiTarget_add_rdbfile 107b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_DEPS += -X$(call gb_UnoApiOutTarget_get_target,$(2)) 108b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : \ 109b63233d8Sdamjan $(call gb_UnoApiOutTarget_get_target,$(2)) \ 110b63233d8Sdamjan $(call gb_Package_get_target,$(2)_idl) 111b63233d8Sdamjan 112b63233d8Sdamjanendef 113b63233d8Sdamjan 114b63233d8Sdamjandefine gb_UnoApiTarget_add_merge_rdbfiles 115b63233d8Sdamjan$(foreach rdb,$(2),$(call gb_UnoApiTarget_add_merge_rdbfile,$(1),$(rdb))) 116b63233d8Sdamjan 117b63233d8Sdamjanendef 118b63233d8Sdamjan 119b63233d8Sdamjandefine gb_UnoApiTarget_add_merge_rdbfile 120b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_MERGE += $(call gb_UnoApiOutTarget_get_target,$(2)) 121b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : $(call gb_UnoApiOutTarget_get_target,$(2)) 122b63233d8Sdamjan 123b63233d8Sdamjanendef 124b63233d8Sdamjan 125b63233d8Sdamjan#UNOAPI_REFERENCE_$(1) := $(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(strip $(2)).rdb)) 126b63233d8Sdamjandefine gb_UnoApiTarget_add_reference_rdbfile 127b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : UNOAPI_REFERENCE := $(foreach repo,$(gb_REPOS),$(realpath $(repo)/$(strip $(2)).rdb)) 128b63233d8Sdamjan 129b63233d8Sdamjanendef 130b63233d8Sdamjan 131b63233d8Sdamjandefine gb_UnoApiTarget_set_include 132b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,$(1)) : INCLUDE := $(2) 133b63233d8Sdamjan 134b63233d8Sdamjanendef 135b63233d8Sdamjan 136b63233d8Sdamjan.PHONY : $(call gb_UnoApiOutTarget_get_clean_target,%) 137b63233d8Sdamjan$(call gb_UnoApiOutTarget_get_clean_target,%) : 138b63233d8Sdamjan $(call gb_Output_announce,$*,$(false),UNOAPI,1) 139b63233d8Sdamjan -$(call gb_Helper_abbreviate_dirs,\ 140b63233d8Sdamjan rm -f $(call gb_UnoApiOutTarget_get_target,$*)) 141b63233d8Sdamjan 142b63233d8Sdamjan.PHONY : $(call gb_UnoApiTarget_get_clean_target,%) 143b63233d8Sdamjan$(call gb_UnoApiTarget_get_clean_target,%) : 144b63233d8Sdamjan $(call gb_Output_announce,$*,$(false),UNOAPI,1) 145b63233d8Sdamjan -$(call gb_Helper_abbreviate_dirs,\ 146b63233d8Sdamjan rm -f $(call gb_UnoApiTarget_get_target,$*)) 147b63233d8Sdamjan -rm -rf $(call gb_UnoApiTarget_get_header_target,$*)\ 148b63233d8Sdamjan $(call gb_UnoApiPartTarget_get_target,$*) 149b63233d8Sdamjan 150b63233d8Sdamjan# idlc doesn't return error codes != 0 in case of an error, so 151b63233d8Sdamjan# check self 152b63233d8Sdamjandefine gb_UnoApiPartTarget__command 153b63233d8Sdamjanmkdir -p $(dir $(1)) && \ 154b63233d8Sdamjan mkdir -p $(gb_Helper_MISC) && \ 155b63233d8Sdamjan RESPONSEFILE=`$(gb_MKTEMP)` && \ 156b63233d8Sdamjan echo "$(call gb_Helper_convert_native,$(5) $(6) -O $(call gb_UnoApiPartTarget_get_target,$(2)) -verbose -C $(4))" > $${RESPONSEFILE} && \ 157b63233d8Sdamjan $(gb_UnoApiTarget_IDLCCOMMAND) @$${RESPONSEFILE} > /dev/null && \ 158b63233d8Sdamjan rm -f $${RESPONSEFILE} && \ 159b63233d8Sdamjan test -f $(@) 160b63233d8Sdamjan 161b63233d8Sdamjanendef 162b63233d8Sdamjan 163b63233d8Sdamjan$(call gb_UnoApiPartTarget_get_target,%) : 164b63233d8Sdamjan $(call gb_Output_announce,$*,$(true),IDL,2) 165b63233d8Sdamjan $(call gb_UnoApiPartTarget__command,$@,$(dir $*),$<,$?,$(INCLUDE),$(DEFS)) 166b63233d8Sdamjan 167b63233d8Sdamjan 168b63233d8Sdamjandefine gb_UnoApiTarget__command 169b63233d8Sdamjan mkdir -p $(dir $(1)) && \ 170b63233d8Sdamjan RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),500,$(call gb_Helper_convert_native,$(1) $(4) $(5))) && \ 171b63233d8Sdamjan $(gb_UnoApiTarget_REGMERGECOMMAND) @$${RESPONSEFILE} && \ 172b63233d8Sdamjan rm -f $${RESPONSEFILE} 173b63233d8Sdamjan 174b63233d8Sdamjanendef 175b63233d8Sdamjan 176b63233d8Sdamjandefine gb_UnoApiHeaderTarget__command 177b63233d8Sdamjan$(call gb_Helper_abbreviate_dirs_native,\ 178b63233d8Sdamjan mkdir -p $(dir $(1)) && \ 179b63233d8Sdamjan mkdir -p $(gb_Helper_MISC) && \ 180*8f3a2c2fSdamjan RESPONSEFILE=`$(gb_MKTEMP)` && \ 181*8f3a2c2fSdamjan echo " -Gc -L -BUCR -O$(call gb_UnoApiTarget_get_header_target,$*) $(7) \ 182b63233d8Sdamjan $(1) \ 183*8f3a2c2fSdamjan " > $${RESPONSEFILE} && \ 184b63233d8Sdamjan $(gb_UnoApiTarget_CPPUMAKERCOMMAND) @$${RESPONSEFILE} && \ 185b63233d8Sdamjan rm -f $${RESPONSEFILE}) 186b63233d8Sdamjan 187b63233d8Sdamjanendef 188b63233d8Sdamjan 189b63233d8Sdamjan# TODO: 190b63233d8Sdamjan# - get idlc switch "-P" (generate .urd into package dir) 191b63233d8Sdamjan# - generate dependencies for included idls 192b63233d8Sdamjan# - empty $? in headertarget? 193b63233d8Sdamjan 194b63233d8Sdamjan$(call gb_UnoApiTarget_get_target,%): 195b63233d8Sdamjan $(call gb_Output_announce,$*,$(true),RDB,3) 196b63233d8Sdamjan $(if $(gb_UnoApiTarget_IDLFILES_$*),$(call gb_UnoApiTarget__command,$@,$*,$<,UCR,$(addprefix $(call gb_UnoApiPartTarget_get_target,),$(patsubst %.idl,%.urd,$(gb_UnoApiTarget_IDLFILES_$*))))) 197b63233d8Sdamjan $(if $(UNOAPI_MERGE),$(call gb_UnoApiTarget__command,$@,$*,$<,/,$(UNOAPI_MERGE))) 198b63233d8Sdamjan $(if $(UNOAPI_REFERENCE), \ 199b63233d8Sdamjan $(call gb_Output_announce,$*,$(true),RDBCHEK,4) \ 200b63233d8Sdamjan $(gb_UnoApiTarget_REGCOMPARECOMMAND) -f -t -r1 $(call gb_Helper_convert_native,$(UNOAPI_REFERENCE)) -r2 $(call gb_Helper_convert_native,$@)) 201b63233d8Sdamjan $(if $(gb_UnoApiTarget_IDLFILES_$*), \ 202b63233d8Sdamjan $(call gb_Output_announce,$*,$(true),HPP,4) \ 203b63233d8Sdamjan $(call gb_UnoApiHeaderTarget__command,$@,$*,$<,$?,$(INCLUDE),$(DEFS),$(UNOAPI_DEPS))) 204b63233d8Sdamjan 205b63233d8Sdamjan# vim: set noet sw=4 ts=4: 206