Yes, changes to gbuild itself are largely made by experimentation. It's beyond anyone's complete understanding.
Please try this patch, with the file extensions back on *.m. On Tue, Feb 19, 2019 at 10:39 PM Jim Jagielski <j...@jagunet.com> wrote: > > > > On Feb 19, 2019, at 12:05 PM, Damjan Jovanovic <dam...@apache.org> > wrote: > > > > If > > not, I'll have to make a gb_Library_add_objcobjects API instead. > > If I knew how, I'd do it. Looking over the add_objcxxobjects stuff it > seems like a maze of twisty little passages > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org > For additional commands, e-mail: dev-h...@openoffice.apache.org > >
diff --git a/main/apple_remote/Library_AppleRemote.mk b/main/apple_remote/Library_AppleRemote.mk index 8c7aedd267..0d28cf3418 100644 --- a/main/apple_remote/Library_AppleRemote.mk +++ b/main/apple_remote/Library_AppleRemote.mk @@ -42,7 +42,7 @@ $(eval $(call gb_Library_add_libs,AppleRemote,\ -framework IOKit \ )) -$(eval $(call gb_Library_add_objcxxobjects,AppleRemote,\ +$(eval $(call gb_Library_add_objcobjects,AppleRemote,\ apple_remote/source/AppleRemote \ apple_remote/source/RemoteControl \ apple_remote/source/RemoteControlContainer \ diff --git a/main/solenv/gbuild/Library.mk b/main/solenv/gbuild/Library.mk index 591b5392a0..42c78fda2b 100644 --- a/main/solenv/gbuild/Library.mk +++ b/main/solenv/gbuild/Library.mk @@ -113,6 +113,8 @@ $(eval $(foreach method,\ add_cobjects \ add_cxxobject \ add_cxxobjects \ + add_objcobject \ + add_objcobjects \ add_objcxxobject \ add_objcxxobjects \ add_exception_objects \ @@ -125,6 +127,8 @@ $(eval $(foreach method,\ set_cflags \ add_cxxflags \ set_cxxflags \ + add_objcflags \ + set_objcflags \ add_objcxxflags \ set_objcxxflags \ add_defs \ diff --git a/main/solenv/gbuild/LinkTarget.mk b/main/solenv/gbuild/LinkTarget.mk index f19910e17b..c67c1c5f15 100644 --- a/main/solenv/gbuild/LinkTarget.mk +++ b/main/solenv/gbuild/LinkTarget.mk @@ -25,6 +25,7 @@ # CPPFLAGS # CFLAGS # CXXFLAGS +# OBJCFLAGS # OBJCXXFLAGS # JAVAFLAGS # LDFLAGS @@ -34,11 +35,13 @@ ifeq ($(gb_DEBUGGING),TRUE) CFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) CXXFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) +OBJCFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) OBJCXXFLAGS ?= $(gb_COMPILEROPTFLAGS) $(gb_DEBUG_CFLAGS) JAVAFLAGS ?= -g else CFLAGS ?= $(gb_COMPILEROPTFLAGS) CXXFLAGS ?= $(gb_COMPILEROPTFLAGS) +OBJCFLAGS ?= $(gb_COMPILEROPTFLAGS) OBJCXXFLAGS ?= $(gb_COMPILEROPTFLAGS) endif @@ -206,6 +209,38 @@ endif gb_GenCxxObject_GenCxxObject = + +# ObjCObject class +# +gb_ObjCObject_REPOS := $(gb_REPOS) + +gb_ObjCObject_get_source = $(1)/$(2).m +# defined by platform +# gb_ObjCObject__command + +define gb_ObjCObject__rules +$$(call gb_ObjCObject_get_target,%) : $$(call gb_ObjCObject_get_source,$(1),%) + $$(call gb_ObjCObject__command,$$@,$$*,$$<,$$(call gb_ObjCObject_get_dep_target,$$*)) + +ifeq ($(gb_FULLDEPS),$(true)) +$$(call gb_ObjCObject_get_dep_target,%) : $$(call gb_ObjCObject_get_target,%) + $$(if $$(wildcard $$@),touch $$@,\ + $$(call gb_Object__command_dep,$$@,$$(call gb_ObjCObject_get_target,$$*))) +endif + +endef + +$(foreach repo,$(gb_ObjCObject_REPOS),$(eval $(call gb_ObjCObject__rules,$(repo)))) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_ObjCObject_get_dep_target,%) : + $(eval $(call gb_Output_error,Unable to find Objective C file $(call gb_ObjCObject_get_source,,$*) in repositories: $(gb_ObjCObject_REPOS))) +endif + +gb_ObjCObject_ObjCObject = + + + # ObjCxxObject class # gb_ObjCxxObject_REPOS := $(gb_REPOS) @@ -255,6 +290,8 @@ $(call gb_LinkTarget_get_clean_target,%) : $(foreach object,$(COBJECTS),$(call gb_CObject_get_dep_target,$(object))) \ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_dep_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_dep_target,$(object))) \ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_dep_target,$(object))) \ $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \ @@ -279,9 +316,10 @@ $(call gb_Helper_abbreviate_dirs,\ RESPONSEFILE=$(call var2file,$(shell $(gb_MKTEMP)),200,\ $(foreach object,$(3),$(call gb_CObject_get_dep_target,$(object))) \ $(foreach object,$(4),$(call gb_CxxObject_get_dep_target,$(object))) \ - $(foreach object,$(5),$(call gb_ObjCxxObject_get_dep_target,$(object)))\ - $(foreach object,$(6),$(call gb_GenCObject_get_dep_target,$(object)))\ - $(foreach object,$(7),$(call gb_GenCxxObject_get_dep_target,$(object)))\ + $(foreach object,$(5),$(call gb_ObjCObject_get_dep_target,$(object)))\ + $(foreach object,$(6),$(call gb_ObjCxxObject_get_dep_target,$(object)))\ + $(foreach object,$(7),$(call gb_GenCObject_get_dep_target,$(object)))\ + $(foreach object,$(8),$(call gb_GenCxxObject_get_dep_target,$(object)))\ ) && \ cat $${RESPONSEFILE} /dev/null | xargs -n 200 cat > $(1)) && \ rm -f $${RESPONSEFILE} @@ -294,7 +332,7 @@ $(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_headers_target,%) ifeq ($(gb_FULLDEPS),$(true)) $(call gb_LinkTarget_get_target,%) : $(call gb_LinkTarget_get_dep_target,%) $(call gb_LinkTarget_get_dep_target,%) : | $(call gb_LinkTarget_get_headers_target,%) - $(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCXXOBJECTS),$(GENCOBJECTS),$(GENCXXOBJECTS)) + $(call gb_LinkTarget__command_dep,$@,$*,$(COBJECTS),$(CXXOBJECTS),$(OBJCOBJECTS),$(OBJCXXOBJECTS),$(GENCOBJECTS),$(GENCXXOBJECTS)) endif # Ok, this is some dark voodoo: When declaring a linktarget with @@ -372,6 +410,8 @@ $(call gb_LinkTarget_get_target,$(1)) : COBJECTS := $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : CXXOBJECTS := $(call gb_LinkTarget_get_clean_target,$(1)) \ +$(call gb_LinkTarget_get_target,$(1)) : OBJCOBJECTS := +$(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : OBJCXXOBJECTS := $(call gb_LinkTarget_get_clean_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : GENCOBJECTS := @@ -383,6 +423,7 @@ $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : T_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $$(CXXFLAGS) +$(call gb_LinkTarget_get_target,$(1)) : T_OBJCFLAGS := $$(gb_LinkTarget_OBJCFLAGS) $(call gb_LinkTarget_get_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(call gb_LinkTarget_get_headers_target,$(1)) \ $(call gb_LinkTarget_get_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(CPPFLAGS) @@ -410,12 +451,14 @@ ifeq ($(gb_FULLDEPS),$(true)) -include $(call gb_LinkTarget_get_dep_target,$(1)) $(call gb_LinkTarget_get_dep_target,$(1)) : COBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : CXXOBJECTS := +$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : OBJCXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : GENCOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : GENCXXOBJECTS := $(call gb_LinkTarget_get_dep_target,$(1)) : T_CFLAGS := $$(gb_LinkTarget_CFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : T_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_CXXFLAGS := $$(gb_LinkTarget_CXXFLAGS) $$(CXXFLAGS) +$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCFLAGS := $$(gb_LinkTarget_OBJCFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCXXFLAGS := $$(gb_LinkTarget_OBJCXXFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(CPPFLAGS) $(call gb_LinkTarget_get_dep_target,$(1)) : PCH_DEFS := $$(gb_LinkTarget_DEFAULTDEFS) $(CPPFLAGS) @@ -506,6 +549,25 @@ endif endef +define gb_LinkTarget_add_objcflags +$(call gb_LinkTarget_get_target,$(1)) : T_OBJCFLAGS += $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCFLAGS += $(2) +endif +endef + +define gb_LinkTarget_set_objcflags +ifeq (,) +$$(call gb_Output_error,\ + gb_LinkTarget_set_objcflags: use gb_LinkTarget_add_objcflags instead.) +else +$(call gb_LinkTarget_get_target,$(1)) : T_OBJCFLAGS := $(2) +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : T_OBJCFLAGS := $(2) +endif +endif +endef + define gb_LinkTarget_add_objcxxflags $(call gb_LinkTarget_get_target,$(1)) : T_OBJCXXFLAGS += $(2) ifeq ($(gb_FULLDEPS),$(true)) @@ -541,6 +603,10 @@ define gb_LinkTarget_set_gencxx_optimization $(foreach object,$(1),$(eval $(call gb_GenCxxObject_get_target,$(object)) : CXXFLAGS := $(filter-out $(gb_COMPILEROPTFLAGS),$(CXXFLAGS)) $(2))) endef +define gb_LinkTarget_set_objc_optimization +$(foreach object,$(1),$(eval $(call gb_ObjCObject_get_target,$(object)) : OBJCFLAGS := $(filter-out $(gb_COMPILEROPTFLAGS),$(OBJCFLAGS)) $(2))) +endef + define gb_LinkTarget_set_objcxx_optimization $(foreach object,$(1),$(eval $(call gb_ObjCxxObject_get_target,$(object)) : OBJCXXFLAGS := $(filter-out $(gb_COMPILEROPTFLAGS),$(OBJCXXFLAGS)) $(2))) endef @@ -814,6 +880,21 @@ endif endef +define gb_LinkTarget_add_objcobject +$(call gb_LinkTarget_get_target,$(1)) : OBJCOBJECTS += $(2) +$(call gb_LinkTarget_get_clean_target,$(1)) : OBJCOBJECTS += $(2) + +$(call gb_LinkTarget_get_target,$(1)) : $(call gb_ObjCObject_get_target,$(2)) +$(call gb_ObjCObject_get_target,$(2)) : | $(call gb_LinkTarget_get_headers_target,$(1)) +$(call gb_ObjCObject_get_target,$(2)) : T_OBJCFLAGS += $(3) + +ifeq ($(gb_FULLDEPS),$(true)) +$(call gb_LinkTarget_get_dep_target,$(1)) : OBJCOBJECTS += $(2) +$(call gb_LinkTarget_get_dep_target,$(1)) : $(call gb_ObjCObject_get_dep_target,$(2)) +endif + +endef + define gb_LinkTarget_add_objcxxobject $(call gb_LinkTarget_get_target,$(1)) : OBJCXXOBJECTS += $(2) $(call gb_LinkTarget_get_clean_target,$(1)) : OBJCXXOBJECTS += $(2) @@ -879,6 +960,10 @@ define gb_LinkTarget_add_cxxobjects $(foreach obj,$(2),$(call gb_LinkTarget_add_cxxobject,$(1),$(obj),$(3))) endef +define gb_LinkTarget_add_objcobjects +$(foreach obj,$(2),$(call gb_LinkTarget_add_objcobject,$(1),$(obj),$(3))) +endef + define gb_LinkTarget_add_objcxxobjects $(foreach obj,$(2),$(call gb_LinkTarget_add_objcxxobject,$(1),$(obj),$(3))) endef diff --git a/main/solenv/gbuild/platform/macosx.mk b/main/solenv/gbuild/platform/macosx.mk index 1e814fd8ea..d859e3a78f 100644 --- a/main/solenv/gbuild/platform/macosx.mk +++ b/main/solenv/gbuild/platform/macosx.mk @@ -110,6 +110,7 @@ endif # these are to get g++ to switch to Objective-C++ mode # (see toolkit module for a case where it is necessary to do it this way) +gb_OBJCFLAGS := -x objective-c -fobjc-exceptions gb_OBJCXXFLAGS := -x objective-c++ -fobjc-exceptions ifneq ($(MACOSX_DEPLOYMENT_TARGET),) @@ -231,6 +232,25 @@ $(call gb_Helper_abbreviate_dirs,\ endef +# ObjCObject class + +define gb_ObjCObject__command +$(call gb_Output_announce,$(2),$(true),OC ,3) +$(call gb_Helper_abbreviate_dirs,\ + mkdir -p $(dir $(1)) $(dir $(4)) && \ + $(gb_CC) \ + $(DEFS) \ + $(T_OBJCFLAGS) \ + $(OBJCFLAGS) \ + -c $(3) \ + -o $(1) \ + -MMD -MT $(1) \ + -MF $(4) \ + -I$(dir $(3)) \ + $(INCLUDE_STL) $(INCLUDE)) +endef + + # ObjCxxObject class define gb_ObjCxxObject__command @@ -270,6 +290,7 @@ endef gb_LinkTarget_CFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) gb_LinkTarget_CXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) +gb_LinkTarget_OBJCFLAGS := $(gb_CFLAGS) $(gb_CFLAGS_WERROR) $(gb_OBJCFLAGS) gb_LinkTarget_OBJCXXFLAGS := $(gb_CXXFLAGS) $(gb_CXXFLAGS_WERROR) $(gb_OBJCXXFLAGS) gb_LinkTarget_INCLUDE := $(filter-out %/stl, $(subst -I. , ,$(SOLARINC))) @@ -310,6 +331,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(foreach object,$(ASMOBJECTS),$(call gb_AsmObject_get_target,$(object))) \ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \ @@ -330,6 +352,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(gb_AR) -rsu $(1) \ $(foreach object,$(COBJECTS),$(call gb_CObject_get_target,$(object))) \ $(foreach object,$(CXXOBJECTS),$(call gb_CxxObject_get_target,$(object))) \ + $(foreach object,$(OBJCOBJECTS),$(call gb_ObjCObject_get_target,$(object))) \ $(foreach object,$(OBJCXXOBJECTS),$(call gb_ObjCxxObject_get_target,$(object))) \ $(foreach object,$(GENCOBJECTS),$(call gb_GenCObject_get_target,$(object))) \ $(foreach object,$(GENCXXOBJECTS),$(call gb_GenCxxObject_get_target,$(object))) \
--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@openoffice.apache.org For additional commands, e-mail: dev-h...@openoffice.apache.org