meson: use -fno-strict-aliasing where supported

https://bugzilla.gnome.org/show_bug.cgi?id=769183
This commit is contained in:
Tim-Philipp Müller 2018-01-30 20:34:52 +00:00
parent 63f8d33a6f
commit 4007aaf3a7
2 changed files with 11 additions and 4 deletions

View file

@ -1,11 +1,13 @@
# sidplay plugin works with libsidplay 1.36.x (not 2.x.x)
have_sidplay = false
if add_languages('cpp')
extra_args = []
cxx = meson.get_compiler('cpp')
if cxx.has_argument('-fvisibility=hidden')
cxx_vis_args = ['-fvisibility=hidden']
else
cxx_vis_args = []
extra_args += ['-fvisibility=hidden']
endif
if cxx.has_argument('-fno-strict-aliasing')
extra_args += ['-fno-strict-aliasing']
endif
if cxx.has_header('sidplay/player.h')
@ -22,7 +24,7 @@ endif
if have_sidplay
shared_module('gstsid', 'gstsiddec.cc',
cpp_args : ugly_args + cxx_vis_args,
cpp_args : ugly_args + extra_args,
include_directories : [configinc],
dependencies : [gstaudio_dep, sidplay_dep],
install : true,

View file

@ -47,6 +47,11 @@ if cc.has_argument('-fvisibility=hidden')
add_project_arguments('-fvisibility=hidden', language: 'c')
endif
# Disable strict aliasing
if cc.has_argument('-fno-strict-aliasing')
add_project_arguments('-fno-strict-aliasing', language: 'c')
endif
cdata = configuration_data()
check_headers = [
['HAVE_DLFCN_H', 'dlfcn.h'],