diff --git a/gio/Makefile.am b/gio/Makefile.am index bf2b40fd0..df4f24014 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -602,25 +602,10 @@ libgio_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \ -export-dynamic $(no_undefined) if OS_COCOA -# We cannot build .m files because it would require adding AC_PROG_OBJC in -# configure.ac, and it cannot be added conditionally. That means we would always -# depend on an objective-c compiler even when not needed. To work around that -# limitation we rename .m files to .c and compile them separately with -# -xobjective-c into an intermediary library. Note that we cannot rename those -# files to .c directly in the source tree because Meson needs the .m extension. -# See https://bugzilla.gnome.org/show_bug.cgi?id=672777. -OBJC_FILES = \ - gnextstepsettingsbackend.m \ - gosxcontenttype.m \ - gosxappinfo.m \ - gcocoanotificationbackend.m \ - $(NULL) -OBJC_C_FILES = $(OBJC_FILES:.m=.c) -BUILT_SOURCES += $(OBJC_C_FILES) -CLEANFILES += $(OBJC_C_FILES) -$(OBJC_C_FILES): %.c: %.m Makefile - cp $< $@ - +# Let's avoid polluting the CFLAGS of libgio with -xobjective-c +# We cannot simply rename the ObjC files to .m because it plays +# tricks with Automake. For further reference, see: +# https://bugzilla.gnome.org/show_bug.cgi?id=672777 libgio_objc_2_0_la_CFLAGS = $(libgio_2_0_la_CFLAGS) -xobjective-c libgio_objc_2_0_la_CPPFLAGS = $(libgio_2_0_la_CPPFLAGS) libgio_objc_2_0_la_LDFLAGS = $(libgio_2_0_la_LDFLAGS) -Wl,-framework,Foundation -Wl,-framework,AppKit diff --git a/gio/gcocoanotificationbackend.m b/gio/gcocoanotificationbackend.c similarity index 100% rename from gio/gcocoanotificationbackend.m rename to gio/gcocoanotificationbackend.c diff --git a/gio/gnextstepsettingsbackend.m b/gio/gnextstepsettingsbackend.c similarity index 100% rename from gio/gnextstepsettingsbackend.m rename to gio/gnextstepsettingsbackend.c diff --git a/gio/gosxappinfo.m b/gio/gosxappinfo.c similarity index 100% rename from gio/gosxappinfo.m rename to gio/gosxappinfo.c diff --git a/gio/gosxcontenttype.m b/gio/gosxcontenttype.c similarity index 100% rename from gio/gosxcontenttype.m rename to gio/gosxcontenttype.c diff --git a/gio/meson.build b/gio/meson.build index 8d542bcfe..42f67715d 100644 --- a/gio/meson.build +++ b/gio/meson.build @@ -292,6 +292,11 @@ if host_system == 'windows' settings_sources += files('gregistrysettingsbackend.c') endif +# FIXME: +#if OS_COCOA +#settings_sources += files('gnextstepsettingsbackend.c') +#endif + application_headers = files( 'gapplication.h', 'gapplicationcommandline.h', @@ -407,11 +412,10 @@ if host_system != 'windows' ) if glib_have_cocoa - settings_sources += files('gnextstepsettingsbackend.m') - contenttype_sources += files('gosxcontenttype.m') - appinfo_sources += files('gosxappinfo.m') + contenttype_sources += files('gosxcontenttype.c') + appinfo_sources += files('gosxappinfo.c') if glib_have_os_x_9_or_later - unix_sources += files('gcocoanotificationbackend.m') + unix_sources += files('gcocoanotificationbackend.c') endif else contenttype_sources += files('gcontenttype.c')