diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2018-05-17 15:15:22 -0400 |
---|---|---|
committer | Xavier Claessens <xavier.claessens@collabora.com> | 2018-05-22 11:49:24 -0400 |
commit | e400af99d436b003b93479e4892623f336f58a6b (patch) | |
tree | 3914464b58dce416b0080d53173af5a30abad26f | |
parent | 458b6288bf260212f89bb75ade746a32cb19970a (diff) | |
download | glib-e400af99d436b003b93479e4892623f336f58a6b.tar.gz |
Rename objective-c files from .c to .m
Those files got renamed to .c to work around an automake issue, but
Meson needs them to have .m extension. Better rename them at build time
in Makefile.am since that's where the workaround is needed.
https://bugzilla.gnome.org/show_bug.cgi?id=672777
-rw-r--r-- | gio/Makefile.am | 23 | ||||
-rw-r--r-- | gio/gcocoanotificationbackend.m (renamed from gio/gcocoanotificationbackend.c) | 0 | ||||
-rw-r--r-- | gio/gnextstepsettingsbackend.m (renamed from gio/gnextstepsettingsbackend.c) | 0 | ||||
-rw-r--r-- | gio/gosxappinfo.m (renamed from gio/gosxappinfo.c) | 0 | ||||
-rw-r--r-- | gio/gosxcontenttype.m (renamed from gio/gosxcontenttype.c) | 0 | ||||
-rw-r--r-- | gio/meson.build | 12 |
6 files changed, 23 insertions, 12 deletions
diff --git a/gio/Makefile.am b/gio/Makefile.am index df4f24014..bf2b40fd0 100644 --- a/gio/Makefile.am +++ b/gio/Makefile.am @@ -602,10 +602,25 @@ libgio_2_0_la_LDFLAGS = $(GLIB_LINK_FLAGS) \ -export-dynamic $(no_undefined) if OS_COCOA -# 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 +# 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 $< $@ + 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.c b/gio/gcocoanotificationbackend.m index ae4ad8833..ae4ad8833 100644 --- a/gio/gcocoanotificationbackend.c +++ b/gio/gcocoanotificationbackend.m diff --git a/gio/gnextstepsettingsbackend.c b/gio/gnextstepsettingsbackend.m index 44ea845d8..44ea845d8 100644 --- a/gio/gnextstepsettingsbackend.c +++ b/gio/gnextstepsettingsbackend.m diff --git a/gio/gosxappinfo.c b/gio/gosxappinfo.m index 463b2da3c..463b2da3c 100644 --- a/gio/gosxappinfo.c +++ b/gio/gosxappinfo.m diff --git a/gio/gosxcontenttype.c b/gio/gosxcontenttype.m index 52ba5763a..52ba5763a 100644 --- a/gio/gosxcontenttype.c +++ b/gio/gosxcontenttype.m diff --git a/gio/meson.build b/gio/meson.build index 42f67715d..8d542bcfe 100644 --- a/gio/meson.build +++ b/gio/meson.build @@ -292,11 +292,6 @@ 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', @@ -412,10 +407,11 @@ if host_system != 'windows' ) if glib_have_cocoa - contenttype_sources += files('gosxcontenttype.c') - appinfo_sources += files('gosxappinfo.c') + settings_sources += files('gnextstepsettingsbackend.m') + contenttype_sources += files('gosxcontenttype.m') + appinfo_sources += files('gosxappinfo.m') if glib_have_os_x_9_or_later - unix_sources += files('gcocoanotificationbackend.c') + unix_sources += files('gcocoanotificationbackend.m') endif else contenttype_sources += files('gcontenttype.c') |