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
This commit is contained in:
Xavier Claessens
2018-05-17 15:15:22 -04:00
parent 458b6288bf
commit e400af99d4
6 changed files with 23 additions and 12 deletions

View File

@@ -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

View File

@@ -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')